diff --git a/soroban-meta/src/tests.rs b/soroban-meta/src/tests.rs index 15053f0c9..6cd77f537 100644 --- a/soroban-meta/src/tests.rs +++ b/soroban-meta/src/tests.rs @@ -12,7 +12,7 @@ fn test_from_wasm() { ScMetaEntry::ScMetaV0(v0) => v0.key.to_string(), }) .collect::>(); - assert_eq!(keys, ["rsver"]); + assert_eq!(keys, ["rsver", "rssdk_spec_shaking"]); } #[test] @@ -58,5 +58,5 @@ fn test_multiple_metadata_sections() { ScMetaEntry::ScMetaV0(v0) => v0.key.to_string(), }) .collect::>(); - assert_eq!(keys, ["rsver", "mykey"]); + assert_eq!(keys, ["rsver", "rssdk_spec_shaking", "mykey"]); } diff --git a/soroban-sdk/build.rs b/soroban-sdk/build.rs index 807801080..110d33351 100644 --- a/soroban-sdk/build.rs +++ b/soroban-sdk/build.rs @@ -20,17 +20,18 @@ pub fn main() { println!("cargo:rustc-env=RUSTC_VERSION={rustc_version}"); } - // When the experimental_spec_shaking_v2 feature is enabled, check for an env var from the - // build system (Stellar CLI) that indicates it supports spec optimization using markers. + // When the experimental_spec_shaking_v2 feature is enabled on a wasm target, check for an + // env var from the build system (Stellar CLI) that indicates it supports spec optimization + // using markers. if std::env::var("CARGO_FEATURE_EXPERIMENTAL_SPEC_SHAKING_V2").is_ok() { let env_name = "SOROBAN_SDK_BUILD_SYSTEM_SUPPORTS_SPEC_SHAKING_V2"; println!("cargo::rerun-if-env-changed={env_name}"); if std::env::var(env_name).is_err() && std::env::var("CARGO_CFG_TARGET_FAMILY").unwrap_or_default() == "wasm" { - panic!( + eprintln!( "\ -\n\nerror: soroban-sdk feature 'experimental_spec_shaking_v2' requires stellar-cli v25.2.0+\ +\nerror: soroban-sdk feature 'experimental_spec_shaking_v2' requires stellar-cli v25.2.0+\ \n\ \nThe soroban-sdk 'experimental_spec_shaking_v2' feature requires building\ \nwith `stellar contract build` from stellar-cli v25.2.0 or newer.\ @@ -39,8 +40,9 @@ pub fn main() { \n - Build with `stellar contract build` using stellar-cli v25.2.0+\ \n - Disable the feature by removing 'experimental_spec_shaking_v2' from\ \n the soroban-sdk import features list in Cargo.toml.\ -\n" +" ); + std::process::exit(1); } } diff --git a/soroban-sdk/src/_features.rs b/soroban-sdk/src/_features.rs index 45d97c87d..f009d518c 100644 --- a/soroban-sdk/src/_features.rs +++ b/soroban-sdk/src/_features.rs @@ -129,10 +129,11 @@ //! ### Build Requirements //! //! This feature requires building with `stellar contract build` from -//! `stellar-cli` v25.2.0 or newer. Building directly with `cargo build` will -//! produce a build error unless the +//! `stellar-cli` v25.2.0 or newer. Building a contract for wasm (e.g. with +//! `cargo build --target wasm32v1-none`) will produce a build error unless the //! `SOROBAN_SDK_BUILD_SYSTEM_SUPPORTS_SPEC_SHAKING_V2` environment variable is -//! set. +//! set. The check only fires for wasm targets; native builds (e.g. unit tests) +//! are unaffected. //! //! [`contracttype`]: crate::contracttype //! [`contracterror`]: crate::contracterror diff --git a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_wasm.1.json b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_wasm.1.json index 466dc0b6f..d5ea589bd 100644 --- a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_wasm.1.json +++ b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_wasm.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "082ef6678547237e331161a8487a2eb11aa037114fde60f36dae3455ad72b4d3" + "wasm": "d31850fea406e46577bb137d5fbe2e78a574caf8b868eec8eac690449b06e9ec" }, "constructor_args": [] } @@ -70,7 +70,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "082ef6678547237e331161a8487a2eb11aa037114fde60f36dae3455ad72b4d3" + "wasm": "d31850fea406e46577bb137d5fbe2e78a574caf8b868eec8eac690449b06e9ec" }, "storage": null } @@ -91,7 +91,7 @@ "ext": "v0", "cost_inputs": { "ext": "v0", - "n_instructions": 801, + "n_instructions": 831, "n_functions": 8, "n_globals": 4, "n_table_entries": 0, @@ -100,12 +100,12 @@ "n_elem_segments": 0, "n_imports": 7, "n_exports": 5, - "n_data_segment_bytes": 76 + "n_data_segment_bytes": 132 } } }, - "hash": "082ef6678547237e331161a8487a2eb11aa037114fde60f36dae3455ad72b4d3", - "code": "0061736d01000000012e0860017e017e60037e7e7e017e60047e7e7e7e017e60027e7e017e60027f7e0060027f7f0060027f7f017f600000022b070176013300000162016d0001016d01610002017601680001016901320000017601310003016901310000030908040506040503070705030100110621047f01418080c0000b7f0041cc80c0000b7f0041cc80c0000b7f0041d080c0000b072f05066d656d6f7279020003616464000c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ad90d08d30604017f017e027f017e23808080800041c0006b220224808080800002400240200142ff018342cb00510d00200041043a00000c010b200110808080800021032002410036021020022001370308200220034220883e0214200241186a200241086a1088808080000240024002400240200229031822014202510d002001a74101710d00024020022903202201a741ff0171220441ca00460d002004410e470d010b02400240024002402001419080c08000ad4220864204844284808080c000108180808000422088a70e0400010203050b200228021020022802141089808080000d04410021050c050b2002280210200228021410898080800041014b0d03200241186a200241086a108880808000200229031822014202510d032001a74101710d0320022903202101410021040240034020044118460d01200241186a20046a4202370300200441086a21040c000b0b200142ff018342cc00520d03200141b480c08000ad422086420484200241186aad4220864204844284808080301082808080001a200241306a2002290318108a8080800020022802300d0320022903382103200241306a2002290320108a8080800020022802300d032002290328220642ff018342cb00520d0320022903382101410121050c040b2002280210200228021410898080800041014b0d02200241186a200241086a108880808000200229031822014202510d022001a74101710d022002290320220142ff01834204520d02410a410f41092001422088a72204410f461b2004410a461b22044109460d02410221050c040b2002280210200228021410898080800041014b0d01200241186a200241086a108880808000200229031822014202510d012001a74101710d012002290320220142ff018342cb00520d01410021040240034020044110460d01200241306a20046a4202370300200441086a21040c000b0b2001200241306aad4220864204844284808080201083808080001a200241186a2002290330108a8080800020022802184101460d012002290338220142ff018342cb00520d0120022903202103410321050c020b200041043a00000c030b200041043a00000c020b0b200020063703182000200137031020002003370308200020043a0001200020053a00000b200241c0006a2480808080000b4a02017e017f42022102024020012802082203200128020c4f0d00200020012903002003ad4220864204841085808080003703082001200341016a360208420021020b200020023703000b1900024020012000490d00200120006b0f0b108d80808000000b5d02017f017e024002402001a741ff0171220241c100460d00024020024107460d00420121034283908080800121010c020b20014208872101420021030c010b42002103200110848080800021010b20002003370300200020013703080b7803017f017e017f23808080800041106b220224808080800042022103024020012802082204200128020c4f0d00200220012903002004ad422086420484108580808000108a8080800020022903002103200020022903083703082001200441016a3602080b20002003370300200241106a2480808080000bb70404027f027e017f057e23808080800041306b22022480808080002002200010878080800002400240024020022d000022034104460d002002290310210020022903082104200231000121052002200110878080800020022d000022064104460d002002290310210720022903082108200231000121094200210a4200210b024002400240024020030e0405020100050b200010808080800021012002410036022820022000370320200220014220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0620022903082201420053200020017c2201200053470d06200121000c000b0b2005210b0c030b2000420053200420007c220b20045373450d020c030b2000420053200420007c220b20045373450d010c020b000b0240024002400240024020060e0404020100040b200710808080800021002002410036022820022007370320200220004220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0520022903082201420053200020017c2201200053470d05200121000c000b0b2009210a0c020b2007420053200820077c220a200853730d020c010b2000420053200820007c220a200853730d010b200a420053200b200a7c2200200b53730d000240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010868080800021000b200241306a24808080800020000f0b108d80808000000b0900108e80808000000b0300000b0b550100418080c0000b4c556474415564744255647443556474440000100004000000040010000400000008001000040000000c001000040000006162630030001000010000003100100001000000320010000100000000cf030e636f6e74726163747370656376300000000000000000000000036164640000000002000000000000000161000000000007d000000007556474456e756d00000000000000000162000000000007d000000007556474456e756d00000000010000000700000002000000000000000000000007556474456e756d0000000004000000000000000000000004556474410000000100000000000000045564744200000001000007d0000000095564745374727563740000000000000100000000000000045564744300000001000007d000000008556474456e756d320000000100000000000000045564744400000001000007d0000000085564745475706c6500000003000000000000000000000008556474456e756d32000000020000000000000001410000000000000a0000000000000001420000000000000f000000010000000000000000000000085564745475706c650000000200000000000000013000000000000007000000000000000131000000000003ea0000000700000001000000000000000000000009556474537472756374000000000000030000000000000001610000000000000700000000000000016200000000000007000000000000000163000000000003ea00000007001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "d31850fea406e46577bb137d5fbe2e78a574caf8b868eec8eac690449b06e9ec", + "code": "0061736d01000000012e0860017e017e60037e7e7e017e60047e7e7e7e017e60027e7e017e60027f7f0060027f7f017f60027f7e00600000022b070176013300000162016d0001016d01610002017601680001016901320000017601310003016901310000030908040405060403070705030100110621047f01418080c0000b7f00418481c0000b7f00418481c0000b7f00419081c0000b072f05066d656d6f7279020003616464000c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030aa50e08800704017f027e017f017e23808080800041c0006b220224808080800041002d00aa80c080001a41002d008e80c080001a41002d009c80c080001a41002d008080c080001a024002402001290300220342ff018342cb00510d00200041043a00000c010b200310808080800021042002410036021020022003370308200220044220883e0214200241186a200241086a1088808080000240024002400240200229031822034202510d002003a74101710d00024020022903202203a741ff0171220141ca00460d002001410e470d010b0240024002400240200341c880c08000ad4220864204844284808080c000108180808000422088a70e0400010203050b200228021020022802141089808080000d04410021050c050b2002280210200228021410898080800041014b0d03200241186a200241086a108880808000200229031822034202510d032003a74101710d0320022903202103410021010240034020014118460d01200241186a20016a4202370300200141086a21010c000b0b200342ff018342cc00520d03200341ec80c08000ad422086420484200241186aad4220864204844284808080301082808080001a200241306a2002290318108a8080800020022802300d0320022903382104200241306a2002290320108a8080800020022802300d032002290328220642ff018342cb00520d0320022903382103410121050c040b2002280210200228021410898080800041014b0d02200241186a200241086a108880808000200229031822034202510d022003a74101710d022002290320220342ff01834204520d02410a410f41092003422088a72201410f461b2001410a461b22014109460d02410221050c040b2002280210200228021410898080800041014b0d01200241186a200241086a108880808000200229031822034202510d012003a74101710d012002290320220342ff018342cb00520d01410021010240034020014110460d01200241306a20016a4202370300200141086a21010c000b0b2003200241306aad4220864204844284808080201083808080001a200241186a2002290330108a8080800020022802184101460d012002290338220342ff018342cb00520d0120022903202104410321050c020b200041043a00000c030b200041043a00000c020b0b200020063703182000200337031020002004370308200020013a0001200020053a00000b200241c0006a2480808080000b4a02017e017f42022102024020012802082203200128020c4f0d00200020012903002003ad4220864204841085808080003703082001200341016a360208420021020b200020023703000b1900024020012000490d00200120006b0f0b108d80808000000b5d02017f017e024002402001a741ff0171220241c100460d00024020024107460d00420121034283908080800121010c020b20014208872101420021030c010b42002103200110848080800021010b20002003370300200020013703080b7803017f017e017f23808080800041106b220224808080800042022103024020012802082204200128020c4f0d00200220012903002004ad422086420484108580808000108a8080800020022903002103200020022903083703082001200441016a3602080b20002003370300200241106a2480808080000bd60404027f017e017f057e23808080800041c0006b22022480808080002002200137030820022000370300200241106a200210878080800002400240024020022d001022034104460d00200229032021012002290318210420023100112100200241106a200241086a10878080800020022d001022054104460d00200229032021062002290318210720023100112108420021094200210a024002400240024020030e0405020100050b200110808080800021002002410036023820022001370330200220004220883e023c420021010340200241106a200241306a108b80808000200229031022004202510d032000a74101710d0620022903182200420053200120007c2200200153470d06200021010c000b0b2000210a0c030b2001420053200420017c220a20045373450d020c030b2001420053200420017c220a20045373450d010c020b000b0240024002400240024020050e0404020100040b200610808080800021012002410036023820022006370330200220014220883e023c420021010340200241106a200241306a108b80808000200229031022004202510d032000a74101710d0520022903182200420053200120007c2200200153470d05200021010c000b0b200821090c020b2006420053200720067c2209200753730d020c010b2001420053200720017c2209200753730d010b2009420053200a20097c2201200a53730d000240024020014280808080808080c0007c42ffffffffffffffff00560d00200142088642078421010c010b200110868080800021010b200241c0006a24808080800020010f0b108d80808000000b0900108e80808000000b0300000b0b8e010100418080c0000b8401537045635631f3b0ab40690d48b4537045635631aff793ba9e4dde9a537045635631eb9f12269a76282a53704563563116276438ffc9b1f85564744155647442556474435564744438001000040000003c001000040000004000100004000000440010000400000061626300680010000100000069001000010000006a0010000100000000cf030e636f6e74726163747370656376300000000000000000000000036164640000000002000000000000000161000000000007d000000007556474456e756d00000000000000000162000000000007d000000007556474456e756d00000000010000000700000002000000000000000000000007556474456e756d0000000004000000000000000000000004556474410000000100000000000000045564744200000001000007d0000000095564745374727563740000000000000100000000000000045564744300000001000007d000000008556474456e756d320000000100000000000000045564744400000001000007d0000000085564745475706c6500000003000000000000000000000008556474456e756d32000000020000000000000001410000000000000a0000000000000001420000000000000f000000010000000000000000000000085564745475706c650000000200000000000000013000000000000007000000000000000131000000000003ea0000000700000001000000000000000000000009556474537472756374000000000000030000000000000001610000000000000700000000000000016200000000000007000000000000000163000000000003ea00000007001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/soroban-sdk/test_snapshots/tests/crypto_bls12_381/test_invoke_contract.1.json b/soroban-sdk/test_snapshots/tests/crypto_bls12_381/test_invoke_contract.1.json index bc911ae78..58e682a0b 100644 --- a/soroban-sdk/test_snapshots/tests/crypto_bls12_381/test_invoke_contract.1.json +++ b/soroban-sdk/test_snapshots/tests/crypto_bls12_381/test_invoke_contract.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "1d9f19d20f3d2932f1753ac486e0126db2ca1df4d58ed6ac0c26be6793dc018d" + "wasm": "4dac5a023abc307b72bce16cefe96e9809c5a46907858db23f00ae39cbbea07d" }, "constructor_args": [] } @@ -96,7 +96,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "1d9f19d20f3d2932f1753ac486e0126db2ca1df4d58ed6ac0c26be6793dc018d" + "wasm": "4dac5a023abc307b72bce16cefe96e9809c5a46907858db23f00ae39cbbea07d" }, "storage": null } @@ -117,7 +117,7 @@ "ext": "v0", "cost_inputs": { "ext": "v0", - "n_instructions": 1380, + "n_instructions": 1383, "n_functions": 18, "n_globals": 4, "n_table_entries": 0, @@ -126,12 +126,12 @@ "n_elem_segments": 0, "n_imports": 17, "n_exports": 8, - "n_data_segment_bytes": 132 + "n_data_segment_bytes": 148 } } }, - "hash": "1d9f19d20f3d2932f1753ac486e0126db2ca1df4d58ed6ac0c26be6793dc018d", - "code": "0061736d0100000001320960047e7e7e7e017e60017e017e60027e7e017e60037e7f7f0060017f0060027f7e0060017f017e60000060037f7f7f017f026711016d0161000001620138000101630138000101630134000101630165000101630161000101630136000201630163000201630167000201760133000101760131000201620131000001620133000201690161000101780130000201690172000201760167000203131201030405050505060207020207040808080805030100110621047f01418080c0000b7f0041b480c0000b7f00418481c0000b7f00419081c0000b075708066d656d6f727902000c64756d6d795f76657269667900110a66725f7665635f67657400190667315f6d756c001b0667325f6d756c001c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a891712fd0403027f047e017f23808080800041f0016b2201248080808000410021020240034020024128460d01200141086a20026a4202370300200241086a21020c000b0b0240200042ff018342cc00520d002000418c80c08000ad422086420484200141086aad4220864204844284808080d0001080808080001a2001290308220042ff018342c800520d0020001081808080004280808080708342808080808006520d0020014190016a4100413010a0808080001a200020014190016a4130109280808000200141306a20014190016a413010a2808080001a200141306a10938080800020014190016a20012903101094808080002001280290010d00200129039801210320014190016a410041e00010a0808080001a200320014190016a41e000109280808000200141306a20014190016a41e00010a2808080001a200141306a109380808000200141306a41306a10938080800020014190016a20012903181095808080002001280290010d00200129039801210420014190016a20012903201096808080002001280290010d00200129039801210520014190016a20012903281097808080002001280290014101460d00200129039801210620001082808080001083808080001a20031084808080001085808080001a200520041086808080002103200620041087808080002104420221004101210203402000210520024101712107410021022003210020070d000b200120053703900120014190016a1098808080002105420221004101210203402000210320024101712107410021022004210020070d000b2001200337039001200520014190016a1098808080001088808080002100200141f0016a2480808080002000420151ad0f0b000b1f00200042042001ad4220864204842002ad422086420484108b808080001a0b24000240200041d480c080004130109f80808000417f4a0d000f0b410e109e80808000000b4201017e420121020240200142ff018342c800520d002001108180808000428080808070834280808080800c520d0020002001370308420021020b200020023703000ba60102017f017e024002402001a741ff0171220241c600460d00420121032002410c470d010b41b480c08000ad42208642048442848080808004108c80808000108d8080800021030240024002400240200142ce0083420c520d00200342ff0183420c510d010b20012003108e80808000427f550d010c020b20014208882003420888540d010b20012003108f8080800021010b20002001370308420021030b200020033703000b4d01017f23808080800041106b22022480808080002002200110948080800042012101024020022802000d0020002002290308370308420021010b20002001370300200241106a2480808080000b4201017e420121020240200142ff018342c800520d0020011081808080004280808080708342808080808018520d0020002001370308420021020b200020023703000b17002000ad4220864204844284808080101090808080000b870101017f23808080800041106b2202248080808000024002400240200042ff018342cb00520d00200142ff01834204520d0020001089808080004220882001422088580d0120022000200142848080807083108a8080800010958080800020022802004101470d020b000b109a80808000000b20022903082100200241106a24808080800020000b0b00412b109e80808000000b6501017f23808080800041106b220224808080800020022000109680808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081086808080002100200241106a24808080800020000f0b000b6501017f23808080800041106b220224808080800020022000109780808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081087808080002100200241106a24808080800020000f0b000b0300000b0900109d80808000000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030baa0301057f02400240200241104f0d00200021030c010b024020002000410020006b41037122046a22054f0d002004417f6a21062000210302402004450d0020042107200021030340200320013a0000200341016a21032007417f6a22070d000b0b20064107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032005470d000b0b024020052005200220046b2202417c716a22034f0d00200141ff017141818284086c2107034020052007360200200541046a22052003490d000b0b200241037121020b02402003200320026a22074f0d002002417f6a2104024020024107712205450d000340200320013a0000200341016a21032005417f6a22050d000b0b20044107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032007470d000b0b20000bb907010c7f23808080800041106b210302400240200241104f0d00200021040c010b024020002000410020006b41037122056a22064f0d002005417f6a2107200021042001210802402005450d002005210920002104200121080340200420082d00003a0000200841016a2108200441016a21042009417f6a22090d000b0b20074107490d000340200420082d00003a0000200441016a200841016a2d00003a0000200441026a200841026a2d00003a0000200441036a200841036a2d00003a0000200441046a200841046a2d00003a0000200441056a200841056a2d00003a0000200441066a200841066a2d00003a0000200441076a200841076a2d00003a0000200841086a2108200441086a22042006470d000b0b2006200220056b2209417c7122076a210402400240200120056a220841037122010d00200620044f0d0120082101034020062001280200360200200141046a2101200641046a22062004490d000c020b0b410021022003410036020c2003410c6a20017221050240410420016b220a410171450d00200520082d00003a0000410121020b0240200a410271450d00200520026a200820026a2f01003b01000b200820016b21022001410374210b200328020c210502400240200641046a2004490d002006210c0c010b4100200b6b411871210d034020062005200b76200241046a22022802002205200d7472360200200641086a210a200641046a220c2106200a2004490d000b0b41002106200341003a0008200341003a00060240024020014101470d00200341086a210d410021014100210a4100210e0c010b200241056a2d0000210a2003200241046a2d000022013a0008200a410874210a4102210e200341066a210d0b02402008410171450d00200d200241046a200e6a2d00003a000020032d0006411074210620032d000821010b200c200a200672200141ff0171724100200b6b411871742005200b76723602000b20094103712102200820076a21010b02402004200420026a22064f0d002002417f6a2109024020024107712208450d000340200420012d00003a0000200141016a2101200441016a21042008417f6a22080d000b0b20094107490d000340200420012d00003a0000200441016a200141016a2d00003a0000200441026a200141026a2d00003a0000200441036a200141036a2d00003a0000200441046a200141046a2d00003a0000200441056a200141056a2d00003a0000200441066a200141066a2d00003a0000200441076a200141076a2d00003a0000200141086a2101200441086a22042006470d000b0b20000b0e0020002001200210a1808080000b0b8e010100418080c0000b84016670667032667267316732000000100002000000020010000300000005001000020000000700100002000000090010000200000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000011a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab00b7030e636f6e747261637473706563763000000000000000000000000667315f6d756c000000000002000000000000000170000000000003ee000000600000000000000001730000000000000c00000001000003ee0000006000000000000000000000000667325f6d756c000000000002000000000000000170000000000003ee000000c00000000000000001730000000000000c00000001000003ee000000c00000000100000000000000000000000a44756d6d7950726f6f66000000000005000000000000000266700000000003ee00000030000000000000000366703200000003ee000000600000000000000002667200000000000c000000000000000267310000000003ee00000060000000000000000267320000000003ee000000c000000000000000000000000a66725f7665635f676574000000000002000000000000000676616c7565730000000003ea0000000c0000000000000005696e64657800000000000004000000010000000c00000000000000000000000c64756d6d795f76657269667900000001000000000000000570726f6f66000000000007d00000000a44756d6d7950726f6f6600000000000100000001001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "4dac5a023abc307b72bce16cefe96e9809c5a46907858db23f00ae39cbbea07d", + "code": "0061736d0100000001320960047e7e7e7e017e60017e017e60027e7e017e60037e7f7f0060017f0060027f7e0060017f017e60000060037f7f7f017f026711016d0161000001620138000101630138000101630134000101630165000101630161000101630136000201630163000201630167000201760133000101760131000201620131000001620133000201690161000101780130000201690172000201760167000203131201030405050505060207020207040808080805030100110621047f01418080c0000b7f0041c480c0000b7f00419481c0000b7f0041a081c0000b075708066d656d6f727902000c64756d6d795f76657269667900110a66725f7665635f67657400190667315f6d756c001b0667325f6d756c001c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a931712870503027f047e017f23808080800041f0016b22012480808080004100210241002d008080c080001a0240034020024128460d01200141086a20026a4202370300200241086a21020c000b0b0240200042ff018342cc00520d002000419c80c08000ad422086420484200141086aad4220864204844284808080d0001080808080001a2001290308220042ff018342c800520d0020001081808080004280808080708342808080808006520d0020014190016a4100413010a0808080001a200020014190016a4130109280808000200141306a20014190016a413010a2808080001a200141306a10938080800020014190016a20012903101094808080002001280290010d00200129039801210320014190016a410041e00010a0808080001a200320014190016a41e000109280808000200141306a20014190016a41e00010a2808080001a200141306a109380808000200141306a41306a10938080800020014190016a20012903181095808080002001280290010d00200129039801210420014190016a20012903201096808080002001280290010d00200129039801210520014190016a20012903281097808080002001280290014101460d00200129039801210620001082808080001083808080001a20031084808080001085808080001a200520041086808080002103200620041087808080002104420221004101210203402000210520024101712107410021022003210020070d000b200120053703900120014190016a1098808080002105420221004101210203402000210320024101712107410021022004210020070d000b2001200337039001200520014190016a1098808080001088808080002100200141f0016a2480808080002000420151ad0f0b000b1f00200042042001ad4220864204842002ad422086420484108b808080001a0b24000240200041e480c080004130109f80808000417f4a0d000f0b410e109e80808000000b4201017e420121020240200142ff018342c800520d002001108180808000428080808070834280808080800c520d0020002001370308420021020b200020023703000ba60102017f017e024002402001a741ff0171220241c600460d00420121032002410c470d010b41c480c08000ad42208642048442848080808004108c80808000108d8080800021030240024002400240200142ce0083420c520d00200342ff0183420c510d010b20012003108e80808000427f550d010c020b20014208882003420888540d010b20012003108f8080800021010b20002001370308420021030b200020033703000b4d01017f23808080800041106b22022480808080002002200110948080800042012101024020022802000d0020002002290308370308420021010b20002001370300200241106a2480808080000b4201017e420121020240200142ff018342c800520d0020011081808080004280808080708342808080808018520d0020002001370308420021020b200020023703000b17002000ad4220864204844284808080101090808080000b870101017f23808080800041106b2202248080808000024002400240200042ff018342cb00520d00200142ff01834204520d0020001089808080004220882001422088580d0120022000200142848080807083108a8080800010958080800020022802004101470d020b000b109a80808000000b20022903082100200241106a24808080800020000b0b00412b109e80808000000b6501017f23808080800041106b220224808080800020022000109680808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081086808080002100200241106a24808080800020000f0b000b6501017f23808080800041106b220224808080800020022000109780808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081087808080002100200241106a24808080800020000f0b000b0300000b0900109d80808000000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030baa0301057f02400240200241104f0d00200021030c010b024020002000410020006b41037122046a22054f0d002004417f6a21062000210302402004450d0020042107200021030340200320013a0000200341016a21032007417f6a22070d000b0b20064107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032005470d000b0b024020052005200220046b2202417c716a22034f0d00200141ff017141818284086c2107034020052007360200200541046a22052003490d000b0b200241037121020b02402003200320026a22074f0d002002417f6a2104024020024107712205450d000340200320013a0000200341016a21032005417f6a22050d000b0b20044107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032007470d000b0b20000bb907010c7f23808080800041106b210302400240200241104f0d00200021040c010b024020002000410020006b41037122056a22064f0d002005417f6a2107200021042001210802402005450d002005210920002104200121080340200420082d00003a0000200841016a2108200441016a21042009417f6a22090d000b0b20074107490d000340200420082d00003a0000200441016a200841016a2d00003a0000200441026a200841026a2d00003a0000200441036a200841036a2d00003a0000200441046a200841046a2d00003a0000200441056a200841056a2d00003a0000200441066a200841066a2d00003a0000200441076a200841076a2d00003a0000200841086a2108200441086a22042006470d000b0b2006200220056b2209417c7122076a210402400240200120056a220841037122010d00200620044f0d0120082101034020062001280200360200200141046a2101200641046a22062004490d000c020b0b410021022003410036020c2003410c6a20017221050240410420016b220a410171450d00200520082d00003a0000410121020b0240200a410271450d00200520026a200820026a2f01003b01000b200820016b21022001410374210b200328020c210502400240200641046a2004490d002006210c0c010b4100200b6b411871210d034020062005200b76200241046a22022802002205200d7472360200200641086a210a200641046a220c2106200a2004490d000b0b41002106200341003a0008200341003a00060240024020014101470d00200341086a210d410021014100210a4100210e0c010b200241056a2d0000210a2003200241046a2d000022013a0008200a410874210a4102210e200341066a210d0b02402008410171450d00200d200241046a200e6a2d00003a000020032d0006411074210620032d000821010b200c200a200672200141ff0171724100200b6b411871742005200b76723602000b20094103712102200820076a21010b02402004200420026a22064f0d002002417f6a2109024020024107712208450d000340200420012d00003a0000200141016a2101200441016a21042008417f6a22080d000b0b20094107490d000340200420012d00003a0000200441016a200141016a2d00003a0000200441026a200141026a2d00003a0000200441036a200141036a2d00003a0000200441046a200141046a2d00003a0000200441056a200141056a2d00003a0000200441066a200141066a2d00003a0000200441076a200141076a2d00003a0000200141086a2101200441086a22042006470d000b0b20000b0e0020002001200210a1808080000b0b9e010100418080c0000b940153704563563185570041dc7eb72266706670326672673167320000000e00100002000000100010000300000013001000020000001500100002000000170010000200000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000011a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab00b7030e636f6e747261637473706563763000000000000000000000000667315f6d756c000000000002000000000000000170000000000003ee000000600000000000000001730000000000000c00000001000003ee0000006000000000000000000000000667325f6d756c000000000002000000000000000170000000000003ee000000c00000000000000001730000000000000c00000001000003ee000000c00000000100000000000000000000000a44756d6d7950726f6f66000000000005000000000000000266700000000003ee00000030000000000000000366703200000003ee000000600000000000000002667200000000000c000000000000000267310000000003ee00000060000000000000000267320000000003ee000000c000000000000000000000000a66725f7665635f676574000000000002000000000000000676616c7565730000000003ea0000000c0000000000000005696e64657800000000000004000000010000000c00000000000000000000000c64756d6d795f76657269667900000001000000000000000570726f6f66000000000007d00000000a44756d6d7950726f6f6600000000000100000001001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/tests-expanded/test_account_tests.rs b/tests-expanded/test_account_tests.rs index a8c5648f7..e1a15ed18 100644 --- a/tests-expanded/test_account_tests.rs +++ b/tests-expanded/test_account_tests.rs @@ -56,6 +56,11 @@ impl Error { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" } } +impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} +} impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] diff --git a/tests-expanded/test_account_wasm32v1-none.rs b/tests-expanded/test_account_wasm32v1-none.rs index 1e33d378a..3b04cdcce 100644 --- a/tests-expanded/test_account_wasm32v1-none.rs +++ b/tests-expanded/test_account_wasm32v1-none.rs @@ -57,6 +57,16 @@ impl Error { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04Fail\0\0\0\x01" } } +impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xa8\x1f\xc4#\x9c\x8f\xeb\x88"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] diff --git a/tests-expanded/test_associated_types_contracttrait_tests.rs b/tests-expanded/test_associated_types_contracttrait_tests.rs index 86e5943c4..f147bb0b5 100644 --- a/tests-expanded/test_associated_types_contracttrait_tests.rs +++ b/tests-expanded/test_associated_types_contracttrait_tests.rs @@ -795,7 +795,7 @@ mod test { mod test_with_wasm { use soroban_sdk::{Env, String}; mod contract { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x11\x03`\x02~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~\x02\x07\x01\x01b\x01i\x00\x00\x03\x04\x03\x01\x02\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x8f\x80\xc0\x00\x0b\x7f\x00A\x8f\x80\xc0\x00\x0b\x7f\x00A\x90\x80\xc0\x00\x0b\x078\x06\x06memory\x02\x00\x04exec\x00\x01\x05exec2\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n>\x03\x10\x00A\x80\x80\xc0\x80\x00A\x07\x10\x82\x80\x80\x80\x00\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x80\x80\x80\x80\x00\x0b\x10\x00A\x87\x80\xc0\x80\x00A\x08\x10\x82\x80\x80\x80\x00\x0b\x0b\x18\x01\x00A\x80\x80\xc0\x00\x0b\x0fdefaultdefault2\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04exec\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05exec2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00"; + pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x11\x03`\x02~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~\x02\x07\x01\x01b\x01i\x00\x00\x03\x04\x03\x01\x02\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x8f\x80\xc0\x00\x0b\x7f\x00A\x8f\x80\xc0\x00\x0b\x7f\x00A\x90\x80\xc0\x00\x0b\x078\x06\x06memory\x02\x00\x04exec\x00\x01\x05exec2\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n>\x03\x10\x00A\x80\x80\xc0\x80\x00A\x07\x10\x82\x80\x80\x80\x00\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x80\x80\x80\x80\x00\x0b\x10\x00A\x87\x80\xc0\x80\x00A\x08\x10\x82\x80\x80\x80\x00\x0b\x0b\x18\x01\x00A\x80\x80\xc0\x00\x0b\x0fdefaultdefault2\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04exec\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05exec2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x10\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; pub trait Contract { fn exec(env: soroban_sdk::Env) -> soroban_sdk::String; fn exec2(env: soroban_sdk::Env) -> soroban_sdk::String; diff --git a/tests-expanded/test_auth_tests.rs b/tests-expanded/test_auth_tests.rs index 758948468..075ea8b10 100644 --- a/tests-expanded/test_auth_tests.rs +++ b/tests-expanded/test_auth_tests.rs @@ -1124,6 +1124,11 @@ mod test_a { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07Decline\0\0\0\0\x01" } } + impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} + } impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] @@ -2601,6 +2606,11 @@ mod test_b { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07Decline\0\0\0\0\x01" } } + impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} + } impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] diff --git a/tests-expanded/test_bls_tests.rs b/tests-expanded/test_bls_tests.rs index cd51b804d..b1efa2440 100644 --- a/tests-expanded/test_bls_tests.rs +++ b/tests-expanded/test_bls_tests.rs @@ -22,6 +22,17 @@ impl DummyProof { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nDummyProof\0\0\0\0\0\x05\0\0\0\0\0\0\0\x02fp\0\0\0\0\x03\xee\0\0\00\0\0\0\0\0\0\0\x03fp2\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02fr\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xee\0\0\0\xc0" } } +impl soroban_sdk::SpecShakingMarker for DummyProof { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for DummyProof { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_bls_wasm32v1-none.rs b/tests-expanded/test_bls_wasm32v1-none.rs index 5c55c7f7d..1bc77fcf7 100644 --- a/tests-expanded/test_bls_wasm32v1-none.rs +++ b/tests-expanded/test_bls_wasm32v1-none.rs @@ -23,6 +23,21 @@ impl DummyProof { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\nDummyProof\0\0\0\0\0\x05\0\0\0\0\0\0\0\x02fp\0\0\0\0\x03\xee\0\0\00\0\0\0\0\0\0\0\x03fp2\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02fr\0\0\0\0\0\x0c\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xee\0\0\0`\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xee\0\0\0\xc0" } } +impl soroban_sdk::SpecShakingMarker for DummyProof { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\x85W\0A\xdc~\xb7\""; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for DummyProof { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_bn254_tests.rs b/tests-expanded/test_bn254_tests.rs index e8ca8c86c..825322cb9 100644 --- a/tests-expanded/test_bn254_tests.rs +++ b/tests-expanded/test_bn254_tests.rs @@ -19,6 +19,14 @@ impl MockProof { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tMockProof\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0\x80" } } +impl soroban_sdk::SpecShakingMarker for MockProof { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for MockProof { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_bn254_wasm32v1-none.rs b/tests-expanded/test_bn254_wasm32v1-none.rs index 77ecd7eb3..ebd06e40e 100644 --- a/tests-expanded/test_bn254_wasm32v1-none.rs +++ b/tests-expanded/test_bn254_wasm32v1-none.rs @@ -20,6 +20,18 @@ impl MockProof { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tMockProof\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x02g1\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0@\0\0\0\0\0\0\0\x02g2\0\0\0\0\x03\xea\0\0\x03\xee\0\0\0\x80" } } +impl soroban_sdk::SpecShakingMarker for MockProof { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1:\x81\xa6\xa0\x9e\xe7\xa7\x1f"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for MockProof { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_constructor_tests.rs b/tests-expanded/test_constructor_tests.rs index b28498638..2ddc1d91a 100644 --- a/tests-expanded/test_constructor_tests.rs +++ b/tests-expanded/test_constructor_tests.rs @@ -147,6 +147,13 @@ impl DataKey { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07DataKey\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\nPersistent\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x04Temp\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x08Instance\0\0\0\x01\0\0\0\x04" } } +impl soroban_sdk::SpecShakingMarker for DataKey { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for DataKey { type Error = soroban_sdk::ConversionError; #[inline(always)] diff --git a/tests-expanded/test_constructor_wasm32v1-none.rs b/tests-expanded/test_constructor_wasm32v1-none.rs index d5b3ff92e..871059033 100644 --- a/tests-expanded/test_constructor_wasm32v1-none.rs +++ b/tests-expanded/test_constructor_wasm32v1-none.rs @@ -36,6 +36,17 @@ impl DataKey { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07DataKey\0\0\0\0\x03\0\0\0\x01\0\0\0\0\0\0\0\nPersistent\0\0\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x04Temp\0\0\0\x01\0\0\0\x04\0\0\0\x01\0\0\0\0\0\0\0\x08Instance\0\0\0\x01\0\0\0\x04" } } +impl soroban_sdk::SpecShakingMarker for DataKey { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\x14\x94}~\xec\x15\x94\x84"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for DataKey { type Error = soroban_sdk::ConversionError; #[inline(always)] diff --git a/tests-expanded/test_contracttrait_trait_tests.rs b/tests-expanded/test_contracttrait_trait_tests.rs index 26964756b..9b6611d36 100644 --- a/tests-expanded/test_contracttrait_trait_tests.rs +++ b/tests-expanded/test_contracttrait_trait_tests.rs @@ -55,6 +55,14 @@ impl MyStruct { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08MyStruct\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for MyStruct { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for MyStruct { type Error = soroban_sdk::ConversionError; fn try_from_val( @@ -465,6 +473,11 @@ impl MyEnumUnit { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nMyEnumUnit\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x02" } } +impl soroban_sdk::SpecShakingMarker for MyEnumUnit { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} +} impl soroban_sdk::TryFromVal for MyEnumUnit { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -810,6 +823,14 @@ impl MyEnumVariants { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04VarA\0\0\0\x01\0\0\0\0\0\0\0\x04VarB\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\0\0\0\0\0\x04VarC\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" } } +impl soroban_sdk::SpecShakingMarker for MyEnumVariants { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for MyEnumVariants { type Error = soroban_sdk::ConversionError; #[inline(always)] diff --git a/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs b/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs index 18986d487..fda68c440 100644 --- a/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs +++ b/tests-expanded/test_contracttrait_trait_wasm32v1-none.rs @@ -56,6 +56,18 @@ impl MyStruct { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08MyStruct\0\0\0\x02\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for MyStruct { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\x08\xd4\xa7b\xae1|\xdd"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for MyStruct { type Error = soroban_sdk::ConversionError; fn try_from_val( @@ -157,6 +169,16 @@ impl MyEnumUnit { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\nMyEnumUnit\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x02" } } +impl soroban_sdk::SpecShakingMarker for MyEnumUnit { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + { + static MARKER: [u8; 14usize] = *b"SpEcV12E\x1b4\x1c\x83\xab\xeb"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for MyEnumUnit { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -268,6 +290,18 @@ impl MyEnumVariants { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x0eMyEnumVariants\0\0\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04VarA\0\0\0\x01\0\0\0\0\0\0\0\x04VarB\0\0\0\x01\0\0\x07\xd0\0\0\0\x08MyStruct\0\0\0\x01\0\0\0\0\0\0\0\x04VarC\0\0\0\x01\0\0\x07\xd0\0\0\0\nMyEnumUnit\0\0" } } +impl soroban_sdk::SpecShakingMarker for MyEnumVariants { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xceHo\xd4mpUm"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for MyEnumVariants { type Error = soroban_sdk::ConversionError; #[inline(always)] diff --git a/tests-expanded/test_errors_tests.rs b/tests-expanded/test_errors_tests.rs index 6cd9ae243..500770f1c 100644 --- a/tests-expanded/test_errors_tests.rs +++ b/tests-expanded/test_errors_tests.rs @@ -163,6 +163,11 @@ impl Flag { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04Flag\0\0\0\x05\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01C\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01D\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01E\0\0\0\0\0\0\x04" } } +impl soroban_sdk::SpecShakingMarker for Flag { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} +} impl soroban_sdk::TryFromVal for Flag { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -505,6 +510,11 @@ impl Error { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07AnError\0\0\0\0\x01" } } +impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} +} impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] diff --git a/tests-expanded/test_errors_wasm32v1-none.rs b/tests-expanded/test_errors_wasm32v1-none.rs index c6b244de5..3f73508cc 100644 --- a/tests-expanded/test_errors_wasm32v1-none.rs +++ b/tests-expanded/test_errors_wasm32v1-none.rs @@ -52,6 +52,16 @@ impl Flag { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x04Flag\0\0\0\x05\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x01C\0\0\0\0\0\0\x02\0\0\0\0\0\0\0\x01D\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01E\0\0\0\0\0\0\x04" } } +impl soroban_sdk::SpecShakingMarker for Flag { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + { + static MARKER: [u8; 14usize] = *b"SpEcV1g\x19\x8d\xc6\x8aP\xeb\xb7"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for Flag { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -130,6 +140,16 @@ impl Error { *b"\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x05Error\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x07AnError\0\0\0\0\x01" } } +impl soroban_sdk::SpecShakingMarker for Error { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xbc\x04\x04\xea\xa4\x9e6("; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl TryFrom for Error { type Error = soroban_sdk::Error; #[inline(always)] diff --git a/tests-expanded/test_events_ref_tests.rs b/tests-expanded/test_events_ref_tests.rs index aaeaf7f99..720ec4006 100644 --- a/tests-expanded/test_events_ref_tests.rs +++ b/tests-expanded/test_events_ref_tests.rs @@ -148,6 +148,16 @@ impl<'a> Transfer<'a> { *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" } } +impl<'a> soroban_sdk::SpecShakingMarker for Transfer<'a> { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + <&'a Address as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + <&'a Address as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + <&'a i128 as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + } +} impl<'a> soroban_sdk::Event for Transfer<'a> { fn topics(&self, env: &soroban_sdk::Env) -> soroban_sdk::Vec { use soroban_sdk::IntoVal; @@ -180,6 +190,7 @@ impl<'a> soroban_sdk::Event for Transfer<'a> { } impl<'a> Transfer<'a> { pub fn publish(&self, env: &soroban_sdk::Env) { + ::spec_shaking_marker(); <_ as soroban_sdk::Event>::publish(self, env); } } diff --git a/tests-expanded/test_events_ref_wasm32v1-none.rs b/tests-expanded/test_events_ref_wasm32v1-none.rs index 5aca10c7d..97dafcbd9 100644 --- a/tests-expanded/test_events_ref_wasm32v1-none.rs +++ b/tests-expanded/test_events_ref_wasm32v1-none.rs @@ -37,6 +37,20 @@ impl<'a> Transfer<'a> { *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" } } +impl<'a> soroban_sdk::SpecShakingMarker for Transfer<'a> { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + <&'a Address as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + <&'a Address as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + <&'a i128 as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1;\xc1i\xa0H>\x8d\xf1"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl<'a> soroban_sdk::Event for Transfer<'a> { fn topics(&self, env: &soroban_sdk::Env) -> soroban_sdk::Vec { use soroban_sdk::IntoVal; @@ -69,6 +83,7 @@ impl<'a> soroban_sdk::Event for Transfer<'a> { } impl<'a> Transfer<'a> { pub fn publish(&self, env: &soroban_sdk::Env) { + ::spec_shaking_marker(); <_ as soroban_sdk::Event>::publish(self, env); } } diff --git a/tests-expanded/test_events_tests.rs b/tests-expanded/test_events_tests.rs index 3168c4e71..f95a79436 100644 --- a/tests-expanded/test_events_tests.rs +++ b/tests-expanded/test_events_tests.rs @@ -148,6 +148,16 @@ impl Transfer { *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" } } +impl soroban_sdk::SpecShakingMarker for Transfer { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { +
::spec_shaking_marker(); +
::spec_shaking_marker(); + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + } +} impl soroban_sdk::Event for Transfer { fn topics(&self, env: &soroban_sdk::Env) -> soroban_sdk::Vec { use soroban_sdk::IntoVal; @@ -180,6 +190,7 @@ impl soroban_sdk::Event for Transfer { } impl Transfer { pub fn publish(&self, env: &soroban_sdk::Env) { + ::spec_shaking_marker(); <_ as soroban_sdk::Event>::publish(self, env); } } diff --git a/tests-expanded/test_events_wasm32v1-none.rs b/tests-expanded/test_events_wasm32v1-none.rs index 6adffa82f..c7693da03 100644 --- a/tests-expanded/test_events_wasm32v1-none.rs +++ b/tests-expanded/test_events_wasm32v1-none.rs @@ -37,6 +37,20 @@ impl Transfer { *b"\0\0\0\x05\0\0\0\0\0\0\0\0\0\0\0\x08Transfer\0\0\0\x01\0\0\0\x08transfer\0\0\0\x04\0\0\0\0\0\0\0\x04from\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x02to\0\0\0\0\0\x13\0\0\0\x01\0\0\0\0\0\0\0\x06amount\0\0\0\0\0\x0b\0\0\0\0\0\0\0\0\0\0\0\x0bto_muxed_id\0\0\0\x03\xe8\0\0\0\x06\0\0\0\0\0\0\0\x02" } } +impl soroban_sdk::SpecShakingMarker for Transfer { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { +
::spec_shaking_marker(); +
::spec_shaking_marker(); + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1;\xc1i\xa0H>\x8d\xf1"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::Event for Transfer { fn topics(&self, env: &soroban_sdk::Env) -> soroban_sdk::Vec { use soroban_sdk::IntoVal; @@ -69,6 +83,7 @@ impl soroban_sdk::Event for Transfer { } impl Transfer { pub fn publish(&self, env: &soroban_sdk::Env) { + ::spec_shaking_marker(); <_ as soroban_sdk::Event>::publish(self, env); } } diff --git a/tests-expanded/test_import_contract_tests.rs b/tests-expanded/test_import_contract_tests.rs index 443972700..cdc1ff099 100644 --- a/tests-expanded/test_import_contract_tests.rs +++ b/tests-expanded/test_import_contract_tests.rs @@ -6,7 +6,7 @@ extern crate core; use core::prelude::rust_2021::*; use soroban_sdk::{contract, contractimpl, Address, Env}; mod addcontract { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x14\x04`\x01~\x01~`\x02\x7f~\x00`\x02~~\x01~`\x00\x00\x02\r\x02\x01i\x010\x00\x00\x01i\x01_\x00\x00\x03\x05\x04\x01\x02\x03\x03\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07/\x05\x06memory\x02\x00\x03add\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\x8b\x02\x04]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc0\x00F\r\x00\x02@ \x02A\x06F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x88!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x80\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0b\x9c\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00\x10\x82\x80\x80\x80\x00\x02@\x02@ \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08!\x00 \x02 \x01\x10\x82\x80\x80\x80\x00 \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08\"\x01 \x00|\"\x00 \x01T\r\x01\x02@\x02@ \x00B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x06\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\x10\x84\x80\x80\x80\x00\x00\x0b\t\x00\x10\x85\x80\x80\x80\x00\x00\x0b\x03\x00\x00\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03add\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x01b\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00"; + pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x14\x04`\x01~\x01~`\x02\x7f~\x00`\x02~~\x01~`\x00\x00\x02\r\x02\x01i\x010\x00\x00\x01i\x01_\x00\x00\x03\x05\x04\x01\x02\x03\x03\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07/\x05\x06memory\x02\x00\x03add\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\x8b\x02\x04]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc0\x00F\r\x00\x02@ \x02A\x06F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x88!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x80\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0b\x9c\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00\x10\x82\x80\x80\x80\x00\x02@\x02@ \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08!\x00 \x02 \x01\x10\x82\x80\x80\x80\x00 \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08\"\x01 \x00|\"\x00 \x01T\r\x01\x02@\x02@ \x00B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x06\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\x10\x84\x80\x80\x80\x00\x00\x0b\t\x00\x10\x85\x80\x80\x80\x00\x00\x0b\x03\x00\x00\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03add\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x01b\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; pub trait Contract { fn add(env: soroban_sdk::Env, a: u64, b: u64) -> u64; } diff --git a/tests-expanded/test_import_contract_wasm32v1-none.rs b/tests-expanded/test_import_contract_wasm32v1-none.rs index 1fc04b36f..7cf04ad08 100644 --- a/tests-expanded/test_import_contract_wasm32v1-none.rs +++ b/tests-expanded/test_import_contract_wasm32v1-none.rs @@ -6,7 +6,7 @@ extern crate core; use core::prelude::rust_2021::*; use soroban_sdk::{contract, contractimpl, Address, Env}; mod addcontract { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x14\x04`\x01~\x01~`\x02\x7f~\x00`\x02~~\x01~`\x00\x00\x02\r\x02\x01i\x010\x00\x00\x01i\x01_\x00\x00\x03\x05\x04\x01\x02\x03\x03\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07/\x05\x06memory\x02\x00\x03add\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\x8b\x02\x04]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc0\x00F\r\x00\x02@ \x02A\x06F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x88!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x80\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0b\x9c\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00\x10\x82\x80\x80\x80\x00\x02@\x02@ \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08!\x00 \x02 \x01\x10\x82\x80\x80\x80\x00 \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08\"\x01 \x00|\"\x00 \x01T\r\x01\x02@\x02@ \x00B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x06\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\x10\x84\x80\x80\x80\x00\x00\x0b\t\x00\x10\x85\x80\x80\x80\x00\x00\x0b\x03\x00\x00\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03add\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x01b\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00"; + pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x14\x04`\x01~\x01~`\x02\x7f~\x00`\x02~~\x01~`\x00\x00\x02\r\x02\x01i\x010\x00\x00\x01i\x01_\x00\x00\x03\x05\x04\x01\x02\x03\x03\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07/\x05\x06memory\x02\x00\x03add\x00\x03\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\x8b\x02\x04]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc0\x00F\r\x00\x02@ \x02A\x06F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x88!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x80\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0b\x9c\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00\x10\x82\x80\x80\x80\x00\x02@\x02@ \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08!\x00 \x02 \x01\x10\x82\x80\x80\x80\x00 \x02(\x02\x00A\x01F\r\x00 \x02)\x03\x08\"\x01 \x00|\"\x00 \x01T\r\x01\x02@\x02@ \x00B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x06\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\x10\x84\x80\x80\x80\x00\x00\x0b\t\x00\x10\x85\x80\x80\x80\x00\x00\x0b\x03\x00\x00\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00K\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03add\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x01b\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x01\x00\x00\x00\x06\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; pub trait Contract { fn add(env: soroban_sdk::Env, a: u64, b: u64) -> u64; } diff --git a/tests-expanded/test_tuples_tests.rs b/tests-expanded/test_tuples_tests.rs index afede28df..2e77ef036 100644 --- a/tests-expanded/test_tuples_tests.rs +++ b/tests-expanded/test_tuples_tests.rs @@ -640,7 +640,7 @@ mod test { use crate::{Contract, ContractClient}; use soroban_sdk::Env; mod wasm { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x1f\x05`\x01~\x01~`\x02~~\x01~`\x03~~~\x01~`\x03~\x7f\x7f\x00`\x02\x7f\x7f\x01~\x02\x19\x04\x01i\x012\x00\x00\x01i\x011\x00\x00\x01v\x01g\x00\x01\x01v\x01h\x00\x02\x03\x06\x05\x00\x03\x04\x00\x00\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07E\x07\x06memory\x02\x00\x06tuple1\x00\x04\x06tuple2\x00\x07\x07void_fn\x00\x08\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xc8\x03\x05x\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x01B\x027\x03\x08 \x00 \x01A\x08jA\x01\x10\x85\x80\x80\x80\x00 \x01)\x03\x08\"\x00B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01 \x00B\x84\x80\x80\x80p\x837\x03\x08 \x01A\x08jA\x01\x10\x86\x80\x80\x80\x00!\x00 \x01A\x10j$\x80\x80\x80\x80\x00 \x00\x0b\x1d\x00 \x00 \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x1a\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\xff\x01\x02\x02\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x02\x10\x85\x80\x80\x80\x00 \x01)\x03\x00\"\x03B\xff\x01\x83B\x04R\r\x00 \x01)\x03\x08\"\x00\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x01 \x02A\x07G\r\x00 \x00B\x08\x87!\x00\x0c\x02\x0b\x00\x0b \x00\x10\x80\x80\x80\x80\x00!\x00\x0b\x02@\x02@ \x00B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x07\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x01 \x007\x03\x08 \x01 \x03B\x84\x80\x80\x80p\x837\x03\x00 \x01A\x02\x10\x86\x80\x80\x80\x00!\x00 \x01A\x10j$\x80\x80\x80\x80\x00 \x00\x0b\x13\x00\x02@ \x00B\xff\x01\x83B\x02Q\r\x00\x00\x0bB\x02\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00\xcb\x01\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06tuple1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03arg\x00\x00\x00\x03\xed\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06tuple2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03arg\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07void_fn\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08void_arg\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00"; + pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01\x1f\x05`\x01~\x01~`\x02~~\x01~`\x03~~~\x01~`\x03~\x7f\x7f\x00`\x02\x7f\x7f\x01~\x02\x19\x04\x01i\x012\x00\x00\x01i\x011\x00\x00\x01v\x01g\x00\x01\x01v\x01h\x00\x02\x03\x06\x05\x00\x03\x04\x00\x00\x05\x03\x01\x00\x10\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x7f\x00A\x80\x80\xc0\x00\x0b\x07E\x07\x06memory\x02\x00\x06tuple1\x00\x04\x06tuple2\x00\x07\x07void_fn\x00\x08\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xc8\x03\x05x\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00 \x01B\x027\x03\x08 \x00 \x01A\x08jA\x01\x10\x85\x80\x80\x80\x00 \x01)\x03\x08\"\x00B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01 \x00B\x84\x80\x80\x80p\x837\x03\x08 \x01A\x08jA\x01\x10\x86\x80\x80\x80\x00!\x00 \x01A\x10j$\x80\x80\x80\x80\x00 \x00\x0b\x1d\x00 \x00 \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x1a\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\xff\x01\x02\x02\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x02\x10\x85\x80\x80\x80\x00 \x01)\x03\x00\"\x03B\xff\x01\x83B\x04R\r\x00 \x01)\x03\x08\"\x00\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x01 \x02A\x07G\r\x00 \x00B\x08\x87!\x00\x0c\x02\x0b\x00\x0b \x00\x10\x80\x80\x80\x80\x00!\x00\x0b\x02@\x02@ \x00B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x00B\x08\x86B\x07\x84!\x00\x0c\x01\x0b \x00\x10\x81\x80\x80\x80\x00!\x00\x0b \x01 \x007\x03\x08 \x01 \x03B\x84\x80\x80\x80p\x837\x03\x00 \x01A\x02\x10\x86\x80\x80\x80\x00!\x00 \x01A\x10j$\x80\x80\x80\x80\x00 \x00\x0b\x13\x00\x02@ \x00B\xff\x01\x83B\x02Q\r\x00\x00\x0bB\x02\x0b\x0b\t\x01\x00A\x80\x80\xc0\x00\x0b\x00\x00\xcb\x01\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06tuple1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03arg\x00\x00\x00\x03\xed\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06tuple2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03arg\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07void_fn\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x08void_arg\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; pub trait Contract { fn tuple1(env: soroban_sdk::Env, arg: (u32,)) -> (u32,); fn tuple2(env: soroban_sdk::Env, arg: (u32, i64)) -> (u32, i64); diff --git a/tests-expanded/test_udt_tests.rs b/tests-expanded/test_udt_tests.rs index c7111fe00..0209acf69 100644 --- a/tests-expanded/test_udt_tests.rs +++ b/tests-expanded/test_udt_tests.rs @@ -55,6 +55,11 @@ impl UdtEnum2 { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08UdtEnum2\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x0f" } } +impl soroban_sdk::SpecShakingMarker for UdtEnum2 { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() {} +} impl soroban_sdk::TryFromVal for UdtEnum2 { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -399,6 +404,15 @@ impl UdtEnum { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07UdtEnum\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x04UdtA\0\0\0\x01\0\0\0\0\0\0\0\x04UdtB\0\0\0\x01\0\0\x07\xd0\0\0\0\tUdtStruct\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04UdtC\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtEnum2\0\0\0\x01\0\0\0\0\0\0\0\x04UdtD\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtTuple" } } +impl soroban_sdk::SpecShakingMarker for UdtEnum { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for UdtEnum { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -1005,6 +1019,14 @@ impl UdtTuple { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UdtTuple\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\x03\xea\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for UdtTuple { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for UdtTuple { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -1390,6 +1412,15 @@ impl UdtStruct { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tUdtStruct\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for UdtStruct { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for UdtStruct { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_udt_wasm32v1-none.rs b/tests-expanded/test_udt_wasm32v1-none.rs index b71d72ff0..dc5a208c0 100644 --- a/tests-expanded/test_udt_wasm32v1-none.rs +++ b/tests-expanded/test_udt_wasm32v1-none.rs @@ -56,6 +56,16 @@ impl UdtEnum2 { *b"\0\0\0\x03\0\0\0\0\0\0\0\0\0\0\0\x08UdtEnum2\0\0\0\x02\0\0\0\0\0\0\0\x01A\0\0\0\0\0\0\n\0\0\0\0\0\0\0\x01B\0\0\0\0\0\0\x0f" } } +impl soroban_sdk::SpecShakingMarker for UdtEnum2 { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xaf\xf7\x93\xba\x9eM\xde\x9a"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for UdtEnum2 { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -166,6 +176,19 @@ impl UdtEnum { *b"\0\0\0\x02\0\0\0\0\0\0\0\0\0\0\0\x07UdtEnum\0\0\0\0\x04\0\0\0\0\0\0\0\0\0\0\0\x04UdtA\0\0\0\x01\0\0\0\0\0\0\0\x04UdtB\0\0\0\x01\0\0\x07\xd0\0\0\0\tUdtStruct\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x04UdtC\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtEnum2\0\0\0\x01\0\0\0\0\0\0\0\x04UdtD\0\0\0\x01\0\0\x07\xd0\0\0\0\x08UdtTuple" } } +impl soroban_sdk::SpecShakingMarker for UdtEnum { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xf3\xb0\xab@i\rH\xb4"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for UdtEnum { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -318,6 +341,18 @@ impl UdtTuple { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x08UdtTuple\0\0\0\x02\0\0\0\0\0\0\0\x010\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x011\0\0\0\0\0\x03\xea\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for UdtTuple { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\xeb\x9f\x12&\x9av(*"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for UdtTuple { type Error = soroban_sdk::ConversionError; #[inline(always)] @@ -422,6 +457,19 @@ impl UdtStruct { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\tUdtStruct\0\0\0\0\0\0\x03\0\0\0\0\0\0\0\x01a\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01b\0\0\0\0\0\0\x07\0\0\0\0\0\0\0\x01c\0\0\0\0\0\x03\xea\0\0\0\x07" } } +impl soroban_sdk::SpecShakingMarker for UdtStruct { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + ::spec_shaking_marker(); + as soroban_sdk::SpecShakingMarker>::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\x16'd8\xff\xc9\xb1\xf8"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for UdtStruct { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_workspace_lib_tests.rs b/tests-expanded/test_workspace_lib_tests.rs index 680a0c8c9..cb8fd3bae 100644 --- a/tests-expanded/test_workspace_lib_tests.rs +++ b/tests-expanded/test_workspace_lib_tests.rs @@ -39,6 +39,13 @@ impl Value { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x05Value\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x05" } } +impl soroban_sdk::SpecShakingMarker for Value { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + } +} impl soroban_sdk::TryFromVal for Value { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests-expanded/test_workspace_lib_wasm32v1-none.rs b/tests-expanded/test_workspace_lib_wasm32v1-none.rs index ccfff7e61..616d0ad54 100644 --- a/tests-expanded/test_workspace_lib_wasm32v1-none.rs +++ b/tests-expanded/test_workspace_lib_wasm32v1-none.rs @@ -40,6 +40,17 @@ impl Value { *b"\0\0\0\x01\0\0\0\0\0\0\0\0\0\0\0\x05Value\0\0\0\0\0\0\x01\0\0\0\0\0\0\0\x05value\0\0\0\0\0\0\x05" } } +impl soroban_sdk::SpecShakingMarker for Value { + #[doc(hidden)] + #[inline(always)] + fn spec_shaking_marker() { + ::spec_shaking_marker(); + { + static MARKER: [u8; 14usize] = *b"SpEcV1\x82\xf8t\xbe\t\x04b\\"; + let _ = unsafe { ::core::ptr::read_volatile(MARKER.as_ptr()) }; + } + } +} impl soroban_sdk::TryFromVal for Value { type Error = soroban_sdk::ConversionError; fn try_from_val( diff --git a/tests/account/Cargo.toml b/tests/account/Cargo.toml index ec3699307..c8ca0e729 100644 --- a/tests/account/Cargo.toml +++ b/tests/account/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/add_i128/Cargo.toml b/tests/add_i128/Cargo.toml index 87476bee7..5c4ac19c3 100644 --- a/tests/add_i128/Cargo.toml +++ b/tests/add_i128/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/add_u128/Cargo.toml b/tests/add_u128/Cargo.toml index 0015ef8f3..cdc39c6db 100644 --- a/tests/add_u128/Cargo.toml +++ b/tests/add_u128/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/add_u64/Cargo.toml b/tests/add_u64/Cargo.toml index 7e8f6f30f..d7966a4d8 100644 --- a/tests/add_u64/Cargo.toml +++ b/tests/add_u64/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/alloc/Cargo.toml b/tests/alloc/Cargo.toml index e25629fe6..b413d83d0 100644 --- a/tests/alloc/Cargo.toml +++ b/tests/alloc/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk", features = ["alloc"]} +soroban-sdk = {path = "../../soroban-sdk", features = ["alloc", "experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["alloc", "testutils"]} diff --git a/tests/associated_type/Cargo.toml b/tests/associated_type/Cargo.toml index 77c276c2f..8204c2489 100644 --- a/tests/associated_type/Cargo.toml +++ b/tests/associated_type/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/associated_type_chained/Cargo.toml b/tests/associated_type_chained/Cargo.toml index 56dcf381b..cb5957150 100644 --- a/tests/associated_type_chained/Cargo.toml +++ b/tests/associated_type_chained/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/associated_type_contracttrait/Cargo.toml b/tests/associated_type_contracttrait/Cargo.toml index 45246978b..50cd2fa2d 100644 --- a/tests/associated_type_contracttrait/Cargo.toml +++ b/tests/associated_type_contracttrait/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/associated_type_contracttrait/test_snapshots/test_with_wasm/test_exec.1.json b/tests/associated_type_contracttrait/test_snapshots/test_with_wasm/test_exec.1.json index 5cc016364..9e96fafb8 100644 --- a/tests/associated_type_contracttrait/test_snapshots/test_with_wasm/test_exec.1.json +++ b/tests/associated_type_contracttrait/test_snapshots/test_with_wasm/test_exec.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "83dbf55a7f436f851e8c0e8d55d921302138d98960c36c6ff1b7a9d3df3b6936" + "wasm": "5b61633ece44ac16e4c83604f38a43507220578262c9df06d078a39c465912d9" }, "constructor_args": [] } @@ -72,7 +72,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "83dbf55a7f436f851e8c0e8d55d921302138d98960c36c6ff1b7a9d3df3b6936" + "wasm": "5b61633ece44ac16e4c83604f38a43507220578262c9df06d078a39c465912d9" }, "storage": null } @@ -106,8 +106,8 @@ } } }, - "hash": "83dbf55a7f436f851e8c0e8d55d921302138d98960c36c6ff1b7a9d3df3b6936", - "code": "0061736d0100000001110360027e7e017e6000017e60027f7f017e02070101620169000003040301020105030100110621047f01418080c0000b7f00418f80c0000b7f00418f80c0000b7f00419080c0000b073806066d656d6f72790200046578656300010565786563320003015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a3e031000418080c0800041071082808080000b1a002000ad4220864204842001ad4220864204841080808080000b1000418780c0800041081082808080000b0b180100418080c0000b0f64656661756c7464656661756c7432004b0e636f6e7472616374737065637630000000000000000000000004657865630000000000000001000000100000000000000000000000056578656332000000000000000000000100000010001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "5b61633ece44ac16e4c83604f38a43507220578262c9df06d078a39c465912d9", + "code": "0061736d0100000001110360027e7e017e6000017e60027f7f017e02070101620169000003040301020105030100110621047f01418080c0000b7f00418f80c0000b7f00418f80c0000b7f00419080c0000b073806066d656d6f72790200046578656300010565786563320003015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a3e031000418080c0800041071082808080000b1a002000ad4220864204842001ad4220864204841080808080000b1000418780c0800041081082808080000b0b180100418080c0000b0f64656661756c7464656661756c7432004b0e636f6e7472616374737065637630000000000000000000000004657865630000000000000001000000100000000000000000000000056578656332000000000000000000000100000010001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/tests/auth/Cargo.toml b/tests/auth/Cargo.toml index 9b8b29272..7e17d442e 100644 --- a/tests/auth/Cargo.toml +++ b/tests/auth/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/bls/Cargo.toml b/tests/bls/Cargo.toml index 96bc671cc..83ab3e79f 100644 --- a/tests/bls/Cargo.toml +++ b/tests/bls/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/bn254/Cargo.toml b/tests/bn254/Cargo.toml index 173631cbd..1f85d1491 100644 --- a/tests/bn254/Cargo.toml +++ b/tests/bn254/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/constructor/Cargo.toml b/tests/constructor/Cargo.toml index ea1bf21a1..754d1dd15 100644 --- a/tests/constructor/Cargo.toml +++ b/tests/constructor/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contract_data/Cargo.toml b/tests/contract_data/Cargo.toml index ea1f51e5f..9310c1401 100644 --- a/tests/contract_data/Cargo.toml +++ b/tests/contract_data/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contracttrait_impl_full/Cargo.toml b/tests/contracttrait_impl_full/Cargo.toml index 71334a3b0..bc1cd14c8 100644 --- a/tests/contracttrait_impl_full/Cargo.toml +++ b/tests/contracttrait_impl_full/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} test_contracttrait_trait = {path = "../contracttrait_trait"} [dev-dependencies] diff --git a/tests/contracttrait_impl_partial/Cargo.toml b/tests/contracttrait_impl_partial/Cargo.toml index 203f46c3d..487aecf61 100644 --- a/tests/contracttrait_impl_partial/Cargo.toml +++ b/tests/contracttrait_impl_partial/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} test_contracttrait_trait = {path = "../contracttrait_trait"} [dev-dependencies] diff --git a/tests/contracttrait_path_crate/Cargo.toml b/tests/contracttrait_path_crate/Cargo.toml index 1509fc1c9..602ebc90e 100644 --- a/tests/contracttrait_path_crate/Cargo.toml +++ b/tests/contracttrait_path_crate/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contracttrait_path_global/Cargo.toml b/tests/contracttrait_path_global/Cargo.toml index 564bdcf9b..f3b85a52d 100644 --- a/tests/contracttrait_path_global/Cargo.toml +++ b/tests/contracttrait_path_global/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} test_contracttrait_trait = {path = "../contracttrait_trait"} [dev-dependencies] diff --git a/tests/contracttrait_path_relative/Cargo.toml b/tests/contracttrait_path_relative/Cargo.toml index 100313d7f..0fe78b914 100644 --- a/tests/contracttrait_path_relative/Cargo.toml +++ b/tests/contracttrait_path_relative/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contracttrait_path_self/Cargo.toml b/tests/contracttrait_path_self/Cargo.toml index 5b78fd563..06b2a750a 100644 --- a/tests/contracttrait_path_self/Cargo.toml +++ b/tests/contracttrait_path_self/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contracttrait_path_super/Cargo.toml b/tests/contracttrait_path_super/Cargo.toml index e2526f028..2949f085e 100644 --- a/tests/contracttrait_path_super/Cargo.toml +++ b/tests/contracttrait_path_super/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/contracttrait_trait/Cargo.toml b/tests/contracttrait_trait/Cargo.toml index 5aeb47ae2..6ca3a7d65 100644 --- a/tests/contracttrait_trait/Cargo.toml +++ b/tests/contracttrait_trait/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["lib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/empty/Cargo.toml b/tests/empty/Cargo.toml index 27375d1c3..11538f5ea 100644 --- a/tests/empty/Cargo.toml +++ b/tests/empty/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/empty2/Cargo.toml b/tests/empty2/Cargo.toml index b106fbf12..422c683aa 100644 --- a/tests/empty2/Cargo.toml +++ b/tests/empty2/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/errors/Cargo.toml b/tests/errors/Cargo.toml index 26c360d35..3f406f445 100644 --- a/tests/errors/Cargo.toml +++ b/tests/errors/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/events/Cargo.toml b/tests/events/Cargo.toml index a3da0215a..deb72e0e2 100644 --- a/tests/events/Cargo.toml +++ b/tests/events/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/events_ref/Cargo.toml b/tests/events_ref/Cargo.toml index 458969c66..cef1d7de6 100644 --- a/tests/events_ref/Cargo.toml +++ b/tests/events_ref/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/fuzz/Cargo.toml b/tests/fuzz/Cargo.toml index 10680981c..3e9c3085e 100644 --- a/tests/fuzz/Cargo.toml +++ b/tests/fuzz/Cargo.toml @@ -16,7 +16,7 @@ crate-type = ["cdylib", "rlib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/generics/Cargo.toml b/tests/generics/Cargo.toml index 00791e4f9..ad954f584 100644 --- a/tests/generics/Cargo.toml +++ b/tests/generics/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/import_contract/Cargo.toml b/tests/import_contract/Cargo.toml index 8186c680c..0767fd270 100644 --- a/tests/import_contract/Cargo.toml +++ b/tests/import_contract/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/invoke_contract/Cargo.toml b/tests/invoke_contract/Cargo.toml index 33e45c116..db2437a80 100644 --- a/tests/invoke_contract/Cargo.toml +++ b/tests/invoke_contract/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/logging/Cargo.toml b/tests/logging/Cargo.toml index 6f3c2a6ff..e3197c486 100644 --- a/tests/logging/Cargo.toml +++ b/tests/logging/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/macros/Cargo.toml b/tests/macros/Cargo.toml index 395e77490..0711b60ef 100644 --- a/tests/macros/Cargo.toml +++ b/tests/macros/Cargo.toml @@ -13,7 +13,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} proc_macros = {path = "./proc_macros"} [dev-dependencies] diff --git a/tests/modular/Cargo.toml b/tests/modular/Cargo.toml index d6557e090..8579fd362 100644 --- a/tests/modular/Cargo.toml +++ b/tests/modular/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/multiimpl/Cargo.toml b/tests/multiimpl/Cargo.toml index 1fb6c54fb..1dd0e7aa8 100644 --- a/tests/multiimpl/Cargo.toml +++ b/tests/multiimpl/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/mutability/Cargo.toml b/tests/mutability/Cargo.toml index 98f26c33d..105306480 100644 --- a/tests/mutability/Cargo.toml +++ b/tests/mutability/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/tuples/Cargo.toml b/tests/tuples/Cargo.toml index b384641df..6aa44fa0f 100644 --- a/tests/tuples/Cargo.toml +++ b/tests/tuples/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json b/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json index a8e9861eb..8b912ea12 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "constructor_args": [] } @@ -71,7 +71,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "storage": null } @@ -105,8 +105,8 @@ } } }, - "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json b/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json index a8e9861eb..8b912ea12 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "constructor_args": [] } @@ -71,7 +71,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "storage": null } @@ -105,8 +105,8 @@ } } }, - "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/tests/tuples/test_snapshots/test/test_wasm_void.1.json b/tests/tuples/test_snapshots/test/test_wasm_void.1.json index a8e9861eb..8b912ea12 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_void.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_void.1.json @@ -18,7 +18,7 @@ } }, "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "constructor_args": [] } @@ -71,7 +71,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" + "wasm": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52" }, "storage": null } @@ -105,8 +105,8 @@ } } }, - "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "410dc845492e2dda43b2653584a870cd877607a840671eb5b78279747b295a52", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000004f0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e3000000000000000000012727373646b5f737065635f7368616b696e6700000000000132000000" } }, "ext": "v0" diff --git a/tests/udt/Cargo.toml b/tests/udt/Cargo.toml index 58522f1e0..953d0c7cb 100644 --- a/tests/udt/Cargo.toml +++ b/tests/udt/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/workspace_contract/Cargo.toml b/tests/workspace_contract/Cargo.toml index de95b4278..d03fa7255 100644 --- a/tests/workspace_contract/Cargo.toml +++ b/tests/workspace_contract/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} test_workspace_lib = {path = "../workspace_lib"} [dev-dependencies] diff --git a/tests/workspace_lib/Cargo.toml b/tests/workspace_lib/Cargo.toml index ad9c72bf7..8db6b1698 100644 --- a/tests/workspace_lib/Cargo.toml +++ b/tests/workspace_lib/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["rlib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]} diff --git a/tests/zero/Cargo.toml b/tests/zero/Cargo.toml index f84816904..296a2f4d8 100644 --- a/tests/zero/Cargo.toml +++ b/tests/zero/Cargo.toml @@ -12,7 +12,7 @@ crate-type = ["cdylib"] doctest = false [dependencies] -soroban-sdk = {path = "../../soroban-sdk"} +soroban-sdk = {path = "../../soroban-sdk", features = ["experimental_spec_shaking_v2"]} [dev-dependencies] soroban-sdk = {path = "../../soroban-sdk", features = ["testutils"]}