From e2f9c1defc261cb9981df258cda03d986fb121a6 Mon Sep 17 00:00:00 2001 From: Siddharth Suresh Date: Fri, 3 Nov 2023 21:47:24 -0700 Subject: [PATCH] Rollback tests (#1177) ### What Resolves https://github.com/stellar/rs-soroban-env/issues/1150, https://github.com/stellar/rs-soroban-env/issues/1151 Resolves the "Test that after a call or a try_call that does a transfer and then fails, nothing was spent" test in https://github.com/stellar/rs-soroban-env/issues/1166. --- .../src/test/stellar_asset_contract.rs | 89 +++++++++++++++++- .../wasm-workspace/err/src/lib.rs | 26 ++++- .../wasm-workspace/invoke_contract/src/lib.rs | 11 ++- .../opt/curr/auth_test_contract.wasm | Bin 7935 -> 7715 bytes .../opt/curr/example_add_f32.wasm | Bin 1075 -> 957 bytes .../opt/curr/example_add_i32.wasm | Bin 1022 -> 904 bytes .../opt/curr/example_alloc.wasm | Bin 2446 -> 2356 bytes .../opt/curr/example_complex.wasm | Bin 1788 -> 1725 bytes .../opt/curr/example_contract_data.wasm | Bin 3968 -> 3898 bytes .../opt/curr/example_create_contract.wasm | Bin 721 -> 721 bytes .../wasm-workspace/opt/curr/example_err.wasm | Bin 1115 -> 2600 bytes .../opt/curr/example_fannkuch.wasm | Bin 1053 -> 950 bytes .../wasm-workspace/opt/curr/example_fib.wasm | Bin 369 -> 369 bytes .../opt/curr/example_hostile.wasm | Bin 2124 -> 2026 bytes .../opt/curr/example_invoke_contract.wasm | Bin 1970 -> 2297 bytes .../opt/curr/example_linear_memory.wasm | Bin 1404 -> 1371 bytes .../opt/curr/example_simple_account.wasm | Bin 2003 -> 1992 bytes .../opt/curr/example_updateable_contract.wasm | Bin 744 -> 670 bytes .../wasm-workspace/opt/curr/example_vec.wasm | Bin 605 -> 533 bytes .../soroban_write_upgrade_bytes_contract.wasm | Bin 676 -> 676 bytes .../opt/curr/test_conditional_account.wasm | Bin 1533 -> 1439 bytes .../opt/curr/test_delegated_account.wasm | Bin 1996 -> 1919 bytes .../opt/next/auth_test_contract.wasm | Bin 7935 -> 7715 bytes .../opt/next/example_add_f32.wasm | Bin 1075 -> 957 bytes .../opt/next/example_add_i32.wasm | Bin 1022 -> 904 bytes .../opt/next/example_alloc.wasm | Bin 2446 -> 2356 bytes .../opt/next/example_complex.wasm | Bin 1788 -> 1725 bytes .../opt/next/example_contract_data.wasm | Bin 3968 -> 3898 bytes .../opt/next/example_create_contract.wasm | Bin 721 -> 721 bytes .../wasm-workspace/opt/next/example_err.wasm | Bin 1115 -> 2548 bytes .../opt/next/example_fannkuch.wasm | Bin 1053 -> 950 bytes .../wasm-workspace/opt/next/example_fib.wasm | Bin 369 -> 369 bytes .../opt/next/example_hostile.wasm | Bin 2124 -> 2026 bytes .../opt/next/example_invoke_contract.wasm | Bin 1970 -> 2297 bytes .../opt/next/example_linear_memory.wasm | Bin 1404 -> 1371 bytes .../opt/next/example_simple_account.wasm | Bin 2003 -> 1992 bytes .../opt/next/example_updateable_contract.wasm | Bin 744 -> 670 bytes .../wasm-workspace/opt/next/example_vec.wasm | Bin 605 -> 533 bytes .../soroban_write_upgrade_bytes_contract.wasm | Bin 676 -> 676 bytes .../opt/next/test_conditional_account.wasm | Bin 1533 -> 1439 bytes .../opt/next/test_delegated_account.wasm | Bin 1996 -> 1919 bytes 41 files changed, 121 insertions(+), 5 deletions(-) diff --git a/soroban-env-host/src/test/stellar_asset_contract.rs b/soroban-env-host/src/test/stellar_asset_contract.rs index 8502778a6..0c637dd05 100644 --- a/soroban-env-host/src/test/stellar_asset_contract.rs +++ b/soroban-env-host/src/test/stellar_asset_contract.rs @@ -22,8 +22,9 @@ use crate::{ use ed25519_dalek::SigningKey; use soroban_env_common::{ xdr::{ - self, AccountFlags, ContractExecutable, InvokeContractArgs, ScAddress, ScContractInstance, - ScSymbol, ScVal, SorobanAuthorizedFunction, SorobanAuthorizedInvocation, + self, AccountFlags, ContractEventType, ContractExecutable, InvokeContractArgs, ScAddress, + ScContractInstance, ScSymbol, ScVal, SorobanAuthorizedFunction, + SorobanAuthorizedInvocation, }, xdr::{ AccountId, AlphaNum12, AlphaNum4, Asset, AssetCode12, AssetCode4, Hash, LedgerEntryData, @@ -33,6 +34,7 @@ use soroban_env_common::{ EnvBase, Val, }; use soroban_env_common::{Env, Symbol, TryFromVal, TryIntoVal}; +use soroban_test_wasms::{ERR, INVOKE_CONTRACT}; use stellar_strkey::ed25519; use crate::builtin_contracts::base_types::BytesN; @@ -421,7 +423,10 @@ fn test_asset_init(asset_code: &[u8]) { assert_eq!(contract.decimals().unwrap(), 7); let name = contract.name().unwrap().to_string(); - let mut expected = String::from_utf8(asset_code.to_vec()).unwrap(); + let mut expected = String::from_utf8(asset_code.to_vec()) + .unwrap() + .trim_matches(char::from(0)) + .to_string(); expected.push(':'); let k = ed25519::PublicKey(test.issuer_key.verifying_key().to_bytes()); expected.push_str(k.to_string().as_str()); @@ -449,6 +454,16 @@ fn test_asset12_smart_init() { ]); } +#[test] +fn test_asset4_smart_leading_zero_init() { + test_asset_init(&[b'z', b'a', 0, 0]); +} + +#[test] +fn test_asset12_smart_leading_zero_init() { + test_asset_init(&[65, 76, b'a', b'b', b'a', b'b', b'c', b'a', b'b', b'a', 0, 0]); +} + #[test] fn test_zero_amounts() { let test = StellarAssetContractTest::setup(); @@ -3007,3 +3022,71 @@ fn test_recording_auth_for_stellar_asset_contract() { )] ); } + +#[test] +fn verify_nested_try_call_rollback() -> Result<(), HostError> { + // This test calls "invoke" in the ivocation contract, which then dispatches a call + // to "fail_after_updates". "fail_after_updates" emits an event, saves data, and does a + // SAC token transfer before emitting an error. + + let test = StellarAssetContractTest::setup(); + + let invoke_id_obj = test.host.register_test_contract_wasm(INVOKE_CONTRACT); + let err_id_obj = test.host.register_test_contract_wasm(ERR); + let err_address = Address::try_from_val(&test.host, &err_id_obj)?; + + let admin = TestSigner::account(&test.issuer_key); + let contract = test.default_stellar_asset_contract(); + + contract + .mint(&admin, err_address.clone(), 100_000_000) + .unwrap(); + + test.host.call( + invoke_id_obj, + Symbol::try_from_small_str("invoke")?, + host_vec![ + &test.host, + err_id_obj, + Symbol::try_from_val(&test.host, &"fail_after_updates").unwrap(), + contract.address.as_object() + ] + .into(), + )?; + + assert_eq!(contract.balance(err_address.clone()).unwrap(), 100_000_000); + assert_eq!(contract.balance(contract.address.clone()).unwrap(), 0); + + assert_eq!( + bool::try_from_val( + &test.host, + &test.host.call( + err_id_obj, + Symbol::try_from_val(&test.host, &"storage_updated")?, + host_vec![&test.host].into(), + )? + )?, + false + ); + + let events = test.host.get_events()?.0; + + // Make sure the event emitted in "fail_after_updates" is marked as failed + assert!( + events + .iter() + .find(|e| { + if e.event.type_ == ContractEventType::Contract && e.event.contract_id.is_some() { + let address = ScAddress::Contract(e.event.contract_id.clone().unwrap()); + let id = test.host.add_host_object(address).unwrap(); + test.host.obj_cmp(err_id_obj.to_val(), id.to_val()).unwrap() == 0 + } else { + false + } + }) + .unwrap() + .failed_call + ); + + Ok(()) +} diff --git a/soroban-test-wasms/wasm-workspace/err/src/lib.rs b/soroban-test-wasms/wasm-workspace/err/src/lib.rs index 39cf9529d..b1a77e861 100644 --- a/soroban-test-wasms/wasm-workspace/err/src/lib.rs +++ b/soroban-test-wasms/wasm-workspace/err/src/lib.rs @@ -1,5 +1,5 @@ #![no_std] -use soroban_sdk::{contract, contractimpl, contracterror, Val, Error}; +use soroban_sdk::{contract, contractimpl, contracterror, Val, Error, Env, Symbol, Address, symbol_short, token}; #[contract] pub struct Contract; @@ -47,4 +47,28 @@ impl Contract { Error::from_contract_error(12345).into() } + // This function is used in a try_call invocation test to make sure + // state is rolled back on failure. + pub fn fail_after_updates(env: Env, token: Address) -> Result<(), Error> { + env.events() + .publish((Symbol::new(&env, &"fail_after_updates"),), ()); + + env.storage().instance().set(&symbol_short!("key"), &symbol_short!("val")); + env.storage().persistent().set(&symbol_short!("key"), &symbol_short!("val")); + env.storage().temporary().set(&symbol_short!("key"), &symbol_short!("val")); + + let client = token::Client::new(&env, &token); + let contract_address = env.current_contract_address(); + // Transfer to the token address to make the test easier. + client.transfer(&contract_address, &token, &10); + + let e: Error = Error::from_contract_error(12345).into(); + Err(e) + } + + pub fn storage_updated(e: Env) -> bool { + e.storage().instance().has(&symbol_short!("key")) || + e.storage().persistent().has(&symbol_short!("key")) || + e.storage().temporary().has(&symbol_short!("key")) + } } diff --git a/soroban-test-wasms/wasm-workspace/invoke_contract/src/lib.rs b/soroban-test-wasms/wasm-workspace/invoke_contract/src/lib.rs index 3a8e6a5c0..92279d0f4 100644 --- a/soroban-test-wasms/wasm-workspace/invoke_contract/src/lib.rs +++ b/soroban-test-wasms/wasm-workspace/invoke_contract/src/lib.rs @@ -1,5 +1,5 @@ #![no_std] -use soroban_sdk::{contract, contractimpl, vec, Address, Env, IntoVal, symbol_short}; +use soroban_sdk::{contract, contractimpl, vec, Address, Env, IntoVal, Symbol, symbol_short, Error}; #[contract] pub struct Contract; @@ -20,4 +20,13 @@ impl Contract { vec![&env, x.into_val(&env), y.into_val(&env)], ) } + + // This is used through a single test case to test various rollback scenarios + pub fn invoke(env: Env, contract_id: Address, function_name: Symbol, token: Address) { + assert!(env.try_invoke_contract::<(), Error>( + &contract_id, + &function_name, + vec![&env, token.into_val(&env)], + ).is_err()); + } } 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 a6cffaa37ffa15c63012e501b5c92e2274645a7b..aac71402dc6d4e9ad2da94aa9ea030013563e0b5 100644 GIT binary patch delta 2487 zcmb7GOKenS6#gIg&fNC4ogYf+6S(ux&d_3~NN0wJ+J6WIA3-!hi7tj|XOP}vi_H75CZ23s| z+T$g5S8J(MDc8%T>TE@Fw^TY@EgvmSmglQdw0<*^%yZsIGOcD3BE>x6@w{|A=5ZBO z_vS>K$27|cIuRM^9orFyRTmD9p4>H4>V6R$3Gig2a}DJ(G|KL_XLb7oM$U9a~(a{J2eW z*pq%-k}+7aJ-B3HSbQeXcSuia2-(J6mvRXlYN0YgZpA>~(&IBJ=3eHe&03eZn{K2R zfhEo2;#R0~CDi>^iYLqq)^y``Gcq*uqb00{Tm+Cyd?vwDOpJ>~k0G{wh?48HuU`Ws zD&_HvOfRDx_T=#ZNam%|OQ4(aML9=Un60?$;ONE470ScFBEnrF>cyDKPsM>zdY z6!rwsXXL(rL80(B6benval&AU1I5^+%iJ@ZOX@UahE5Y;MOrusi$vR_APFkBjr9<6 zAO{s&5>#jnwOMVVgax53Kqb{3yw%)Ka6E)wPB5dK-N{dd5FrgiFW@ntp_ZerMdP65 zPBK+iFjUndG&Bv`HyxaWHn(RWTLZ9Wt z)Q}(JD3Nj84LH7x^4T7vnE@7)ojCOobt#(4Y{JBI_v)!84y{P6B{T-4s$p|rCf+`j_GtT zPgWR9V+p>{5&BvaEuiB?)v)=aV-w$KHpG&#VQ6HVI8iE(#gZt~LhNPWd_C6RHtKO@ z<>8hW#ksV4h!6I7ocL7m?6AOv0B){71dE7p7vYbqjQL>IBZZ(U)X(tC3Bs@-%)QRJ zMI64$f*}W!0T(!iARKm^#A=NIDywS)O?T+T(47;yBb%e<&(#zBlDWTg6fqy|Os+|w zdivyT)I#!RxpQGaz!NIA!Yov3Pn^)Sz^d#Ta#maO#tN&H8Z<3k>z?{Avf%TQ!4zwD z))JAWhsc6vRT~3((jdbxh>@4UJzd#q$eiffiV}R;HGsdrbUp6gEKwGOF09QtuVJ(x z+(C0}ZDQrp!~XQz)PbAIN}-!KvE#dlbhqQX?aq&JFt-3=Fbb&c=z&o9Zs3y~5)*Va zBi+yN__=qx-{$Qw$;JdLdao3%6XxmO3MSx%-U&SArlqeu`mW&kNP$@Hn_}nOY`s>V zsxzjT!x-CHtCs84o2Pr`=Iax)%AD>S>K$%sY-!3JkS%zz%ly{2{l1gfS=hbPynP=s zihcEXb!wqro;*^WFCT%I^EhwC`PWVTC-EQFucp+$q2)^R#qZ}{?eCX-%$#07G@7qu ubJ_f4xjZ&CmCfZgPiDumxzX&{Sbl46^P#Cic5?wLg~?5o>014H*!>IK^1O2Z delta 2562 zcma)8S!i5U7(UCrGq<@}PF82Kv}Y!xooSLbNz=>}yUZC)TQ?9<)EC>yWNPP5O*ENm zMaV>{8nIx~qYzPOK_RYCDf-}pD5$LuE)RtkpF|Xj3kVAO;_{t)Cu3be6PW-0=lthi zzW+P_y)W$eeWy$EbN5g}2z{t?*&XcQ)%kfkf54i@AEZ&q@~*^kX%k(y{Pb+2#<%QRXt%7;0*6VPWAot!?e04x3Zb8jA8NRSOI661Pg!$|He1r8m*;WVbUj zJ5`+Be{h=ggr{cq=Z{nlk=~Zl^!+nsEF0DA_2~n>(Sh~$TxDjqNH#cgmDys^Y)Da< znVu?DN;A{>!@=no-A}I4r)e*LdL*Ggr9E^^e@i#hMcvId(sy-^Z3!vir8v;N$U$j)G21wUCoXOHPICg+wCvkE#?D4oF}snvt|XHB z0TmOQ(%g|G=i6H!Hd1kVgU#71+3%Md~+5@YphLVs4n zYt@AGn3bUY`cA8~_3}tOh}1!l3iC6Nbai6lb+~k2wwYD6O!QOw3#)S=HRP$5R|lD%l&WDzat`++nR2K{CZ)Ej-{h9J6x-VCJZcAeJ$4APgulkseS(l1V?^ z6o)mk4yXAdQZ}|rkcfbvMe2zJqyr_zBj!hnPFaO?%&8O?2m^y(h^Jnw195b<$+*Jy z0{tfvmxvd$fS@d!{soO>rjdxLE}>eWiBb?M%`;fd_!x$;7ND2nRWM>0Itog{0NF8> z^h6w>;h69#5U_^%y=3!}1KrgL!@wZ*zd`PUc-|mwDEwa_R$;S-;vv7*6u8la~H5 zyoElg`<>6}vi{B4O|Q_q*1a8#0%QD}(3a>DTR^Esf^1*WEe%^}MDK3sZ-dI*DDmd zs(z>U#Y2khRkR{Qitg!Y=9J)Kf(=X=wBg{6HB?SfEK0);pehFRN@H*9po>x|W{#gW zaZl?H8aL7b{e5FEejA$hMPPoOcyT+)%=PrIj!!1-HOXXczF?Wu;WMRR!W#Je*%I<3 z(JwWb+46ByDe2D^7Vt5cErY; zxgXem+5G6{D_EAHsY7Iu#%;yQ&CDX^24eb%QAvfBMl!+62g#p#s^xk*7zGI^u90sg z?VxQLf7nuW5*v}=P}s+9{T--y=`zv)pSZ29_9Hdc z_&0lBjWw2jrrkuk(0;tm5&@P>cl7-amSFxE)DMBc{@qzHEWxB?-r zP;vCD(H?Z`Y;+(xMg(!Ny`v_tgyChc}#U0i`?L3_To`yyl*dhuwnaHNu-JY1a1 zAFdGcKGqws{z=XLc6^e3ReQ!~PNjIXGIwNhzxg;SNZ=KvaUMy@+kB;Rt+r|sUk?mvK4^EDZ77D|Y2PenV2ZyFgvy}%C@eedj B)wTct 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 2421e2a19036e5a11387dcf0c7fb7de7612ceb0a..aefb5d7e2d005804f7f36064420e22acdef363da 100644 GIT binary patch literal 957 zcmY*Y!EVz)5S^V}CvIH8hzJ#e(8kRnJ+!z{Fc+5<_X zRtO1+13yuE;L6z?IM zuzd=huuT9iI50Fg13UMG&zPFee}OfFyJ!A|ksE}AqvRBU`#}K6I=~B^PT-IIPB;uW zvpSuF&_C|<{87lU@LTXpf#!^TlF+_pXKmw+WD6tN6|GfJt;jJdAdU97zn701yebW% z$}bm=>ERXumVzY@o6=A#Q8`aJZtU<1kYUFTQZiDg8m)0?a8qKN4)PJa5G}B@WtPdI z?1;ErreWSjP3Ec?IjF!xn^d@mluu4Oa)gH>wav)Md8qT3BbixJ$Xu-WM3YvCL{Re7 zfg0_VJS-}@s)|*IS4aALi;9`b)5SgHDv!~L$l1o?Lox%>S)Sqsd<4hL5YVi6URbBW&mC?e?=O-4` zY^YXT0R`%so;-DuMkFuE!VY;}y(dE!-j;r5RXni3q8+pzgM`#2&LvwIHdwHCzkf6w zCw_lCIu832mu|gz(p4mY3kUNv!??k{|5*PG20VXwBNh%PgK+HM>J=%z3uo;1wmVTH z8BM|@Q@g*p(Wq~@>%+tSgYn1H%t>D}8I6KCqixsR4SLs;er>f8xSreS`F_3McRjDx ebL+0R>DKFwZLjvB-*jtDqBMK!!C^Aia{mC19;vPX literal 1075 zcmY*X-D(p-6h3oiCfR1Hu2`kDMNZaUq+o0Mx0~K&B3?*A!D}_$Y__%=TO|p>Uf2{` zq#%g+5>><-pTIW|d=(!+&ukLKUD)}~Ip6ut&kn@B0|5Zyy4u0xV{yEL!y)VdxKkYC zB@_ekoa3*>DuC2V07@+dTrJGWp|B?>-@y#Qo{!HD?kwKbg@g3qW%md{#_cvp(F9d$ zHrsJOZl;HADNM7um&UJ}t+WL+$0Wv}dtcQ#T+afJBMkg|SO_Bf~7 z32+e@_?x$wOyX?jBDwwu^DT^1(9UFmv=E}tS{Nd$ zFvHIR9iqyymj#6ooyv4ZBSe}C9V-WpG|MD533G>Z*7kgeGnOk=uoAFb1s8)tC(thT zV7@G=U}c|84$Nd_POabq>8z|}ousO>n9kdCHAN@qdyc0qA9`9CLmoHjWmfpw4epHw zM_YAsDpE^wHj-7|P1WsYv}@iQC(UN;t?m{jY{7>2Id}L(;qu!#37k?&Uo~cM>C(eef|L_C$9|; zrfi;Dv|xYpQ{*=C7~wpbd+d4mi~*S^ywL?J^2q#IaE%tZKgPrZUol`L2y=t4+E;fS z)ftH~@WGgpfc%#mfv|l!d3o6H#!0{TDoqAe?rZYoSDy_WJ48GJdSbW!*@B^lTURGy z>EYlY?Z$jM)?+v~MEBihzl zb%o#MZnAbej*_@m3)frgVVZ13Ya4NGGfdLet&OeS*6Lc4R9m~PFxp*i?|1u7?hli4 Bx;y{? 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 5c5623c0644964f6f9c5a5e09632b05ee894fb24..c33f1d25c5f25d55b23831506d0a898fd78a5d1a 100644 GIT binary patch literal 904 zcmY*X!A{#i5S^V}2M1Gd)u^JSsy2p0I6$3f514l3)oFSwiT62f&{91 z>Y+b@dgwp&8~QE1x3hMj!j`=AX5PHn84rZTgaH7v`3cVFY<>c8f{O*4;}c{vc1oeo ztP8*e2Zjb`U^iay1yk48zrb3+<8$SW(U>HYi~I_Khj9$Z0^qAb5Qk+LB-5BPD+tb# z@G=;OMZ$6QyWoE~GZzy4zwE|0K1jAS@*^?A#Wtu>>KHp94gcHkAI}E7BMl6RN$daD%?ZLC#Rh{!b4HnX6iIN)cI?vtSu>IBU5~)Nt;9>D0$^TjgGfG zY$+<$!Hz?69o%smnWN>zyRA0LhTeo;Q)MFooFTeQ4ZPm6UOk=JwrI47u zslr-tIYT{&TF|!HOKB>2D_7_xGJjvtAEd-lri;*}!1`GWZjedqWIYE7l}p@8wlr+8 z;CMZ{n3j1MmBnQe&0Jd0`={C}0=RUrur`c)JpPaMVjJ-K>AhGoolTN5e9&uA{0MH? zL$yayBQIu2UaPHl_XqubcW-)rdRBhAs-5&T^P-5ens(T8_vzisqu%x)c0G464#R#F hxt`Y>yM5Q|y8Zs((CdAShHh_2l;L=n_YWcFmM#DQ literal 1022 zcmY*Y%}(1u5T2dgO`Mogqox%UR80(rAQhSfu){5mgw&Q>Um!S+`LUaTk|-*d1PN4e zs`?hFhrUA9XXwN9+Ri!&Rb$EX&CWO9{CET5uqOaOJXa?;nTW{=PN#4JV62$n6BJ`{ z#_><01|YQ(fKp2VE4ei}6~WETPq3#D+|TV-WAkrxt{3+%2iFKP>~=wlHmG8|-3>=! zJMMR-u-onPIJ|0i!eK12_*0P zmi|Cu4hBc6NqIDsX5uQQsMeQX-=6uBNHLx6A6(1B3Ogcm3Ld^D6*x(`$T`*2#Vugq zq^{&-$stO%CD*n{W-X9p_dzwmHpnV7iL;rDWI80w_ApPupp>{W01qA3LJwJm8BXGA z4^@V(#LanVRF)E&A<~pf135ONRVJ}Zm>o#t9j|*>3b;}QD=y1baLdi5t~RlE>t#u~ zK#thuKq)D6Y6Uk)CuJ?0BzZkK(ph_^rbsisWq3MZqnCtjQ<0mrl0Z1x3|^cKjzQJT zsYq?hRbN(lH&wHn*{*qSoV1$oX@zHYkZ@a4S!7CFNhRipgfA;>IOZ4$MobUT6l$8FN$l2`-i8UT0M%YozsrzpYC)o I1|uW)7X=Nbwg3PC diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_alloc.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_alloc.wasm index e65fa8d9d37cb53ac4e3433f7927ca14305844c8..d0ebc6847a362b306e6a0ea91491ef21f98df6d3 100644 GIT binary patch delta 870 zcmZWnO=}cE5bds>@19L29}5~6t(iy+gurBFCQ%T!l>~<%dh#f25(H;e*tiIuW`#vO zh!BQ={toj4{1^TJul@uNzTO-ZyiC_ry?)j8UVUDLJB2a zCB>3=RW;H~r{9Hcg!yz<-SeVf9q&hYc3xbkff~?&U6v)q9B}ubBiP-ffaQTRXiw$v zna3UT{`ZZ_&?F6kmHWsaF|f4@!I)arjmqajfzf*6+iUw@v3WCY?8;w5}0UY)HqwL zQ=et36q4*$w#I5(h`U0tGO|t;z&Hrpn*DY~-Rk*|I>64~jXsdYfduT^!*8Fe+gkug zUIdrVF)zNIBeR%SCa3@7FVus|K3r&UcnB`Fl+aTC6%882m?W}PfhCFTjMkE*1`=XI zLXO&jvtER@uwd_cKtf~uz^s3BaP=~$jns3x_KP!i6LeW?Q+K0r8C|Aq7bV8{ncT<7 zffXXKLKu+-)Idbkos6K_d^do@cCE3r;?DSW3Qw)DX3Dko6HY?fI#aAGC=|dHY)f#6 zn1F}M;DO`P?ZCdEeImJQl_{~U%NVF2ai2fjcV_KZ_h&SgSRQf)X4;;66H2OY+TS2q zwEb{vXZIv8^WCH2usA->%d&rz7kRmp7sc+Kvj6;eFYoUGvUjw7^5S&zP6+V_F@b?R delta 938 zcmZWo+iDa+5Ur}7otd54&2BD2q5*40iIEU7x7oxCY)6bNqM%=p&62Gs9k|0H2) zgUh%3n$HTQRrTkI^3-UxQ)d-CCQs!y);{og;&`|pq+F+1rJSm$nE2>>cRbL#J@|dL zV`Y#;(8ON5yvNg*Y8(*@H%_bMPy)r$sS^rT(QMS;MIwM=`{o#R+p%iYl%xtJ!*5kG zf%qy;stNkTIo{5hv}PL)E+CS=HM?mePeSFyz#-8v>9|8RFz5=A8q0ZNfJP8-#~PLc zxiB5xsROJGiKqj+JoK!g3t{U3BZA?DB5q=hO%de+5|XwJDBwSqc@eZ4b(;{y-XcK7aCOgqO=7 z;oL&E)$6XVW=mU3*>-QOwYc0}UCDae3v0`3J6j8jz24=movp03GymY>-ryw>{Q+yf Bk*fdz 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 20973bad005bd5defd794bb79dd1971a59d32256..100662db9ebd8a6875d9f804dca6f4b28ca488f2 100644 GIT binary patch delta 811 zcmXw1O=}ZT6us{wGcTFOz6wg()twl$L4;{#W?Hb4JW#q*Tu64cNh2hojV7VurU|r^ zZj_e!1Ma$VRTqi~{Q>>}apl4vP~0li`(~OzIB({jd(OM}%)jEd;_(^#eDZ0HeLeZJ zdgG_!?pW^Kg8BvY%De(v`6{Wg2V*xD3LSLKCEGX7vyZU=zK2j1`t*^k*+a>wBi}VJ z!#o5``2;Ed9MT5Mf+=0;!WG->A5SI|Mo-N1^C+@jfqC*ksAIPRnEYk4_g!S!6USV{ zE67ns90^n`Gy!>*kem14znm3fv1kj)8hfxqq=p5$PATfcty6V#2%F3ui;~dx=1S)fR z^@Ha&3zU?Gn68%&%Eq8{-m`pZz;Xnckfei>>S>2cKAWPlVb6H$P8i?qA zf!jbniN*rm&4FXbnnk{ud*~pb{W}kq~QX$K-WE8}^Ty=Z_XXSic;QZa^rk=PZFIJV?boBuc6+xy7Z)#B2>Aj20GBRYxDliaHwyKwIKj;7EkI(t&8gg9fo0bqb7zfB3|rCZ3)IWlEwz zf>cQmz$;4wfaVkl`{B!{bL7stAH!Agw6E;|0#Fg)-`7(YbP%Nh^3tP;l{ zNwL?i7>U|1)-e-iJmEl_M*+ulek!#I5JfqM{Qsga@N{!g$j~xFfp4xrKAj_uM{fS1 zFTdY+i4ca4)4(l)ABmWnLHISfo3Sj=L$22PI(Y`l)NXgoO=7cx@~B^wvv@96Go2s{ zS&BkgU zmJY2NB$p#*#Px*1*9uEo@g?KF#$QWEr@p_& zvDNUvUllCsEVY`I^1@PmWx3RB%~zHx+l~2!W^=Bw-6)l}A8xg~ Iz4s{e50bp79RL6T 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 index fbdc0437b2fd3f5083b902a633f4a01d2fa2b094..8f9b8738ab85d0c10537feb735681ef25d90489e 100644 GIT binary patch delta 918 zcmY*YO>fgc5S`gwJ8L^7i>it?s>(V|2~7YwQS-sap*B>Ukf1^p5<;|Tsg$G~+UA0U zoJdp^H(KqDKhO(301^kza7O$V4jjwaNh{&Q)AP*RnYT0c@ap%uN!ZwbjR1g;FRf#Y z@j8o-C+`i`c^t<;FEOzD9=5Rt96R`ugdGeBcZf5>0FbbnVlBlcDR;0%yp2m>6Se?& z!51PUEhp*4E&#c3J`9`W4d6h^47dy*)T#dA_VCl#-6%GRoJL}hX;gL4_E zvUw=Bym=98PUb-s%{TF9cC2IPI;O_un5vkcRwZAeuKN9nDk+&C`;S=81Mh=z?NxNl z3;RmZrc2qHt|&tyS>yT6BGjFKeMKb2&3*PHpwn3Wrj=y@DIQ-R=5flzlXT z+S0PYKwDvQC=1ksB3gvgyL~P9{DflP7c^H-yHx)F;p6}4iK)ECT zsjt&WA4cLJIv6GoD)1qT7NsOvRyiU^va515-UagP>8zU2wmHsBiCc)V`IMOseWa=^ zU7p63Wc3~gvXm}Ji3p#h`_QPYaZoeG^PV#j*m<)gKjNDCB_B*(8?ToJtLejtnD+{~ z`7NWFd0$-Qw73IvB$?}00n9t6lWvhlNv)yDY*v>P56U(VxNNtUon^wt1PR4Svr zEW4sOFd$XVGa$ed{IDkxtba`Q(DnPD!SsOl_up<}@2d@8p%6XnPJ^R%C&}k^)+SNVb(p_Y6WU=bK?+_Pr0f9@?GMP2Y%6`94R-k)uG&WkU;DNid$|d z%c1`dd^A3h$@J0;b~S09k9OD&H0QFbljf5*D|fZc4T?)s+>hvKq;{g6ezMR)0D1KI zibt*N*ud3}aqD?3iVWrLAwGPoxhI@N#?e7@Du`Wz-atuW&;7=&5Z&SHgzgJm-wu(- zAiM}trSM#r6HyrnXyybCWXWnoZXy!!Z}>-0EKU|zItXJ@QCJn>%~S(~)*C8?gq7LR zp&$Ruyv956bA9c|>5-&(nuCPRTKq#_n>@{s#zg;=n(^1->`CHfhOPyYpt|&6_vh``#Nx$~i z*CIiK0dyZb4GLJos0q_03SK7jCC(K3<}2H13f;xv2O*uYWNSLNmYkiQo<4e5s;e+F z=uf6;i6)bgBO5U6r&Wo~K5`lw?xaq>gmM;JRpY+r#YXG}jXK>`NJ?W1XA1>}y zJ!pCw0BP;9uMQf`zE&-E@G$vDoF%`~_7k?_S$`QsNR@~(BMv*mMnW`>c_X!aG4o*v zyP1lFio~2wtA)^KQ!&=wA(Z4 zgq12#LRU*WAh`Gb)tX!|*kf5PS7B~hE>+zg0)e^ru0}$;Mh!VG%W@$F+Gt6@Lf+aGPi}=hW0xyL#78)Fj zd01B!?Sv{r=Na{?6L>0V)n~Imf{eyz{3^PD1yRxRHwx^okpigTxx2&x$Ovz~!xGk< zfzRJ$a+MPQJP97yEI=gReyC@@NN5`(=*Cau^NDmi{-ke1?8;G=D_a19Qw7J>Gsp`k zU_0O^M=whs#vK|wp7YwZX@yWjc^OTSnI$#y0cVK~MS>wVm77lEzs|eZNt(@6ixjQq zb_zcL7Zz|zDR&GtmqQCJ0n)|i-DFv~6Zyvz|!a0LLW0+k^uXf#gbPRSq}vH_eO z?E+`)hU{V=e5OO0=}=N&u$j4uq9WuN?~f4qQ3P#0_7m^? zLBwQ3eZ!D+>PUZ>!~(WKS)`B^Sqh!A}EICur}#DJI>fL{qtXfML+mt1VbPx~4 z=&L{R{+0C$&(Kb6>;J_y=wG_V-tDi(W&bO9VuG1FJnnUmvK237;}@}cZlC}C9m$qiTY_Gnn*^(SbaL1owrspu zWdZLNor!5QpPP02gA)YXKIOI5`o?O!av)>=Gxqks&XsV?E delta 579 zcmY+CzfXfu5XbM{D}|OO?ch+21HlefQ`27pbuiM&(f@z~(xlX;2^y0wK+?h0gnz=_ z!PUgo-Jyg3iU*XMvb?)@-}~HsUwAv%ND9V6pQeccarnLPB~+2pI+c}p0)$E=cBO&EZmZA6f8ig3^SR6Z7$VNE&y_*V75)M)EBZ+ z#8M~Sxk@-HOTG$){(oQ&Y|;=yHgv9JO-g2;(QLEnt1P#au~ky!wo(Sqw}E!@i~6Zh z;8Vv6y$x+h?$PX~?^NAQPcGP*$bpIPGoPp-KBfUSg ejZ4k-dZXcJ>h$`q+jXXnrcXQfv*2k(zsMgWPjb!x 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 e6077a090cec1e2a21308c6b997f59ca874c59ab..939b52d7bb4e848779e9a9135bf6079d933dd829 100644 GIT binary patch literal 950 zcmY*XJx|;~5S`ui+U9H{kW!?IW}PB5Aal}vAVtb8(vgB9Kf(BXPGB#00iSge4It6v zXQZRzKcq~VGCw8~ncc&OVi)^n=FOY8V?(i=GXP*AKLd7i1|S3nCIy2Xf0y5azPtMg zQF{iN^yk(5TYb&Jn->=g>db+4@_bq}MP4nY0-`)WuZqijQY}>CZuF0* z4=K~H%`prFAk#Y=6t<`>4cmmyHfXO!mW0&*2ilDO{Q`e&pyiE-heinkpu-c-#_x^V z(xKvfMA;j34yVlekhr>_zBlW>P**d>Y4As)LMDcCN6akSU3t;xq-YV_o`|?))@}xs=gjkuWFB-t4Dv*iP1;&qd$U5M z$(vL<7Y02$jOoz~rAa-zWI0Y~J#-5;OI_7%os1a8T|a#QlZNBOdUlotuD4(>LfCD= z){c23fbR8fyZp9j>Y{9xmsPpS;N^M#kDn87c3Wb#Sk0@Z*l=GFV+{9fqx4@@*2`5@ zuSK>G4+g!1Y=3d_<-GZNy%`nO%jI;orX6*&1A6!Cvio*0&HCA3QWU+i%=-QABrdE9QC`O%VE|X5@k5qpI+3BmHP+as+k)A literal 1053 zcmY*YO>5gg5S`tXYAA0DamqL%d6ngBj{~(=}Bd3uN8qIq%^X4srXgX#9z+7HI9xa)TR%t+V2meJnAQtp(dp;=9egIlEW~{TD_7+W=%5(=IfHi5@MZwK6i0B&ahgNv#snwK6hLNTlCTX7tay z@W(PVyw}7FQ(y3o=pbmhXLWdoa$h0!t6KV;(pBV|=cx}AbIpjNq4)reiw}no7IGO_ zy`p|avong&rrSva`;Euk6@~USI@cG0*Tv6Qo<#3T-`t2Z-&W{g#XS2@{fcI0D2d=& zzFLgB)o4b9zD2VDIYFeivgf%dP-rU+M987RfwGLWx=g7;cVMgx(-bWOGW`uwgfy^- z9YD{kqGc*ZK>=Gmk0Gf~gB5~|W=5*J_^E4sY>Fc)|3kHWjZ?nzU%trDA*LJPx@Im( z;4UaoXqj%j=Q$=j^QohjX&@!W)ZENjk#*Vj{S3ya_ zeHSH``wDdL)<#KI_|nW8`P>*Y@|!$QPVdlou=I;6j9(Q6a@en*~O= zOrNBR5nv3Eg91a@I!_DDwmYa6}0Ml%(ZvX%Q 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 d9df187ee505cec07dfc25a2dd6c607d6003c911..a6cb79b14a59d106c29472346e52df8d5a914f8e 100644 GIT binary patch delta 63 zcmey!^pR+V+&fG&Nd^t(G^BC}nG6h2iE0OGAG86dNKvgJSzv}uFv7_E2d`2Q7?B4< zTIE7K(D%Nq8d1O~_!k~ZDi>DLpQ+vIAI=FqLg`=C;R(Y+cG-|%Bqv&1oK!e2_^gzG zx(Wso0nR)+HPy?&c7o)(4!G~k(~EvX{Y5S`iC#3KjEq6Q=&tVx<6eq3_7OS;^Fm5ulh?#={EOyNgklLHm862dih zmiFdP2>M6VHhr8s#X_uh_PsYV@6AW)O%)(GA0q(Z&a_YyIGJvL;(S)Y15tcHq__s2 z8da$d$vdsbN~1~KQk76-a>2^GC-XUrhF)o3_B415k35={aub1ea=)}`1#T2{I!-HW kIsK^XHtnF(cA~!3wY!7RYDUp+I0zkguyu5Nc5w*+Ul)^4O#lD@ 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 64731c053d8e900bd6b8e00b505af86ef5114a58..9a63301213d9a31a3e4a36466f83a29dc3575f3f 100644 GIT binary patch literal 2297 zcmZuy&u<$=6n^t#f5e-HjT)hpA~fFS;2zR$BW0cTWw2eA`ZQ96Ox+9jxoGH>3z$$M|U@0(d_kM{);iL2p` zIyyQMM?2DvYC4_Lj)##g(TImjM%ki4M9p}0pvJP_9~c0~(Wx*{b~l?92MN_&3b zDM8Er1vM4<@$qjIO(}m|+NW%T4+DR{w|_8tC`q-uUGhSVt#A92J@Wnj@bF;JqX4-V zDy>$xJ!!Xk!>$rhtF_l_-*4@<$2}!0uND_x2r1FvCCbx5BGw3#c#x!7PhOkH^OpLjaahM}slQmwe$+bic5^bc> zA789Wq)`*N2&@!U#rA!pi>g))BXt9PXxj%FnTvtlAM!qp8dbe0qR1dQoLs~e?tomo zB2Up>^hyYSinZ6`r0Ly3mu@n;r5keUjxBKr*?jW%&*$rE6>U+|JU&glOs>HZ*6}l0 zL;bM8aFvJEBE|_Wt9TBWn`q=hAYUtzU{mU*`L5|b;;yuTkIc?zcy%sa!zI4j!Fd+u z66AQ%_&IGG55Inqs87b|A7%K6Mgathp1IubVEUI9A)n0*k^u3*fSFh}-h#q8js_?k zM#By? z99jbhO*x!bn}nnqbmc0p0H>y?QuE~L@$s>Um=@1iZEJ_5H>vX?n#V33n3QMaC1{6KD*V3jq2)QtgziiB3EuuiDllzXy} zAZCSf9;;WDZF%;(GLR@51%r+UmDdU&%r6-l_h)q6L??`T;^Y1x8h{SQ6?6m~NP#cg zEfW;g0O$5Vhi~r>x9u?=m<(WYW9(`bg&TQ6qT*QVPi%IyeP*@BAV(8OEVuP z7s!BC@W|e|K_aK<27%OdN^uYPMFug2k_sY_K(xco~h%Bq%c?lN?(F zTXx3p+#pwn2?DDe2iVFkV4D%2Ud-f5q)0^X!ndl>kBlfMG3pC(#2cAk0BkGShxR$$ zVJf2qn{$syv@MO6n+HT^_{M|Rc zz;w3Gt8c!C_@ugRBp$fQY@c{|){kbLwEA6+oX6k)^Ugl59G~TV+y8O=+}&@6ok{;- z*c!I?d%Qxl>ZW;W|VgEYHgKhKKvTNqdgP3Zl2@M9h&o6ZJ;p!`{fIprvb9 z>YG>6^TF!9chfAb@3z~Uolcr%8@uUdnq5mb ZH|y84jk}$#bYlx!wszOM{n3Qe{R`2uY1IG# literal 1970 zcmZuy&2Jl35TEznel;7yRtdRQ1LMi31W5hyDS*aqOj1#gP*iF8mYaH}BaoMU9o6c{8)~@tc{qln+k?5sAX;XbLVKvRRNio(Bzlt}OEGRw+xGg1A- z(Na5KUXLZ5sS%D)Y!tC#dP6%!?5MhyP951e#x-e~iN3K9*v>(W*jW`}$Q9y{iRj9* zK8PyFF?=b7KSgaCA(1jQ-iq^vdtZw=Gq{Hsj${+yV9IYi`{TFus)`UAusyvOV37vo zWe|WLRaJ$#tXyQ0tEy=iryBd_5?$LDnbrGn?LunX0}e{loM`0}4cHH~ho6rez8Z3+ z%AlepaHEhbVHoka!6^Xf2)qVvA42_)E8ICQ9>RE9qC{DL4~8E=i>Tdr&0n$t?CeC8(q;l^PbvKn29N?*D$q@)Fx**WCFrCl-eEH+g zuYP?EP`EVB2)`wM*87XTl&k7n2;R`LF&G2{e?$EQEdpNVy}zhPe1HH9%V-Uw2mnoM zAS%TecASI%wZM@Ri$84HWwSuC}= zqAWsoa}h&f$QVbDN2ko&fTaRtn85%%-w{0P-;kz^QW@bgQK`f&sbwk=S&LM%ZWTBg z4tpv3nHnchlvvN;7y-<*`1*P(H$vR*;m0_?;A_`;qQ#tvC=85QgnR2Ffek=0;i@G2 zw{~1e`bDgD9-WQ`d1o{{>vhJJxsr+b1b{AH5V=*lmXK&K&jRd1&eG+F1AeR-zDkx^ z*onvQp2I~Z&Eqa>*70xsetLDG>Ya{HdZYX@&kfkzqw{4I?`Yk@aNHZPFQT=b?dslk zW$X0#!O`g9JT&CNU^wjdt=ax=WgEY(L1*`7UhU+yT6(8_C+&6itGj!7?QYuX?dX?43zI*YtP?tlSM3*9kkkcE`fW`Y5Qb-G_vFYC*fMA{Inx9Q`SdQq=5`Cys{bH&Cg7zL8=E9x5KHB1>wu8T zKVWHNp{HZ5JcOJf<=08Gs^L;R_X^1r-B#32&(D->M zcvSMbgpf0z1cBX%8~X}p>sWHNF8!5CAaEyL1%~KpC>X*`R}cmw^fAGNKr2gkE2D;G z&KYSHKl}N5&(f_`OS@bw7B8S-S0*HlIxZuLqK3_`Yw4isXgdEFBsQa5dpuek1|I_D zT+G;j*q~TqbC=bJiWhT_Ft^^;m|0aU-q0MKmPNqk!fs8$Bva?@ZhE^Z1eQEeGm9QG zeD@37W>^iL8}eOH?kfq7YV9v~;z~ls^7!(+p>J%6>nK_ob zvN$L(fS3a2%n}L=juKgGofO)fSX!J~8X6h|1Q;jZXHpSiSnkTp$j!j5zzEa>G|nJP zg<-Q4a|{ck>Ev>DZA0@E12Y5jq{Kwi|46eM4+zi}6 z!ws@j7!)`*^E1b=Fq%xxVb?ZHG*3>nurM=DGB!(1wlp^~NwhFEOHMVkG_g!eGBip~ VHb_cKGBZ!pP01`OsbpYa007ikC$azl diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/example_updateable_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/example_updateable_contract.wasm index 5d6786340ea05ea2d714599ba2d4754eaf7182ab..703627b9bcf6ae2e6bcdb17e6392b2c6ea959941 100644 GIT binary patch delta 313 zcmXYtu}T9$5Qb-FFA#Eq2MVHC%q3}p2%F&DMM2DMWA6)W_Hq$5C}PssTn;pnB2753 zv`r=Y2$nvC58zwqo><=y1o{^}Pqp+J2A delta 384 zcmXwzF-yZ>5QgvW`#vbdAs~W^!=>%eB0|%qNh%1@MZ=PXntD5hD!>Xdz zq)A9V5qNc~t=zR9iY?Rb|0UgAIe4 zw5AdkQcdPgm3zSr1}jU4ej4Rz9EZKE7mo8m)D6aQ2S*5#9}{CeW8K8r(i%+W%nS;Q3JgvP9d=9{3QSHd4Gj$f3XF~%S*A=t z(KaWR76C>D#>vu*PZ>=oGcsu#nx`0;8JH&}CYmNE8C+Fnwndh8Kos# V7#LXql~^R{reqeCR5CCy004bo8~*?R delta 216 zcmbQra+hU7hwyAhrYVd}%=L_Q$_$PI*-FeR3==0v*Rz;2Gbk`BFgPi6*fDWHq?l9~ z6qpnk9XYa0nSc^)PAo0v%p3|#P7EN$Oq$Fbia^RyAPcCD#i^yCp+P`_L4Xk`$OsW+ zRsgExP+$g{pb6B$3>M{PW?g1k+J=ed$%z&g vX2wazW~s@R=0+xo7N%y&sfLy&mT5_bM#;$rNoh%D=4rYqnMEa)3=9kaU>7aJ diff --git a/soroban-test-wasms/wasm-workspace/opt/curr/soroban_write_upgrade_bytes_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/curr/soroban_write_upgrade_bytes_contract.wasm index 629d9da78657a2cb4400cbb76ac777145da220ea..bbc8ac8e8a3840adb998619c5d56494a92dbe48b 100644 GIT binary patch delta 63 zcmZ3&x`cIuI}@YnWDh27L-P~^GXwLa#6;8NWCJrZqa*`U12aPdQ&V$GGo!R*3j-qy Rpc0ED-IUCtl1c^!1^^T)5IFz< delta 63 zcmZ3&x`cIuI}@YHWDh27!$kAsL<5*_8fKc2J zG^JPcRga)dbt>xwww`Sq-8r>#tL1X3HRdlO+J~ZFLmzxX)-cXw5%}Ans|0Px4`gHU zi6|C_U}+Yr2uKmzXa@muP0vCZf#{L4y4)iK_k*|Y1I|>>VE|j`lPm=ufvz}O7nX*b z07$Z1z)eM1HvgbpWy(M9NB|#Hvhpw4*pU{77Uw*GgS}8%F{mNQyrp)P;txEZs&m9R vf2_3H>C_}99gjxwWMYz}Gd8hF+9r6%WLN4n$V>E+e@8UTI)nteea delta 433 zcmXw#y-Nc@5XEP9_w?WlTqQx9xiex!g?xFJbayLBz|zJ#ITP^GNgA6ZU=TqI;VLW3 zR9C2-g|&@;iQs=AI_pREhS_<)_t<;q)46?Ccgxn}!%L2bgfXSt5<+PcXciz869Qf> z+A1P2qa8}uOtG8hnl81P>-lUpb6pH&k=I2-$Z}C?+n!BW7SJxB0}jJ0X$i=7>H?=Y zahEojG4hdjNKl2JSp19S95%RVDfIML&lmVw$Vd;_FR1=upYvM3ff zI<`|^u~hy)O8qwGcRRb5yQ?aOZj58LVrSh~vFH?-p1sL6CF5xH^e&GP8`*)iQ|*OG ruh|Uh{dzD+T4AlxYwichpxSD*hW%4A#{p}Xzor* zlY%1Ab^L*=QXu#Nln5wNQt=lkDZ^VQZf168{N9_l^K0eu=IK%UboPxpQ?jRLv#0v_ zM)2wEhv}T)vM(tK?Z?mmW@2cg%19QLtAV0IMJycxv5*s{fr=KJx@7WcT&NzC?N#y8 z{Hsj6wAfr09qO<^8xXQ8rTJg^Z2CvbU@9i}$X-xwS}Adhfthg&EQxZI5NdI4bV{wp&SeixnnMnn3x$&2Ud?6Kf}=0{ z29>@{jjoNah12cTB!q415NA}nRib^o%L?|Wl0!VaX4R|(acD)|^hdr=VQmtH@i9GA zM%W2&4yc%2U(sKd%L^C{rxP@*Y~nvmak>QVX={~zuq5Z>m#&`_8uL)86SSY&;J4J C!F&e* delta 845 zcmYLHJ8KkC6h8Mc51mA(SaC5TXC{km5MlFhW>W}rN8$s)M=C2xc1^&$pb&z=Cc9u` zVUe&FDQ#pMEyO=y8PvkkP78lPI?MRo8PRF(Ip>~pzQ>*8Q(sT-?VLCmeWGYc=FR@- zx;{MVzuo_wMtdl>B_)A*{o(gWTxDU{&MC@O$W-DW7IK#frOApem|PgOpPQ z8gN6Kgz%?RVb(?|SgCOJlkE7ZzBtrQxsyD?>%zK9lWEvg8OmggUY$wjj58(mGpVaM zv}uq@tTI!U>xg|021Y$|O-(c*WnC4N%WltPvSEM(r&6qI%T^i;hNxa?xKjoS4)ss1o z;@Ce22aX6Hj$e7j%mqP}{OF9N`n$XHWMd0q`0G8o4qXGy!`0#*7kEu{{fD(i0%LY 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 index b9068f688e6c0b7720c5616b6e6f453a158c156b..f7bb95c75145beba6e250ee06f9f5f7edcf0e36f 100644 GIT binary patch delta 2578 zcmb7GO>A7%6}~_3%{=?ro}1W?XZ(}gc{8nNVy7MlJTs60a|gvqK?1sl}%N;DpD5oJMRs~ zrIo7MlF$7)_xyb4JLmcH2X379S#$gQoH53CCa(L7N#`{^?sjjh+h#|-?OwOtri){0 zeXG;j=xuCunit~Nnm5?jh8vAmv)632J1xomM&o?Dd9kt9+-^%T{QIR`h4X%n8MPUR zJkvt+iu5$oTqV^#Wig_eVP!!lqA0zJgfuF&zL?~@HY?`&8+Ju5$)Z#?l#7s_eNEO= zw~?Z8v@|+2j#{#RlaG$e8ofR1)U*Q=T7-3BpLFv5z%cC;L^Tj3?hV|{Kq3(N&6%vw zu8}=#agh(RF3CkL!>lA@u;gmEWN}!0Gt&1+PZ|h0!hN4|i5wcCicxO$NZ&EF%{=q( zaQldu3%*V_QYT=^u&nqpRJk9j6?q=mx5P&OpcxsP`OpzgUtR`~yL>a?c_wP&vSx_w z2}H?FAv9M3iOOkSl!d)f;7qGhMP9<~XDozfHi2b2%sQ~5qjJOxiMmMC!3zTz^eP3J zrhSyRidTxl7v|>kKwU=38wu2ZD%iyN$1F7coBL@$wKs~S zN$=_ZNc%nZmAp$J0p$(&%^jo#>tN%aj7V1yy&H|;Nmm-v+Z z!*FgAp$hW`C#J^ysG&sG^N->94$9|hMl%B}COcW`BkEE#l|ALJ!p#f*t;{%-uX0M` zCp$FW=CfaE%-o))2yI;ng2`s*y#Mx<0uba z>b=n@zCsov8U&_F5AEo=Zx5yj&Oc&d;1)#Okmw&|zvtB8A1e>4LjgGoae z0-Z!W5ThxRpz53&qbc+B*hV3mGW$HHVFh346Z6>sHK3!DYSI2<>;yk{MQD@; zI8iF!O65?zoz#m!|88n#WLb0NRN$7^#jS#RgwLlnCze&U8<)Kr!OhLj!7ZZUZTRD= zXn%I-%tPbYrw2u&W`}!DNXB(x{$0);BKW5)nt-qz5rtzy!tay~4jaVLI^3NdctxAW zUcJ~W*<7~&JiN+3whxXkBlL^oxrqQpG}jLB4j9BqTC#pFMK4KLJ{NQDhC2 zg}IAw@HIpbg;bGODHsd`Ol&owlLyq5!kjq4E}bFb9xTrNU;WHS6A=}Nh72_{JrD|C zq!E1WV|Ih{x0a^<$a&VfnfxehvK7JV`iFJriv3=uh2i>cW)*L_9hz<~|5$K*|G-ZF zW%2M$Se*t?j6X}kVANJ#{PBs)C1SB zbFh1LaQhl$68rY0_WDk*xptww-Mj!V@8EnG=f4~1e+U1({lzwBjtzY>c=7jJKbo15 ze8t{4y0BbnmCB{cTC=&bzFsPqPp*|#O6BF!%1Y(F^2uk`tEH1ws8rWZv^KiE=V13= DB38}Y delta 2653 zcma)8YiL}@6`sevyVtsUjHH#btA{r&9F#cfqusMSe8B?TK2P@dpok{|gI@*}VQNZTJS3HcRD3!!bmkU#<O z+Nuv|cj2BpGiTp=WBdmLoBnu0HrLkp+F54}KS&y~&AYOj ziwF6h%}2jpzC9avT(=`8giD(^whCW}&RAD>kBBSJ>+S20C0xl_Z!9I7+^ny^!u%#P zTR)2AHG7Z`<_5jxm4({MnR82QD88_KrgE`yo(=abE`4{oj%gaw+K4?noEqEbt~Qoe zYHYu^+E}U8XhEy$^3uX$V{v(@av|EC=4aR)_BtPyk4|OnANUZTv47`>_=X)62k!kF z7w~3nl$lbHky)liUb1vdOD&8Sr~?J*;XPK6%&@cwy$%&*2@2|zQ_|9?K#M@f?2MD; zqxNBEF>#Q#u`_iICGfwN=-Lo8&2v?MvM-5~AKVdS)S zVVv9(hSx)VkMvx4m3BM1?`x*HCWA((-QhSPfw#lT!aY$~gHUKY2z1kS`;sUWxTVzxLzkdEUuXZO2%%M9i-ECLBhV6;m3(|qV} z5(BRwRg@DC-aq$4U?&l;7Z?fb7Tp6)libk;9MCo!Aej-+4#SyDyJdzL%iM<%hg3WW zN-|V*02aW>TB)S-Wc0cnD!;V5^+%e9;pp8Z+;)Wi!yh^8d+MrXDw&_U54 zA}V%bkd}dV?1%Bg{O5MmdzWw8&%G1;Hhb5emr^NUj6a!n)LwNMl%H#b?i?t6<0He*TL>IBb(Z_FLs>7(VunPNF}fjgu@eMV?F_! zD4R)@x4-i%{jJsZyr**Z&dz-X;cuHS_;)ff!%i9A&@sbL4s}b;P_E#JFq8uv^w17g z*El9M*#XvS%x-lK_m2AjfTKZ#!7%^2eXa8VAG05H4&&L;bvg<4n=Ht+)NwUoAL*We z3%}?d?U{haB-l|F#E;+Fm%B%S_@BFfeCRe&5=iv~+u#}3hKmopU)jYdz?5;V(|@r=sj%!%w}&ReAUo;Sz*Cq{*{neO4cp)Oup@`<4J};t>-a8prSe)#uuF4j8X=K) zXmJnclm#@`u%}XX!}|o;Z1I+A0(Xf}!&3$HblTs#PTE(xF#5*&-am1kvEN8$r>6yv zJ|R>)wMPXj>z|aJ%Tx(GqA{65z7;5Hf0|t2Q}!RplM>O`qp8ZsRl%d;@E;R`MZde3 zml`XTYQwY7riPH~H&SD%8K#(r<>M{+RmeRU-)H^7uhh0MaxnT$YxPOUIL5V0wd%!2 zW&T2KwQ`}s*sGZD!2Iu9`rpLY-d|ep_=0NGE;Uv!&Yz+0u4;w8rdAod)jI3r8_y07 zNqj}UF)}t)DO4-P;_Q+6BeS*YvBLCBrFe9Fc+5<_X zRtO1+13yuE;L9S$Ro)^EWt1)5X#NkVYV&I03&WOE~VAsTC-8nJ7XKpMffzn2ecyeti( z$}bnL>Ekv5mVyNz>(WrGaWPLhUeDzvAj9doNXbZ{a=gx=#!ZO<9poc;AsS$7%Pf*Z zIWcj$Ov5}tP3CGPc2R+k4ykY-DW9B9>{khz}XV@+Bm5<$sR z2Wqre@Nq@aRb?!@Bv;0go9nq+PP{A>QRWmM5v0IMT%^=8K9wRa3f_-L-aUrT(;v9H-Lys=@1bRJHYkDx-y&%}#8p z*-(vM2^6Sndh*ms8j-vptzGiGdQXP5-WGmlRV>?J(+=8?Ktk#g=aS702W;3|>KqM5 zN!S?;kE71mqg!vDbQKBU+`+=kFm7=BKh}SP0nhH=h(&{OKN^L%dJiei;Edhgb|-2i z!*P^kYD-(2wd$s~F*w{m7=1j=ob)x5;jr7wXgd{elirP_Q(3EZJ>RRf!?4=vc)nk0 edsWZh@~YL^j$irEse6?=QR?lD?qM?0a{mBo&8ceu literal 1075 zcmY*X-D(p-6h3oiCfR2ES+SLBi=3>zNWs?hZ#TWmql3Ff!LsiAm#2P}1h z;sWy;7viL$pO6@X?tN9~a6JnYhgIXluP@glNu-!cXXn9Gh!r+OZj?g2OUn9L+2fpQ zC%^?@;CBMa$&y2qElRHJk<1$)$>zDLgK@|!Gl{dAi{$zv%(pO3K|7rV(n5$nYhj42 z!VEtPbcia)UKSKWbSjrJ8X?kD=vX;$q**4hNtipNvmVZcIBmI71uFr|Rd69FbOP;S z59Z2}3Rd>n5i|M>QS5tIyzUO$_@}VyYW60wsz03+N5Vx(Wsxg!C6zfBiAYxX;F#|u7%|HQl+Le{%Xnnc5bg=hgxBv2Rz_qu&2_Xltx Bx%mJ9 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 index 1ec8cad48510970365d160bbb10c893814702456..d7d1754238760e0857d81c17549e8f8717d2034d 100644 GIT binary patch literal 904 zcmY*X!EVz)5S^XfP2IW_BMK@Mp^e)^dT4Q@#z}8kOGrR({DAA&rmaoV%C;hUNh-BM zoH+0k6$k!-Z{SpYaVN2e5GjHDPj0d7}%m9En{1|65HaiA5#`&Dh@By+ZJE71g zwhzDs2ZoX}a9Yp!oaw8ppJ317|8wb;Y>m_Ld2xxrqa*=jA@G$jOrk0Z(@Daa9fqfA zbPzYb+u;Y?k2e;i;?ixAqcC(GDrFlh=0_$0uQakuUiL5R7P@x!-n5cU(HCbNsEyEL< z4zbE?TP@QitxPjVm@bx^mbvy!hjNFjW;Qe=>R0Lm>am9+P@e;NQ@5=M)0i7fDI{iY zs<9DV%+L&?5p*2(Tv;04s3m%d%-@yt2Ptuwn<8{6uzxgy56Pr;vY+9hrjTNn=5 zaI_YmPpTq{tMVd^ryecn-BWKB0bDp()EM#(kN#n^*b-hox)Vz$({Wlw_j*q#&fuEe zSNkt2i*lM4joRA&Uca~J?M}{4POFcXjg!7sQI<*G&>6OvK~_r&BlqFjh?P35u~e zbubQ=On-TV%-T7SfC zOMf6S2ZJ}NNqIDsX5uQQsMeQX-=6uBNHLx6A6(1BGCLx33Ld^96*x($$T^kN#T{Va zq^{&-$stO1CD*n{W-X9p_dzwmHpnV5iL;rDWI80w_ApPuU^Q`N03JH5g&wjBGn~ZL z9;ysmiJSA#s4OKkL!>E}26Ajj>r7&oFguXOJKpqgHQ-8REW0dM#vM18y4u9vZI&eE z0y$!r1FK1iQ_HwTIw@({B+2W^kBgM_=1N+MI@N-8l&Bz#$B!!gH5Fk*Uurcj-w zF{m%rtrk_Asj14lcEk%R1n`zDehP_;?}z4ds~}?_cMi74v*x*Xer=hGc`n45xbvqR zmLTlsd~d#+o2BkZ%z*>8T@*08!vf)WIlAnR24OTBUd7S4!heg!FT2I;;QT;@GoTlK z=btYaYIwP_5R3ccUOWmP_0~8p;8r|V`!A{o!*M*AsV!Ic{loprUjO3keDv{pcF1pQ zFdTN%8Ld&P?DMlXh-%xRABFY0chEWT;;7-*4#WD97sb`aVdJz@twm9#bK3Fz)4lG+ IU}WU}0^zNua{vGU diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_alloc.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_alloc.wasm index a48ecb7bcf705b8c687835c2218847c721a474c6..d819b7e8feefab1bd649f4aaff5542837d3b0bfe 100644 GIT binary patch delta 870 zcmZWnO=}cE5bds>@19L29}5~6t(iy+gurBFCQ%T!l>~<%dh#f25(H;e*tiIuW`#vO zh!BQ={toj4{1^TJul@uNzTO-ZyiC_ry?)j8UVUDLJB2a zCB>3=RW;H~r{9Hcg!yz<-SeVf9q&hYc3xbkff~?&U6v)q9B}ubBiP-ffaQTRXiw$v zna3UT{`ZZ_&?F6kmHWsaF|f4@!I)arjmqajfzf*6+iUw@v3WCY?8;w5}0UY)HqwL zQ=et36q4*$w#I5(h`U0tGO|t;z&Hrpn*DY~-Rk*|I>64~jXsdYfduT^!*8Fe+gkug zUIdrVF)zNIBeR%SCa3@7FVus|K3r&UcnB`Fl+aTC6%882m?W}PfhCFTjMkE*1`=XI zLXO&jvtER@uwd_cKtf~uz^s3BaP=~$jns3x_KP!i6LeW?Q+K0r8C|Aq7bV8{ncT<7 zffXXKLKu+-)Idbkos6K_d^do@cCE3r;?DSW3Qw)DX3Dko6HY?fI#aAGC=|dHY)f#6 zn1F}M;DO`P?ZCdEeImJQl_{~U%NVF2ai2fjcV_KZ_h&SgSRQf)X4;;66H2OY+TS2q zwEb{vXZIv8^WCH2usA->%d&rz7kRmp7sc+Kvj6;eFYoUGvUjw7^5S&zP6+V_F@b?R delta 938 zcmZWo+iDa+5Ur}7otd54&2BD2q5*40iIEU7x7oxCY)6bNqM%=p&62Gs9k|0H2) zgUh%3n$HTQRrTkI^3-UxQ)d-CCQs!y);{og;&`|pq+F+1rJSm$nE2>>cRbL#J@|dL zV`Y#;(8ON5yvNg*Y8(*@H%_bMPy)r$sS^rT(QMS;MIwM=`{o#R+p%iYl%xtJ!*5kG zf%qy;stNkTIo{5hv}PL)E+CS=HM?mePeSFyz#-8v>9|8RFz5=A8q0ZNfJP8-#~PLc zxiB5xsROJGiKqj+JoK!g3t{U3BZA?DB5q=hO%de+5|XwJDBwSqc@eZ4b(;{y-XcK7aCOgqO=7 z;oL&E)$6XVW=mU3*>-QOwYc0}UCDae3v0`3J6j8jz24=movp03GymY>-ryw>{Q+yf Bk*fdz diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_complex.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_complex.wasm index 6b5c52e4daf5a6076a603034f3acadd228eb0b66..1820160938fd5db8324db3e3265d5641ef97b11c 100644 GIT binary patch delta 811 zcmXw1O=}ZT6us{wGcTFOz6wg()twl$L4;{#W?Hb4JW#q*Tu64cNh2hojV7VurU|r^ zZj_e!1Ma$VRTqi~{Q>>}apl4vP~0li`(~OzIB({jd(OM}%)jEd;_(^#eDZ0HeLeZJ zdgG_!?pW^Kg8BvY%De(v`6{Wg2V*xD3LSLKCEGX7vyZU=zK2j1`t*^k*+a>wBi}VJ z!#o5``2;Ed9MT5Mf+=0;!WG->A5SI|Mo-N1^C+@jfqC*ksAIPRnEYk4_g!S!6USV{ zE67ns90^n`Gy!>*kem14znm3fv1kj)8hfxqq=p5$PATfcty6V#2%F3ui;~dx=1S)fR z^@Ha&3zU?Gn68%&%Eq8{-m`pZz;Xnckfei>>S>2cKAWPlVb6H$P8i?qA zf!jbniN*rm&4FXbnnk{ud*~pb{W}kq~QX$K-WE8}^Ty=Z_XXSic;QZa^rk=PZFIJV?boBuc6+xy7Z)#B2>Aj20GBRYxDliaHwyKwIKj;7EkI(t&8gg9fo0bqb7zfB3|rCZ3)IWlEwz zf>cQmz$;4wfaVkl`{B!{bL7stAH!Agw6E;|0#Fg)-`7(YbP%Nh^3tP;l{ zNwL?i7>U|1)-e-iJmEl_M*+ulek!#I5JfqM{Qsga@N{!g$j~xFfp4xrKAj_uM{fS1 zFTdY+i4ca4)4(l)ABmWnLHISfo3Sj=L$22PI(Y`l)NXgoO=7cx@~B^wvv@96Go2s{ zS&BkgU zmJY2NB$p#*#Px*1*9uEo@g?KF#$QWEr@p_& zvDNUvUllCsEVY`I^1@PmWx3RB%~zHx+l~2!W^=Bw-6)l}A8xg~ Iz4s{e50bp79RL6T 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 index 9202f8af09c6e42111b43543599ca94ff55c46f2..d5eecd304d3ce6ffc7d0fd2d7fff32d80a298cb4 100644 GIT binary patch delta 918 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 J2mK+t`xnJCqA36X literal 1115 zcmZ`&&2HL25T4n!!NO@m4wdMoGK52N0GXd+=%K2u=2}(C131PkO&~yITS&P8QVzZ5 zE&2$(R_Y7%-Y4jx@6cJ>O97>eR=YDh-#0TKV+i6I0stE98gO+Dz>Ol=v{2^=<-#kz zMt8IM4(1y6&!S%{%*1RFJuoPWDDs7vLVk-Pz`|nclN(rxF3aF9H8`gm=v+Q%=tH68 z`=cNUd@&z!G=2X@1o!?hhy`b*U%c31xW?5PxaDaL>R^G3Z{dWFlSu4s4Y(y|+*i z$t>u}FbglZafGHKFfB|gRE7RPrmdOm&YsqYjh>B34ODnmZbl^eDwKm5%MQ0vkd;cp zD79Oe)L7P0%3Y&~tSiaEvtp>_N>!8fmcL5jo=7>YY98tym{roj($b8Uo(go%;05(W z9q6hcDUn4AQ%fWly0%oiw5``X|G)5=;;L~D#PE$Bhl_a<1z{53i*RWJ{h_qg;+Jxs zXb^Kp(Q`k1yu7+1(;nnLdHkEb%t`V5H|;-}S^P<-;>uhKLo=AK0}OEWK&P5x<;r7a z%(L9P<9>)C`&mr-J>=g>db+4@_bq}MP4nY0-`)WuZqijQY}>CZuF0* z4=K~H%`prFAk#Y=6t<`>4cmmyHfXO!mW0&*2ilDO{Q`e&pyiE-heinkpu-c-#_x^V z(xKvfMA;j34yVlekhr>_zBlW>P**d>Y4As)LMDcCN6akSU3t;xq-YV_o`|?))@}xs=gjkuWFB-t4Dv*iP1;&qd$U5M z$(vL<7Y02$jOoz~rAa-zWI0Y~J#-5;OI_7%os1a8T|a#QlZNBOdUlotuD4(>LfCD= z){c23fbR8fyZp9j>Y{9xmsPpS;N^M#kDn87c3Wb#Sk0@Z*l=GFgTX!9DE(KJ^>S6! zYmx24gF){g+h1IKId8sRZ$^dnaygx?X-D1cfZqMO?7kgLvwk+16h*Hrvwpuj$$DA; aFzfXONB!>Sa+r08L>W%@rx$f&<^BP^S(w-W literal 1053 zcmY*Y%WB(D5S{ywd}B!=T@?C&GExFn7YUA&`myshI4y+IPjF;eX(HE7A`3${aiFF2 zPqNBCbkRjOg)X}(blGM9Ae}2mP9q^Snsa96%()1n>6ifkbHxF$ivxfIHU}XEFm4G3 zYxZL?XZrH;3pjJQ|E|<5dz_3?-uvw>|!1CUl;{!1CVJ(ufMw5PNb1vIg&?Duk?Jmf>dKEzaYW^RsFtsB%2)o&7a2OlbOT)1%q0oj z1qU3IrW@~hw#m+X>Zny3D9Rg8g|QN4;WMB^cA{+xY>&IjDNcm8mHU~o<89_uP?2!o zMTO+V+&fG&Nd^t(G^BC}nG6h2iE0OGAG86dNKvgJSzv}uFv7_E2d`2Q7?B4< zTIE7K(D%Nq8d1O~_!k~ZDi>DLpQ+vIAI=FqLg`=C;R(Y+cG-|%Bqv&1oK!e2_^gzG zx(Wso0nR)+HPy?&c7o)(4!G~k(~EvX{Y5S`iC#3KjEq6Q=&tVx<6eq3_7OS;^Fm5ulh?#={EOyNgklLHm862dih zmiFdP2>M6VHhr8s#X_uh_PsYV@6AW)O%)(GA0q(Z&a_YyIGJvL;(S)Y15tcHq__s2 z8da$d$vdsbN~1~KQk76-a>2^GC-XUrhF)o3_B415k35={aub1ea=)}`1#T2{I!-HW kIsK^XHtnF(cA~!3wY!7RYDUp+I0zkguyu5Nc5w*+Ul)^4O#lD@ diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_invoke_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_invoke_contract.wasm index 37b86ba3f9f37257189751dbca814ebbb3677a04..5e87197d2bd7477a7b87ca108af6b271616eaf4d 100644 GIT binary patch literal 2297 zcmZuy&umRmP2mzp z0=1kFw;p?I)B~5^dh4;Ogw*!f3;YfI1N3{dwrMI7W!}7bllR_y-#4?=9`7;{@x^dk z9~>O;!M1Xvo=&H z(@Fn~o^pP8_!~u2${)|{Q?bEEfxp|^-5Whnq}$ytc_GHuxBbao^8NmBe{ayE0J)bc ztyZ@^X}5aAuI8xKy4!2tYwfhhJ*_IQmX}_zQfTlT<>?^dHNqqwBzldkw(7j5x(=;w z!e9aJk!esQv#{z}oyP?>vh^g)O(mN-KV4u5i$uZ1m|GQxIpQ@{leL;!OY|TyR$24O z*{VVsJ%NkB>7uH|eqc>eHM(JyX`m0|`XH-v9=QFX>@%oQHOm}D7Rlk{99N_RD%<5e zMR(CFW`Byc*Zi>Q-9(q=WOU6m)U-Ud!XZ@i$=^Sps_Rv>MNRwoDDg7228W&FXR3z! zVS(YI468+q6P(xa09*21b za=dK)oNibTzkZSEPsivVW#ouf0|bhmmAT)+^e@AqoXrlB0P({| zoRI;o;E}y~g*d0^3W3yhN^uY5MFug#n<;Hm$usad(&dz?*kWs@@G@GJDNtrPQxaPS zTW%)r+#uKc2?DDU2iV#zV4LO7&SvU#q=}>V;5${AN0w)k81TH~=chfAb@3h;Solcr%8$0P{nq5ja ZH|v+PjoY2AbYlx!wszLL{n13y{R^&PX_5c{ literal 1970 zcmZuy&2Jl35TEznel;7yR!NadEA)1ogNu~ZNz=8%$!iG_KtibhfW7`mlXa6uwq@wW zwv-C>RQ1LMi31W5hyDS*aqOj1#gP*iF8mYaH}BaoMU9o6c{8)~@tc{qln+k?5s6Rz zmYht)q@^Z?$mx_?YRXR+Po_jINX101D=`)i@Y45U2hXl(l2BIysYp1kN3Ifd)w`~y zBAd;Ar*KNy^Z!!+GtWEeoje*mmZb7-m)ro)=6A=VBl6%YSZOx9`6zGpPPX;XbLVKvRRNio(Bzlt}OvWtDy+HVI7BPt+!9rR8k} zn?NgLsuhkGPMt#Lg4oq6iwYPD?ZT6`sn1^#*+v0LP$Uv00EGRw+xGg1A- z(Na5K-iRffsS%D)Y!tC#dQ&?^?5MhyP951e#x-e~iN3K9*v>(W*jW`}$Q9y{iRj9* zK8PyFF?=b7KSgaCA(1jQ-iq^vdtZw=Gx!`a9LXlY!Ia;4_Q!AQRTUvLV0(Izc&RMm zAk4u}k)J}=cM5|;TW74IKWfQk|PjUbU~nNVLG4v`SQn~ zU;X+Tpm1rL5q?YjtoIjvDOc6E5WJyfV=xE^{)YMqS_Hhzdw)@p_y7SImeCqU5dfOj zKvaq`>^KMiYk?yt7JmlUWfpV5oUlzpW)+qL_Dpdn4;o~=zcTrt4Gj@f1_-%8+0n*Fn@(!Y|3O5epSAtib$~|-DSpp*Sxje`ycFg?(XE8woH(!`( zKoBe&nh{M(glrVvRGVZiKkq!;f%&!PlvhJJxsr+b1b{AH5V=*lmXK&K&jRd1&eG+F1AeR-zDkx^ z*onvQp2I~Z&Eqa>*70xsesXo8>Ya{HdZYX@&uhl!d|AaiT6ZuU_Xg~XXl-Y^y0=}~ zIz4`HG4S6sa4!eD8w!d51#&2uT*}aulJ9({^-fiDad!7C2?p|KImv(wP`+NI` W?Va6Dr_w%br`5x)?(ty6?*0X@9ydY& 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 index d79f493442ee319805926bb3200b9fe026bc5dd0..7a34000513553f9b6e0107398d9c02d336728e74 100644 GIT binary patch delta 316 zcmXwzu}T9$5Qb-G@8Gyo+%DX?43zI*YtP?tlSM3*9kkkcE`fW`Y5Qb-G_vFYC*fMA{Inx9Q`SdQq=5`Cys{bH&Cg7zL8=E9x5KHB1>wu8T zKVWHNp{HZ5JcOJf<=08Gs^L;R_X^1r-B#32&(D->M zcvSMbgpf0z1cBX%8~X}p>sWHNF8!5CAaEyL1%~KpC>X*`R}cmw^fAGNKr2gkE2D;G z&KYSHKl}N5&(f_`OS@bw7B8S-S0*HlIxZuLqK3_`Yw4isXgdEFBsQa5dpuek1|I_D zT+G;j*q~TqbC=bJiWhT_Ft^^;m|0aU-q0MKmPNqk!fs8$Bva?@ZhE^Z1eQEeGm9QG zeD@37W>^iL8}eOH?kfq7YV9v~;z~ls^7!(+p>J%6>nK_ob zvN$L(fS3a2%n}L=juKgGofO)fSX!J~8X6h|1Q;jZXHpSiSnkTp$j!j5zzEa>G|nJP zg<-Q4a|{ck>Ev>DZA0@E12Y5jq{Kwi|46eM4+zi}6 z!ws@j7!)`*^E1b=Fq%xxVb?ZHG*3>nurM=DGB!(1wlp^~NwhFEOHMVkG_g!eGBip~ VHb_cKGBZ!pP01`OsbpYa007ikC$azl diff --git a/soroban-test-wasms/wasm-workspace/opt/next/example_updateable_contract.wasm b/soroban-test-wasms/wasm-workspace/opt/next/example_updateable_contract.wasm index 4d71b34eac2cb6a46ef5577a7651ed7d6c361e9b..7ff2ce6c74d90fdbaf7d9a81b59c66faa38a0294 100644 GIT binary patch delta 313 zcmXYtu}T9$5Qb-FFA#Eq2MVHC%q3}p2%F&DMM2DMWA6)W_Hq$5C}PssTn;pnB2753 zv`r=Y2$nvC58zwqo><=y1o{^}Pqp+J2A delta 384 zcmXwzF-yZ>5QgvW`#vbdAs~W^!=>%eB0|%qNh%1@MZ=PXntD5hD!>Xdz zq)A9V5qNc~t=zR9iY?Rb|0UgAIe4 zw5AdkQcdPgm3zSr1}jU4ej4Rz9EZKE7mo8m)D6aQ2S*5#9}{CeW8K8r(i%+W%nS;Q3JgvP9d=9{3QSHd4Gj$f3XF~%S*A=t z(KaWR76C>D#>vu*PZ>=oGcsu#nx`0;8JH&}CYmNE8C+Fnwndh8Kos# V7#LXql~^R{reqeCR5CCy004bo8~*?R delta 216 zcmbQra+hU7hwyAhrYVd}%=L_Q$_$PI*-FeR3==0v*Rz;2Gbk`BFgPi6*fDWHq?l9~ z6qpnk9XYa0nSc^)PAo0v%p3|#P7EN$Oq$Fbia^RyAPcCD#i^yCp+P`_L4Xk`$OsW+ zRsgExP+$g{pb6B$3>M{PW?g1k+J=ed$%z&g vX2wazW~s@R=0+xo7N%y&sfLy&mT5_bM#;$rNoh%D=4rYqnMEa)3=9kaU>7aJ 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 index f5250abd1ff49da2151330145eee3c913b20dee3..422a2237c446288acb2d056f2e626724a840a5f6 100644 GIT binary patch delta 63 zcmZ3&x`cIuI}@YnWDh27L-P~^GXwLa#6;8NWCJrZqa*`U12aPdQ&V$GGo!R*3j-qy Rpc0ED-IUCtl1c^!1^^T)5IFz< delta 63 zcmZ3&x`cIuI}@YHWDh27!$kAsL<5*_8fKc2J zG^JPcRga)dbt>xwww`Sq-8r>#tL1X3HRdlO+J~ZFLmzxX)-cXw5%}Ans|0Px4`gHU zi6|C_U}+Yr2uKmzXa@muP0vCZf#{L4y4)iK_k*|Y1I|>>VE|j`lPm=ufvz}O7nX*b z07$Z1z)eM1HvgbpWy(M9NB|#Hvhpw4*pU{77Uw*GgS}8%F{mNQyrp)P;txEZs&m9R vf2_3H>C_}99gjxwWMYz}Gd8hF+9r6%WLN4n$V>E+e@8UTI)nteea delta 433 zcmXw#y-Nc@5XEP9_w?WlTqQx9xiex!g?xFJbayLBz|zJ#ITP^GNgA6ZU=TqI;VLW3 zR9C2-g|&@;iQs=AI_pREhS_<)_t<;q)46?Ccgxn}!%L2bgfXSt5<+PcXciz869Qf> z+A1P2qa8}uOtG8hnl81P>-lUpb6pH&k=I2-$Z}C?+n!BW7SJxB0}jJ0X$i=7>H?=Y zahEojG4hdjNKl2JSp19S95%RVDfIML&lmVw$Vd;_FR1=upYvM3ff zI<`|^u~hy)O8qwGcRRb5yQ?aOZj58LVrSh~vFH?-p1sL6CF5xH^e&GP8`*)iQ|*OG ruh|Uh{dzD+T4AlxYwichpxSD*hW%4A#{p}Xzor* zlY%1Ab^L*=QXu#Nln5wNQt=lkDZ^VQZf168{N9_l^K0eu=IK%UboPxpQ?jRLv#0v_ zM)2wEhv}T)vM(tK?Z?mmW@2cg%19QLtAV0IMJycxv5*s{fr=KJx@7WcT&NzC?N#y8 z{Hsj6wAfr09qO<^8xXQ8rTJg^Z2CvbU@9i}$X-xwS}Adhfthg&EQxZI5NdI4bV{wp&SeixnnMnn3x$&2Ud?6Kf}=0{ z29>@{jjoNah12cTB!q415NA}nRib^o%L?|Wl0!VaX4R|(acD)|^hdr=VQmtH@i9GA zM%W2&4yc%2U(sKd%L^C{rxP@*Y~nvmak>QVX={~zuq5Z>m#&`_8uL)86SSY&;J4J C!F&e* delta 845 zcmYLHJ8KkC6h8Mc51mA(SaC5TXC{km5MlFhW>W}rN8$s)M=C2xc1^&$pb&z=Cc9u` zVUe&FDQ#pMEyO=y8PvkkP78lPI?MRo8PRF(Ip>~pzQ>*8Q(sT-?VLCmeWGYc=FR@- zx;{MVzuo_wMtdl>B_)A*{o(gWTxDU{&MC@O$W-DW7IK#frOApem|PgOpPQ z8gN6Kgz%?RVb(?|SgCOJlkE7ZzBtrQxsyD?>%zK9lWEvg8OmggUY$wjj58(mGpVaM zv}uq@tTI!U>xg|021Y$|O-(c*WnC4N%WltPvSEM(r&6qI%T^i;hNxa?xKjoS4)ss1o z;@Ce22aX6Hj$e7j%mqP}{OF9N`n$XHWMd0q`0G8o4qXGy!`0#*7kEu{{fD(i0%LY