diff --git a/Cargo.lock b/Cargo.lock index 41cb8b35a..a0326dd8e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,39 +44,16 @@ dependencies = [ "derive_arbitrary", ] -[[package]] -name = "ark-bls12-381" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", -] - [[package]] name = "ark-bls12-381" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" dependencies = [ - "ark-ec 0.5.0", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-bn254" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" -dependencies = [ - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-std 0.4.0", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", ] [[package]] @@ -85,26 +62,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" dependencies = [ - "ark-ec 0.5.0", - "ark-ff 0.5.0", - "ark-std 0.5.0", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff 0.4.2", - "ark-poly 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", - "itertools 0.10.5", - "num-traits", - "zeroize", + "ark-ec", + "ark-ff", + "ark-std", ] [[package]] @@ -114,70 +74,40 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ "ahash", - "ark-ff 0.5.0", - "ark-poly 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", "educe", "fnv", "hashbrown 0.15.5", - "itertools 0.13.0", + "itertools", "num-bigint", "num-integer", "num-traits", "zeroize", ] -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version", - "zeroize", -] - [[package]] name = "ark-ff" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" dependencies = [ - "ark-ff-asm 0.5.0", - "ark-ff-macros 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", "arrayvec", "digest", "educe", - "itertools 0.13.0", + "itertools", "num-bigint", "num-traits", "paste", "zeroize", ] -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-ff-asm" version = "0.5.0" @@ -185,20 +115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.103", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", + "syn", ] [[package]] @@ -211,20 +128,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.103", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "hashbrown 0.13.2", + "syn", ] [[package]] @@ -234,50 +138,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" dependencies = [ "ahash", - "ark-ff 0.5.0", - "ark-serialize 0.5.0", - "ark-std 0.5.0", + "ark-ff", + "ark-serialize", + "ark-std", "educe", "fnv", "hashbrown 0.15.5", ] -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive 0.4.2", - "ark-std 0.4.0", - "digest", - "num-bigint", -] - [[package]] name = "ark-serialize" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ - "ark-serialize-derive 0.5.0", - "ark-std 0.5.0", + "ark-serialize-derive", + "ark-std", "arrayvec", "digest", "num-bigint", ] -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ark-serialize-derive" version = "0.5.0" @@ -286,17 +167,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand", + "syn", ] [[package]] @@ -390,7 +261,7 @@ dependencies = [ "num-bigint", "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -418,7 +289,7 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -528,7 +399,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -552,7 +423,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.103", + "syn", ] [[package]] @@ -563,7 +434,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -592,17 +463,6 @@ dependencies = [ "serde", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -611,7 +471,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -712,7 +572,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -756,7 +616,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -875,15 +735,6 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -996,15 +847,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.13.0" @@ -1108,7 +950,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -1141,7 +983,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -1229,7 +1071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.103", + "syn", ] [[package]] @@ -1252,10 +1094,10 @@ dependencies = [ [[package]] name = "proc_macros" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -1445,7 +1287,7 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -1488,7 +1330,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -1536,21 +1378,21 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "soroban-builtin-sdk-macros" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7192e3a5551a7aeee90d2110b11b615798e81951fd8c8293c87ea7f88b0168f5" +checksum = "e38f0269c20b3c4c3aa2198b5460c72837e0361295a46b914adbcad67fa83d48" dependencies = [ - "itertools 0.10.5", + "itertools", "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] name = "soroban-env-common" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc49a80a68fc1005847308e63b9fce39874de731940b1807b721d472de3ff01" +checksum = "77b15a125a4ec51eeee94cfa58ac3e4f29e7f5426e7f4692a1b119ee60d83a06" dependencies = [ "arbitrary", "crate-git-revision", @@ -1567,9 +1409,9 @@ dependencies = [ [[package]] name = "soroban-env-guest" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2334ba1cfe0a170ab744d96db0b4ca86934de9ff68187ceebc09dc342def55" +checksum = "f85f2b5be7654eca65aa17333cb3fe6b0e6685bc7a40792e28e247e4fef6372e" dependencies = [ "soroban-env-common", "static_assertions", @@ -1577,15 +1419,15 @@ dependencies = [ [[package]] name = "soroban-env-host" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43af5d53c57bc2f546e122adc0b1cca6f93942c718977379aa19ddd04f06fcec" +checksum = "cb9c9c66b62af1179dc6265000bb4356caf0b67225568f64f39bd4194925917a" dependencies = [ - "ark-bls12-381 0.4.0", - "ark-bn254 0.4.0", - "ark-ec 0.4.2", - "ark-ff 0.4.2", - "ark-serialize 0.4.2", + "ark-bls12-381", + "ark-bn254", + "ark-ec", + "ark-ff", + "ark-serialize", "curve25519-dalek", "ecdsa", "ed25519-dalek", @@ -1614,22 +1456,22 @@ dependencies = [ [[package]] name = "soroban-env-macros" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a989167512e3592d455b1e204d703cfe578a36672a77ed2f9e6f7e1bbfd9cc5c" +checksum = "2d075b3654119b6dac81abd0f8c2f29cdba36edbda102b3c8c3d5f029f099790" dependencies = [ - "itertools 0.10.5", + "itertools", "proc-macro2", "quote", "serde", "serde_json", "stellar-xdr", - "syn 2.0.103", + "syn", ] [[package]] name = "soroban-ledger-snapshot" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "pretty_assertions", "serde", @@ -1642,7 +1484,7 @@ dependencies = [ [[package]] name = "soroban-meta" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "stellar-xdr", "thiserror", @@ -1651,12 +1493,12 @@ dependencies = [ [[package]] name = "soroban-sdk" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "arbitrary", - "ark-bls12-381 0.5.0", - "ark-bn254 0.5.0", - "ark-ff 0.5.0", + "ark-bls12-381", + "ark-bn254", + "ark-ff", "bytes-lit", "crate-git-revision", "ctor", @@ -1685,11 +1527,11 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "darling", "heck", - "itertools 0.10.5", + "itertools", "macro-string", "proc-macro2", "quote", @@ -1698,12 +1540,12 @@ dependencies = [ "soroban-spec", "soroban-spec-rust", "stellar-xdr", - "syn 2.0.103", + "syn", ] [[package]] name = "soroban-spec" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "base64", "pretty_assertions", @@ -1715,7 +1557,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "pretty_assertions", "prettyplease", @@ -1724,20 +1566,20 @@ dependencies = [ "sha2", "soroban-spec", "stellar-xdr", - "syn 2.0.103", + "syn", "thiserror", ] [[package]] name = "soroban-token-sdk" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "soroban-token-spec" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -1786,7 +1628,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-asset-spec" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "soroban-token-sdk", @@ -1816,9 +1658,9 @@ dependencies = [ [[package]] name = "stellar-xdr" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d20dafed80076b227d4b17c0c508a4bbc4d5e4c3d4c1de7cd42242df4b1eaf" +checksum = "fea3195594b044ea3a5b05906f81d945480825f00db4e3ae7d77526bf546ff3a" dependencies = [ "arbitrary", "base64", @@ -1845,17 +1687,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.103" @@ -1882,77 +1713,77 @@ dependencies = [ [[package]] name = "test_account" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_add_i128" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_add_u128" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_add_u64" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_alloc" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_associated_type_chained" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_associated_types" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_associated_types_contracttrait" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_auth" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_bls" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_bn254" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "hex", "soroban-sdk", @@ -1960,21 +1791,21 @@ dependencies = [ [[package]] name = "test_constructor" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contract_data" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contracttrait_impl_full" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "test_contracttrait_trait", @@ -1982,7 +1813,7 @@ dependencies = [ [[package]] name = "test_contracttrait_impl_partial" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "test_contracttrait_trait", @@ -1990,14 +1821,14 @@ dependencies = [ [[package]] name = "test_contracttrait_path_crate" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contracttrait_path_global" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "test_contracttrait_trait", @@ -2005,28 +1836,28 @@ dependencies = [ [[package]] name = "test_contracttrait_path_relative" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contracttrait_path_self" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contracttrait_path_super" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_contracttrait_trait" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "stellar-xdr", @@ -2034,77 +1865,77 @@ dependencies = [ [[package]] name = "test_empty" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_empty2" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_errors" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_events" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_events_ref" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_fuzz" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_generics" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_import_contract" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_invoke_contract" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_logging" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_macros" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "proc_macros", "soroban-sdk", @@ -2112,28 +1943,28 @@ dependencies = [ [[package]] name = "test_modular" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_multiimpl" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_mutability" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_spec_import" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "test_spec_lib", @@ -2141,14 +1972,14 @@ dependencies = [ [[package]] name = "test_spec_lib" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_spec_shaking_v1" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "soroban-spec", @@ -2157,7 +1988,7 @@ dependencies = [ [[package]] name = "test_spec_shaking_v2" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "soroban-spec", @@ -2166,21 +1997,21 @@ dependencies = [ [[package]] name = "test_tuples" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_udt" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_workspace_contract" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", "test_workspace_lib", @@ -2188,14 +2019,14 @@ dependencies = [ [[package]] name = "test_workspace_lib" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] [[package]] name = "test_zero" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] @@ -2217,7 +2048,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -2283,7 +2114,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -2323,7 +2154,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.103", + "syn", "wasm-bindgen-shared", ] @@ -2345,7 +2176,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2508,7 +2339,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] [[package]] @@ -2528,5 +2359,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn", ] diff --git a/Cargo.toml b/Cargo.toml index 2681984fd..19bebe822 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,40 +15,42 @@ members = [ ] [workspace.package] -version = "25.3.1" +version = "26.0.0-rc.1" rust-version = "1.91.0" [workspace.dependencies] -soroban-sdk = { version = "25.3.1", path = "soroban-sdk" } -soroban-sdk-macros = { version = "25.3.1", path = "soroban-sdk-macros" } -soroban-meta = { version = "25.3.1", path = "soroban-meta" } -soroban-spec = { version = "25.3.1", path = "soroban-spec" } -soroban-spec-rust = { version = "25.3.1", path = "soroban-spec-rust" } -soroban-ledger-snapshot = { version = "25.3.1", path = "soroban-ledger-snapshot" } -soroban-token-sdk = { version = "25.3.1", path = "soroban-token-sdk" } -soroban-token-spec = { version = "25.3.1", path = "soroban-token-spec" } -stellar-asset-spec = { version = "25.3.1", path = "stellar-asset-spec" } +soroban-sdk = { version = "26.0.0-rc.1", path = "soroban-sdk" } +soroban-sdk-macros = { version = "26.0.0-rc.1", path = "soroban-sdk-macros" } +soroban-meta = { version = "26.0.0-rc.1", path = "soroban-meta" } +soroban-spec = { version = "26.0.0-rc.1", path = "soroban-spec" } +soroban-spec-rust = { version = "26.0.0-rc.1", path = "soroban-spec-rust" } +soroban-ledger-snapshot = { version = "26.0.0-rc.1", path = "soroban-ledger-snapshot" } +soroban-token-sdk = { version = "26.0.0-rc.1", path = "soroban-token-sdk" } +soroban-token-spec = { version = "26.0.0-rc.1", path = "soroban-token-spec" } +stellar-asset-spec = { version = "26.0.0-rc.1", path = "stellar-asset-spec" } [workspace.dependencies.soroban-env-common] -version = "=25.0.1" +version = "=26.0.1" # git = "https://github.com/stellar/rs-soroban-env" -# rev = "cf58d535ab05d02802a5e804a95524650f8c62c7" +# rev = "f4d7b3299df8fc19e92769d0a26be2d032b78ccb" [workspace.dependencies.soroban-env-guest] -version = "=25.0.1" +version = "=26.0.1" # git = "https://github.com/stellar/rs-soroban-env" -# rev = "cf58d535ab05d02802a5e804a95524650f8c62c7" +# rev = "f4d7b3299df8fc19e92769d0a26be2d032b78ccb" [workspace.dependencies.soroban-env-host] -version = "=25.0.1" +version = "=26.0.1" # git = "https://github.com/stellar/rs-soroban-env" -# rev = "cf58d535ab05d02802a5e804a95524650f8c62c7" +# rev = "f4d7b3299df8fc19e92769d0a26be2d032b78ccb" [workspace.dependencies.stellar-strkey] version = "=0.0.16" [workspace.dependencies.stellar-xdr] -version = "=25.0.0" +version = "=26.0.0" +# git = "https://github.com/stellar/rs-stellar-xdr" +# rev = "dd7a165a193126fd37a751d867bee1cb8f3b55a6" default-features = false features = ["curr"] diff --git a/deny.toml b/deny.toml index 868301189..4cf1890e0 100644 --- a/deny.toml +++ b/deny.toml @@ -219,9 +219,8 @@ deny = [ # Certain crates/versions that will be skipped when doing duplicate detection. skip = [ - { name = "hashbrown", version = "=0.13.2" }, + { name = "hashbrown", version = "=0.14.5" }, { name = "stellar-strkey", version = "=0.0.13" }, - { name = "syn", version = "=1.0.109" }, ] # Similarly to `skip` allows you to skip certain crates during duplicate # detection. Unlike skip, it also includes the entire tree of transitive diff --git a/soroban-ledger-snapshot/src/lib.rs b/soroban-ledger-snapshot/src/lib.rs index 15bcb81a4..55fbbf4d0 100644 --- a/soroban-ledger-snapshot/src/lib.rs +++ b/soroban-ledger-snapshot/src/lib.rs @@ -260,7 +260,7 @@ impl LedgerSnapshot { impl Default for LedgerSnapshot { fn default() -> Self { Self { - protocol_version: 25, + protocol_version: 26, sequence_number: Default::default(), timestamp: Default::default(), network_id: Default::default(), diff --git a/soroban-sdk-macros/Cargo.toml b/soroban-sdk-macros/Cargo.toml index 4fb8932ed..a9f1d5a00 100644 --- a/soroban-sdk-macros/Cargo.toml +++ b/soroban-sdk-macros/Cargo.toml @@ -22,7 +22,7 @@ stellar-xdr = { workspace = true, features = ["curr", "std"] } syn = {version="2.0.77",features=["full"]} quote = "1.0" proc-macro2 = "1.0" -itertools = "0.10.5" +itertools = "0.13.0" darling = "0.20.10" macro-string = "0.1.4" sha2 = "0.10.7" diff --git a/soroban-sdk/src/_migrating.rs b/soroban-sdk/src/_migrating.rs index fe0a607db..74f6c5b1b 100644 --- a/soroban-sdk/src/_migrating.rs +++ b/soroban-sdk/src/_migrating.rs @@ -1,3 +1,40 @@ +//! # Migrating from v25 to v26 +//! +//! 1. Add support for [CAP-78: Host functions for performing limited TTL extensions](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0078.md). +//! New `extend_ttl_with_limits` methods on [`Persistent`], [`Instance`], and +//! [`Deployer`] provide bounded control over TTL extensions with `min_extension` and +//! `max_extension` parameters. +//! +//! 2. Add support for [CAP-82: Checked 256-bit integer arithmetic host functions](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0082.md). +//! New `checked_*` methods on [`U256`] and [`I256`] (`checked_add`, `checked_sub`, +//! `checked_mul`, `checked_div`, `checked_pow`, `checked_rem_euclid`, `checked_shl`, +//! `checked_shr`) return `Option` instead of panicking on overflow. Also adds +//! `min_value` and `max_value` methods on [`U256`] and [`I256`] to fetch the +//! value bounds of each type. +//! +//! 3. Add support for [CAP-80: Host functions for efficient ZK BN254 use cases](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0080.md). +//! [`BN254`] gains scalar field arithmetic (`Fr` `Add`/`Sub`/`Mul` traits, `pow`, `inv`), +//! multi-scalar multiplication (`g1_msm`), and curve validation (`g1_is_on_curve`). +//! [`BLS12381`] gains `g1_is_on_curve` and `g2_is_on_curve`. +//! +//! 4. Add support for [CAP-79: Host functions for muxed address strkey conversions](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0079.md). +//! New method [`MuxedAddress::to_strkey`] converts muxed addresses to Stellar strkey format. +//! +//! 5. Add support for [CAP-73: Allow SAC to create G-account balances](https://github.com/stellar/stellar-protocol/blob/master/core/cap-0073.md). +//! Update the [`StellarAssetInterface`] to include the new method [`StellarAssetInterface::trust`]. This method creates +//! an unlimited trustline for the contract's asset, if applicable. +//! +//! [`Persistent`]: crate::storage::Persistent +//! [`Instance`]: crate::storage::Instance +//! [`Deployer`]: crate::deploy::Deployer +//! [`U256`]: crate::U256 +//! [`I256`]: crate::I256 +//! [`MuxedAddress::to_strkey`]: crate::MuxedAddress::to_strkey +//! [`StellarAssetInterface`]: crate::token::StellarAssetInterface +//! [`StellarAssetInterface::trust`]: crate::token::StellarAssetInterface::trust +//! [`BN254`]: crate::crypto::bn254 +//! [`BLS12381`]: crate::crypto::bls12_381 +//! //! # Migrating from v23 to v25 //! //! 1. [`Events::all()` return type changed from `Vec<(Address, Vec, Val)>` to `ContractEvents`][v25_event_testing]. diff --git a/soroban-sdk/src/crypto/bls12_381.rs b/soroban-sdk/src/crypto/bls12_381.rs index 29592e117..6f3c1dad4 100644 --- a/soroban-sdk/src/crypto/bls12_381.rs +++ b/soroban-sdk/src/crypto/bls12_381.rs @@ -603,6 +603,14 @@ impl Bls12_381 { res.into() } + /// Checks if a G1 point is on the BLS12-381 curve (no subgroup check). + pub fn g1_is_on_curve(&self, point: &G1Affine) -> bool { + let env = self.env(); + internal::Env::bls12_381_g1_is_on_curve(env, point.to_object()) + .unwrap_infallible() + .into() + } + /// Adds two points `p0` and `p1` in G1. pub fn g1_add(&self, p0: &G1Affine, p1: &G1Affine) -> G1Affine { let env = self.env(); @@ -671,6 +679,14 @@ impl Bls12_381 { res.into() } + /// Checks if a G2 point is on the BLS12-381 curve (no subgroup check). + pub fn g2_is_on_curve(&self, point: &G2Affine) -> bool { + let env = self.env(); + internal::Env::bls12_381_g2_is_on_curve(env, point.to_object()) + .unwrap_infallible() + .into() + } + /// Adds two points `p0` and `p1` in G2. pub fn g2_add(&self, p0: &G2Affine, p1: &G2Affine) -> G2Affine { let env = self.env(); diff --git a/soroban-sdk/src/crypto/bn254.rs b/soroban-sdk/src/crypto/bn254.rs index 09f508526..c11eb79c4 100644 --- a/soroban-sdk/src/crypto/bn254.rs +++ b/soroban-sdk/src/crypto/bn254.rs @@ -2,7 +2,7 @@ use crate::xdr::ScVal; use crate::{ crypto::utils::BigInt, - env::internal::{self, BytesObject, U256Val}, + env::internal::{self, BytesObject, U256Val, U64Val}, impl_bytesn_repr_without_from_bytes, unwrap::{UnwrapInfallible, UnwrapOptimized}, Bytes, BytesN, ConversionError, Env, IntoVal, TryFromVal, Val, Vec, U256, @@ -10,7 +10,7 @@ use crate::{ use core::{ cmp::Ordering, fmt::Debug, - ops::{Add, Mul, Neg}, + ops::{Add, Mul, Neg, Sub}, }; pub const BN254_FP_SERIALIZED_SIZE: usize = 32; // Size in bytes of a serialized Bn254Fp element in BN254. The field modulus is 254 bits, requiring 32 bytes (256 bits). @@ -254,6 +254,38 @@ impl Fr { pub fn to_val(&self) -> Val { self.0.to_val() } + + pub fn pow(&self, rhs: u64) -> Self { + self.env().crypto().bn254().fr_pow(self, rhs) + } + + pub fn inv(&self) -> Self { + self.env().crypto().bn254().fr_inv(self) + } +} + +impl Add for Fr { + type Output = Fr; + + fn add(self, rhs: Self) -> Self::Output { + self.env().crypto().bn254().fr_add(&self, &rhs) + } +} + +impl Sub for Fr { + type Output = Fr; + + fn sub(self, rhs: Self) -> Self::Output { + self.env().crypto().bn254().fr_sub(&self, &rhs) + } +} + +impl Mul for Fr { + type Output = Fr; + + fn mul(self, rhs: Self) -> Self::Output { + self.env().crypto().bn254().fr_mul(&self, &rhs) + } } // BN254 scalar field modulus r in big-endian bytes. @@ -386,6 +418,59 @@ impl Bn254 { .unwrap_infallible() .into() } + + /// Performs a multi-scalar multiplication (MSM) operation in G1. + pub fn g1_msm(&self, vp: Vec, vs: Vec) -> Bn254G1Affine { + let env = self.env(); + let bin = internal::Env::bn254_g1_msm(env, vp.into(), vs.into()).unwrap_infallible(); + unsafe { Bn254G1Affine::from_bytes(BytesN::unchecked_new(env.clone(), bin)) } + } + + /// Checks if a G1 point is on the BN254 curve. + pub fn g1_is_on_curve(&self, point: &Bn254G1Affine) -> bool { + let env = self.env(); + internal::Env::bn254_g1_is_on_curve(env, point.to_object()) + .unwrap_infallible() + .into() + } + + // scalar arithmetic + + /// Adds two scalars in the BN254 scalar field `Fr`. + pub fn fr_add(&self, lhs: &Fr, rhs: &Fr) -> Fr { + let env = self.env(); + let v = internal::Env::bn254_fr_add(env, lhs.into(), rhs.into()).unwrap_infallible(); + U256::try_from_val(env, &v).unwrap_infallible().into() + } + + /// Subtracts one scalar from another in the BN254 scalar field `Fr`. + pub fn fr_sub(&self, lhs: &Fr, rhs: &Fr) -> Fr { + let env = self.env(); + let v = internal::Env::bn254_fr_sub(env, lhs.into(), rhs.into()).unwrap_infallible(); + U256::try_from_val(env, &v).unwrap_infallible().into() + } + + /// Multiplies two scalars in the BN254 scalar field `Fr`. + pub fn fr_mul(&self, lhs: &Fr, rhs: &Fr) -> Fr { + let env = self.env(); + let v = internal::Env::bn254_fr_mul(env, lhs.into(), rhs.into()).unwrap_infallible(); + U256::try_from_val(env, &v).unwrap_infallible().into() + } + + /// Raises a scalar to the power of a given exponent in the BN254 scalar field `Fr`. + pub fn fr_pow(&self, lhs: &Fr, rhs: u64) -> Fr { + let env = self.env(); + let rhs = U64Val::try_from_val(env, &rhs).unwrap_optimized(); + let v = internal::Env::bn254_fr_pow(env, lhs.into(), rhs).unwrap_infallible(); + U256::try_from_val(env, &v).unwrap_infallible().into() + } + + /// Computes the multiplicative inverse of a scalar in the BN254 scalar field `Fr`. + pub fn fr_inv(&self, lhs: &Fr) -> Fr { + let env = self.env(); + let v = internal::Env::bn254_fr_inv(env, lhs.into()).unwrap_infallible(); + U256::try_from_val(env, &v).unwrap_infallible().into() + } } #[cfg(test)] diff --git a/soroban-sdk/src/deploy.rs b/soroban-sdk/src/deploy.rs index b57db93e3..689e8e661 100644 --- a/soroban-sdk/src/deploy.rs +++ b/soroban-sdk/src/deploy.rs @@ -124,8 +124,9 @@ //! ``` use crate::{ - env::internal::Env as _, unwrap::UnwrapInfallible, Address, Bytes, BytesN, ConstructorArgs, - Env, IntoVal, + env::internal::{ContractTtlExtension, Env as _}, + unwrap::UnwrapInfallible, + Address, Bytes, BytesN, ConstructorArgs, Env, IntoVal, }; /// Deployer provides access to deploying contracts. @@ -272,6 +273,77 @@ impl Deployer { ) .unwrap_infallible(); } + + /// Extend the TTL of the contract instance and code with limits on the extension. + /// + /// Extends the TTL of the instance and code to be up to `extend_to` ledgers. + /// The extension only happens if it exceeds `min_extension` ledgers, otherwise + /// this is a no-op. The amount of extension will not exceed `max_extension` ledgers. + /// + /// Note that the extension is applied to both the contract code and contract instance, + /// so it's possible that one is extended but not the other depending on their current TTLs. + /// + /// The TTL is the number of ledgers between the current ledger and the final ledger + /// the data can still be accessed. + pub fn extend_ttl_with_limits( + &self, + contract_address: Address, + extend_to: u32, + min_extension: u32, + max_extension: u32, + ) { + self.env + .extend_contract_instance_and_code_ttl_v2( + contract_address.to_object(), + ContractTtlExtension::InstanceAndCode, + extend_to.into(), + min_extension.into(), + max_extension.into(), + ) + .unwrap_infallible(); + } + + /// Extend the TTL of the contract instance with limits on the extension. + /// + /// Same as [`extend_ttl_with_limits`](Self::extend_ttl_with_limits) but only for contract instance. + pub fn extend_ttl_for_contract_instance_with_limits( + &self, + contract_address: Address, + extend_to: u32, + min_extension: u32, + max_extension: u32, + ) { + self.env + .extend_contract_instance_and_code_ttl_v2( + contract_address.to_object(), + ContractTtlExtension::Instance, + extend_to.into(), + min_extension.into(), + max_extension.into(), + ) + .unwrap_infallible(); + } + + /// Extend the TTL of the contract code with limits on the extension. + /// + /// Same as [`extend_ttl_with_limits`](Self::extend_ttl_with_limits) but only for contract code. + pub fn extend_ttl_for_code_with_limits( + &self, + contract_address: Address, + extend_to: u32, + min_extension: u32, + max_extension: u32, + ) { + self.env + .extend_contract_instance_and_code_ttl_v2( + contract_address.to_object(), + ContractTtlExtension::Code, + extend_to.into(), + min_extension.into(), + max_extension.into(), + ) + .unwrap_infallible(); + } } /// A deployer that deploys a contract that has its ID derived from the provided diff --git a/soroban-sdk/src/env.rs b/soroban-sdk/src/env.rs index 4233ff9aa..e1db5e4fe 100644 --- a/soroban-sdk/src/env.rs +++ b/soroban-sdk/src/env.rs @@ -76,6 +76,7 @@ pub mod internal { } pub use internal::xdr; +pub use internal::ContractTtlExtension; pub use internal::ConversionError; pub use internal::EnvBase; pub use internal::Error; diff --git a/soroban-sdk/src/muxed_address.rs b/soroban-sdk/src/muxed_address.rs index 3a728639e..b858a31aa 100644 --- a/soroban-sdk/src/muxed_address.rs +++ b/soroban-sdk/src/muxed_address.rs @@ -4,7 +4,11 @@ use super::{ env::internal::{AddressObject, Env as _, MuxedAddressObject, Tag}, ConversionError, Env, TryFromVal, TryIntoVal, Val, }; -use crate::{env::internal, unwrap::UnwrapInfallible, Address, Bytes, String}; +use crate::{ + env::internal, + unwrap::{UnwrapInfallible, UnwrapOptimized}, + Address, Bytes, String, +}; #[cfg(not(target_family = "wasm"))] use crate::env::internal::xdr::{ScAddress, ScVal}; @@ -194,13 +198,8 @@ impl MuxedAddress { /// use this in special cases when addresses need to be shared between /// different environments (e.g. different chains). pub fn from_str(env: &Env, strkey: &str) -> MuxedAddress { - match strkey.as_bytes().first() { - Some(b'M') => MuxedAddress::from_muxed_strkey_bytes( - env, - &Bytes::from_slice(env, strkey.as_bytes()), - ), - _ => Address::from_str(env, strkey).into(), - } + let strkey_string = String::from_str(env, strkey); + MuxedAddress::from_string(&strkey_string) } /// Creates a `MuxedAddress` corresponding to the provided Stellar strkey. @@ -217,11 +216,8 @@ impl MuxedAddress { /// different environments (e.g. different chains). pub fn from_string(strkey: &String) -> Self { let env = strkey.env(); - let strkey_bytes = strkey.to_bytes(); - match strkey_bytes.first() { - Some(b'M') => MuxedAddress::from_muxed_strkey_bytes(env, &strkey_bytes), - _ => Address::from_string(strkey).into(), - } + let val = internal::Env::strkey_to_muxed_address(env, strkey.to_val()).unwrap_optimized(); + MuxedAddress::try_from_val(env, &val).unwrap_optimized() } /// Creates a `MuxedAddress` corresponding to the provided Stellar strkey @@ -239,43 +235,8 @@ impl MuxedAddress { /// different environments (e.g. different chains). pub fn from_string_bytes(strkey: &Bytes) -> Self { let env = strkey.env(); - match strkey.first() { - Some(b'M') => MuxedAddress::from_muxed_strkey_bytes(env, strkey), - _ => Address::from_string_bytes(strkey).into(), - } - } - - /// Internal: parses a muxed account strkey (M...) and builds MuxedAddress. - fn from_muxed_strkey_bytes(env: &Env, strkey: &Bytes) -> Self { - use crate::xdr::{FromXdr, ScAddressType, ScValType}; - use stellar_strkey::ed25519::MuxedAccount; - - // Copy strkey bytes into buffer for parsing. - const MAX_STRKEY_LEN: usize = 69; - let mut strkey_buf = [0u8; MAX_STRKEY_LEN]; - let len = strkey.len() as usize; - if len > strkey_buf.len() { - sdk_panic!("unexpected strkey length"); - } - strkey.copy_into_slice(&mut strkey_buf[..len]); - - let muxed = MuxedAccount::from_slice(&strkey_buf[..len]) - .unwrap_or_else(|_| sdk_panic!("muxed strkey invalid")); - - // Build XDR bytes - // XDR layout for ScVal::Address(ScAddress::MuxedAccount(MuxedEd25519Account)) - // MuxedEd25519Account: { id: uint64, ed25519: uint256 } - // Total: 48 bytes - const SCVAL_ADDRESS: i32 = ScValType::Address as i32; - const SCADDRESS_MUXED_ACCOUNT: i32 = ScAddressType::MuxedAccount as i32; - let mut buf = [0u8; 48]; - buf[0..4].copy_from_slice(&SCVAL_ADDRESS.to_be_bytes()); - buf[4..8].copy_from_slice(&SCADDRESS_MUXED_ACCOUNT.to_be_bytes()); - buf[8..16].copy_from_slice(&muxed.id.to_be_bytes()); // 8-byte mux id (big-endian) - buf[16..48].copy_from_slice(&muxed.ed25519); // 32-byte ed25519 public key - let xdr_bytes = Bytes::from_slice(env, &buf); - - MuxedAddress::from_xdr(env, &xdr_bytes).unwrap_or_else(|_| sdk_panic!("invalid xdr")) + let val = internal::Env::strkey_to_muxed_address(env, strkey.to_val()).unwrap_optimized(); + MuxedAddress::try_from_val(env, &val).unwrap_optimized() } /// Returns the `Address` part of this multiplexed address. @@ -351,6 +312,17 @@ impl MuxedAddress { AddressObjectWrapper::MuxedAddress(o) => o.to_val(), } } + + /// Converts this address to its Stellar strkey representation. + /// + /// Returns: + /// - `G...` for account addresses + /// - `M...` for muxed account addresses + /// - `C...` for contract addresses + pub fn to_strkey(&self) -> String { + let s = internal::Env::muxed_address_to_strkey(&self.env, self.to_val()).unwrap_optimized(); + unsafe { String::unchecked_new(self.env.clone(), s) } + } } #[cfg(not(target_family = "wasm"))] diff --git a/soroban-sdk/src/num.rs b/soroban-sdk/src/num.rs index ec67ffbd8..e96b729af 100644 --- a/soroban-sdk/src/num.rs +++ b/soroban-sdk/src/num.rs @@ -151,6 +151,17 @@ macro_rules! impl_num_wrapping_val_type { Self { env, val } } + /// Converts a `Val` known to be of this type into `Self` without + /// env-based conversion. The caller must guarantee the `Val` is of + /// the correct type; only a cheap tag check is performed. + #[inline(always)] + pub(crate) unsafe fn unchecked_from_val(env: Env, val: Val) -> Self { + Self { + env, + val: <$val>::try_from(val).unwrap_optimized(), + } + } + #[inline(always)] pub fn env(&self) -> &Env { &self.env @@ -192,6 +203,22 @@ pub struct U256 { impl_num_wrapping_val_type!(U256, U256Val, U256Small); impl U256 { + pub const BITS: u32 = 256; + + /// Returns the smallest value that can be represented by this type (0). + pub fn min_value(env: &Env) -> Self { + Self::from_u32(env, 0) + } + + /// Returns the largest value that can be represented by this type (2^256 - 1). + pub fn max_value(env: &Env) -> Self { + Self::from_parts(env, u64::MAX, u64::MAX, u64::MAX, u64::MAX) + } + + fn is_zero(&self) -> bool { + *self == U256::from_u32(&self.env, 0) + } + pub fn from_u32(env: &Env, u: u32) -> Self { U256 { env: env.clone(), @@ -311,6 +338,90 @@ impl U256 { val, } } + + /// Performs checked addition. Returns `None` if overflow occurred. + pub fn checked_add(&self, other: &U256) -> Option { + let val = self + .env + .u256_checked_add(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { U256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked subtraction. Returns `None` if overflow occurred. + pub fn checked_sub(&self, other: &U256) -> Option { + let val = self + .env + .u256_checked_sub(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { U256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked multiplication. Returns `None` if overflow occurred. + pub fn checked_mul(&self, other: &U256) -> Option { + let val = self + .env + .u256_checked_mul(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { U256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked exponentiation. Returns `None` if overflow occurred. + pub fn checked_pow(&self, pow: u32) -> Option { + let val = self + .env + .u256_checked_pow(self.val, pow.into()) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { U256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked division. Returns `None` if `other` is zero. + pub fn checked_div(&self, other: &U256) -> Option { + if other.is_zero() { + return None; + } + Some(self.div(other)) + } + + /// Performs checked Euclidean remainder. Returns `None` if `other` is zero. + pub fn checked_rem_euclid(&self, other: &U256) -> Option { + if other.is_zero() { + return None; + } + Some(self.rem_euclid(other)) + } + + /// Performs checked left shift. Returns `None` if `bits >= 256`. + pub fn checked_shl(&self, bits: u32) -> Option { + if bits >= Self::BITS { + return None; + } + Some(self.shl(bits)) + } + + /// Performs checked right shift. Returns `None` if `bits >= 256`. + pub fn checked_shr(&self, bits: u32) -> Option { + if bits >= Self::BITS { + return None; + } + Some(self.shr(bits)) + } } /// I256 holds a 256-bit signed integer. @@ -335,6 +446,26 @@ pub struct I256 { impl_num_wrapping_val_type!(I256, I256Val, I256Small); impl I256 { + pub const BITS: u32 = 256; + + /// Returns the smallest value that can be represented by this type (-2^255). + pub fn min_value(env: &Env) -> Self { + Self::from_parts(env, i64::MIN, 0, 0, 0) + } + + /// Returns the largest value that can be represented by this type (2^255 - 1). + pub fn max_value(env: &Env) -> Self { + Self::from_parts(env, i64::MAX, u64::MAX, u64::MAX, u64::MAX) + } + + fn is_zero(&self) -> bool { + *self == I256::from_i32(&self.env, 0) + } + + fn is_neg_one(&self) -> bool { + *self == I256::from_i32(&self.env, -1) + } + pub fn from_i32(env: &Env, i: i32) -> Self { I256 { env: env.clone(), @@ -462,6 +593,108 @@ impl I256 { val, } } + + /// Performs checked addition. Returns `None` if overflow occurred. + pub fn checked_add(&self, other: &I256) -> Option { + let val = self + .env + .i256_checked_add(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { I256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked subtraction. Returns `None` if overflow occurred. + pub fn checked_sub(&self, other: &I256) -> Option { + let val = self + .env + .i256_checked_sub(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { I256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked multiplication. Returns `None` if overflow occurred. + pub fn checked_mul(&self, other: &I256) -> Option { + let val = self + .env + .i256_checked_mul(self.val, other.val) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { I256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Performs checked exponentiation. Returns `None` if overflow occurred. + pub fn checked_pow(&self, pow: u32) -> Option { + let val = self + .env + .i256_checked_pow(self.val, pow.into()) + .unwrap_infallible(); + if val.is_void() { + None + } else { + Some(unsafe { I256::unchecked_from_val(self.env.clone(), val) }) + } + } + + /// Returns `true` if dividing `self` by `other` would overflow or divide by zero. + /// This covers: `other == 0`, or `self == I256::MIN && other == -1`. + fn is_div_overflow(&self, other: &I256) -> bool { + if other.is_zero() { + return true; + } + if other.is_neg_one() { + let min = I256::min_value(&self.env); + if *self == min { + return true; + } + } + false + } + + /// Performs checked division. Returns `None` if `other` is zero, or if + /// `self` is `I256::MIN` and `other` is `-1` (overflow). + pub fn checked_div(&self, other: &I256) -> Option { + if self.is_div_overflow(other) { + return None; + } + Some(self.div(other)) + } + + /// Performs checked Euclidean remainder. Returns `None` if `other` is zero, + /// or if `self` is `I256::MIN` and `other` is `-1` (overflow in intermediate + /// division). + pub fn checked_rem_euclid(&self, other: &I256) -> Option { + if self.is_div_overflow(other) { + return None; + } + Some(self.rem_euclid(other)) + } + + /// Performs checked left shift. Returns `None` if `bits >= 256`. + pub fn checked_shl(&self, bits: u32) -> Option { + if bits >= Self::BITS { + return None; + } + Some(self.shl(bits)) + } + + /// Performs checked right shift. Returns `None` if `bits >= 256`. + pub fn checked_shr(&self, bits: u32) -> Option { + if bits >= Self::BITS { + return None; + } + Some(self.shr(bits)) + } } #[doc = "Timepoint holds a 64-bit unsigned integer."] @@ -629,6 +862,91 @@ mod test { assert_eq!(u3.rem_euclid(&u4), U256::from_u32(&env, 3)); } + #[test] + fn test_u256_min() { + let env = Env::default(); + + let min = U256::min_value(&env); + assert_eq!(min, U256::from_u32(&env, 0)); + + let one = U256::from_u32(&env, 1); + assert_eq!(min.checked_sub(&one), None); + assert!(min.checked_add(&one).is_some()); + } + + #[test] + fn test_u256_max() { + let env = Env::default(); + + let max = U256::max_value(&env); + assert_eq!( + max, + U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX) + ); + + let u128_max = U256::from_u128(&env, u128::MAX); + assert!(max > u128_max); + + let one = U256::from_u32(&env, 1); + assert_eq!(max.checked_add(&one), None); + assert!(max.checked_sub(&one).is_some()); + } + + #[test] + fn test_u256_checked_arith() { + let env = Env::default(); + + let u1 = U256::from_u32(&env, 6); + let u2 = U256::from_u32(&env, 3); + assert_eq!(u1.checked_add(&u2), Some(U256::from_u32(&env, 9))); + assert_eq!(u1.checked_sub(&u2), Some(U256::from_u32(&env, 3))); + assert_eq!(u1.checked_mul(&u2), Some(U256::from_u32(&env, 18))); + assert_eq!(u1.checked_div(&u2), Some(U256::from_u32(&env, 2))); + assert_eq!(u1.checked_pow(2), Some(U256::from_u32(&env, 36))); + assert_eq!(u1.checked_shl(2), Some(U256::from_u32(&env, 24))); + assert_eq!(u1.checked_shr(1), Some(U256::from_u32(&env, 3))); + + let u3 = U256::from_u32(&env, 7); + let u4 = U256::from_u32(&env, 4); + assert_eq!(u3.checked_rem_euclid(&u4), Some(U256::from_u32(&env, 3))); + } + + #[test] + fn test_u256_checked_arith_overflow() { + let env = Env::default(); + + let zero = U256::from_u32(&env, 0); + let one = U256::from_u32(&env, 1); + let two = U256::from_u32(&env, 2); + let max = U256::max_value(&env); + assert_eq!(max.checked_add(&one), None); + assert_eq!(zero.checked_sub(&one), None); + assert_eq!(max.checked_mul(&two), None); + assert_eq!(one.checked_div(&zero), None); + assert_eq!(max.checked_pow(2), None); + assert_eq!(one.checked_shl(256), None); + assert_eq!(one.checked_shr(256), None); + assert_eq!(one.checked_rem_euclid(&zero), None); + + let zero_from_parts = U256::from_parts(&env, 0, 0, 0, 0); + let one_from_parts = U256::from_parts(&env, 0, 0, 0, 1); + assert_eq!(one.checked_div(&zero_from_parts), None); + assert_eq!(zero.checked_sub(&one_from_parts), None); + } + + #[test] + fn test_u256_is_zero() { + let env = Env::default(); + + let zero = U256::from_u32(&env, 0); + let zero_from_parts = U256::from_parts(&env, 0, 0, 0, 0); + let non_zero = U256::from_u32(&env, 1); + + assert!(zero.is_zero()); + assert!(zero_from_parts.is_zero()); + assert!(!non_zero.is_zero()); + } + #[test] fn test_i256_arith() { let env = Env::default(); @@ -647,4 +965,122 @@ mod test { let u4 = I256::from_i32(&env, 4); assert_eq!(u3.rem_euclid(&u4), I256::from_i32(&env, 1)); } + + #[test] + fn test_i256_min() { + let env = Env::default(); + + let min = I256::min_value(&env); + assert_eq!(min, I256::from_parts(&env, i64::MIN, 0, 0, 0)); + + let i128_min = I256::from_i128(&env, i128::MIN); + assert!(min < i128_min); + + let one = I256::from_i32(&env, 1); + assert_eq!(min.checked_sub(&one), None); + assert!(min.checked_add(&one).is_some()); + } + + #[test] + fn test_i256_max() { + let env = Env::default(); + + let max = I256::max_value(&env); + assert_eq!( + max, + I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX) + ); + + let i128_max = I256::from_i128(&env, i128::MAX); + assert!(max > i128_max); + + let one = I256::from_i32(&env, 1); + assert_eq!(max.checked_add(&one), None); + assert!(max.checked_sub(&one).is_some()); + } + + #[test] + fn test_i256_checked_arith() { + let env = Env::default(); + + let i1 = I256::from_i32(&env, -6); + let i2 = I256::from_i32(&env, 3); + assert_eq!(i1.checked_add(&i2), Some(I256::from_i32(&env, -3))); + assert_eq!(i1.checked_sub(&i2), Some(I256::from_i32(&env, -9))); + assert_eq!(i1.checked_mul(&i2), Some(I256::from_i32(&env, -18))); + assert_eq!(i1.checked_div(&i2), Some(I256::from_i32(&env, -2))); + assert_eq!(i1.checked_pow(2), Some(I256::from_i32(&env, 36))); + assert_eq!(i1.checked_shl(2), Some(I256::from_i32(&env, -24))); + assert_eq!(i1.checked_shr(1), Some(I256::from_i32(&env, -3))); + + let u3 = I256::from_i32(&env, -7); + let u4 = I256::from_i32(&env, 4); + assert_eq!(u3.checked_rem_euclid(&u4), Some(I256::from_i32(&env, 1))); + } + + #[test] + fn test_i256_checked_arith_overflow() { + let env = Env::default(); + + let zero = I256::from_i32(&env, 0); + let one = I256::from_i32(&env, 1); + let negative_one = I256::from_i32(&env, -1); + let two = I256::from_i32(&env, 2); + let max = I256::max_value(&env); + let min = I256::min_value(&env); + assert_eq!(max.checked_add(&one), None); + assert_eq!(min.checked_sub(&one), None); + assert_eq!(max.checked_mul(&two), None); + assert_eq!(one.checked_div(&zero), None); + assert_eq!(min.checked_div(&negative_one), None); + assert_eq!(max.checked_pow(2), None); + assert_eq!(one.checked_shl(256), None); + assert_eq!(one.checked_shr(256), None); + assert_eq!(one.checked_rem_euclid(&zero), None); + + let zero_from_parts = I256::from_parts(&env, 0, 0, 0, 0); + let one_from_parts = I256::from_parts(&env, 0, 0, 0, 1); + assert_eq!(one.checked_div(&zero_from_parts), None); + assert_eq!(min.checked_sub(&one_from_parts), None); + } + + #[test] + fn test_i256_is_zero() { + let env = Env::default(); + + let zero = I256::from_i32(&env, 0); + let zero_from_parts = I256::from_parts(&env, 0, 0, 0, 0); + let non_zero = I256::from_i32(&env, 1); + + assert!(zero.is_zero()); + assert!(zero_from_parts.is_zero()); + assert!(!non_zero.is_zero()); + } + + #[test] + fn test_i256_is_neg_one() { + let env = Env::default(); + + let negative_one = I256::from_i32(&env, -1); + let negative_one_from_parts = I256::from_parts(&env, -1, u64::MAX, u64::MAX, u64::MAX); + let negative_two = I256::from_i32(&env, -2); + + assert!(negative_one.is_neg_one()); + assert!(negative_one_from_parts.is_neg_one()); + assert!(!negative_two.is_neg_one()); + } + + #[test] + fn test_i256_is_div_overflow() { + let env = Env::default(); + + let zero = I256::from_i32(&env, 0); + let negative_one = I256::from_i32(&env, -1); + let min = I256::min_value(&env); + + assert!(!zero.is_div_overflow(&negative_one)); + + assert!(negative_one.is_div_overflow(&zero)); + assert!(min.is_div_overflow(&negative_one)); + } } diff --git a/soroban-sdk/src/storage.rs b/soroban-sdk/src/storage.rs index fa805a66a..33b23121e 100644 --- a/soroban-sdk/src/storage.rs +++ b/soroban-sdk/src/storage.rs @@ -2,7 +2,7 @@ use core::fmt::Debug; use crate::{ - env::internal::{self, StorageType, Val}, + env::internal::{self, ContractTtlExtension, StorageType, Val}, unwrap::{UnwrapInfallible, UnwrapOptimized}, Env, IntoVal, TryFromVal, }; @@ -274,6 +274,36 @@ impl Storage { .unwrap_infallible(); } + /// Extend the TTL of the data with limits on the extension. + /// + /// Extends the TTL of the data to be up to `extend_to` ledgers. The extension + /// only happens if it exceeds `min_extension` ledgers, otherwise this is a no-op. + /// The amount of extension will not exceed `max_extension` ledgers. + /// + /// The TTL is the number of ledgers between the current ledger and the final + /// ledger the data can still be accessed. + pub(crate) fn extend_ttl_with_limits( + &self, + key: &K, + storage_type: StorageType, + extend_to: u32, + min_extension: u32, + max_extension: u32, + ) where + K: IntoVal, + { + let env = &self.env; + internal::Env::extend_contract_data_ttl_v2( + env, + key.into_val(env), + storage_type, + extend_to.into(), + min_extension.into(), + max_extension.into(), + ) + .unwrap_infallible(); + } + /// Removes the key and the corresponding value from the currently executing /// contract's storage. /// @@ -378,6 +408,32 @@ impl Persistent { .extend_ttl(key, StorageType::Persistent, threshold, extend_to) } + /// Extend the TTL of the data under the key with limits on the extension. + /// + /// Extends the TTL of the data to be up to `extend_to` ledgers. The extension + /// only happens if it exceeds `min_extension` ledgers, otherwise this is a no-op. + /// The amount of extension will not exceed `max_extension` ledgers. + /// + /// The TTL is the number of ledgers between the current ledger and the final + /// ledger the data can still be accessed. + pub fn extend_ttl_with_limits( + &self, + key: &K, + extend_to: u32, + min_extension: u32, + max_extension: u32, + ) where + K: IntoVal, + { + self.storage.extend_ttl_with_limits( + key, + StorageType::Persistent, + extend_to, + min_extension, + max_extension, + ) + } + #[inline(always)] pub fn remove(&self, key: &K) where @@ -566,6 +622,29 @@ impl Instance { ) .unwrap_infallible(); } + + /// Extend the TTL of the contract instance and code with limits on the extension. + /// + /// Extends the TTL of the instance and code to be up to `extend_to` ledgers. + /// The extension only happens if it exceeds `min_extension` ledgers, otherwise + /// this is a no-op. The amount of extension will not exceed `max_extension` ledgers. + /// + /// Note that the extension is applied to both the contract code and contract instance, + /// so it's possible that one is extended but not the other depending on their current TTLs. + /// + /// The TTL is the number of ledgers between the current ledger and the final ledger + /// the data can still be accessed. + pub fn extend_ttl_with_limits(&self, extend_to: u32, min_extension: u32, max_extension: u32) { + internal::Env::extend_contract_instance_and_code_ttl_v2( + &self.storage.env, + self.storage.env.current_contract_address().to_object(), + ContractTtlExtension::InstanceAndCode, + extend_to.into(), + min_extension.into(), + max_extension.into(), + ) + .unwrap_infallible(); + } } #[cfg(any(test, feature = "testutils"))] diff --git a/soroban-sdk/src/tests.rs b/soroban-sdk/src/tests.rs index af033c5db..1cd8bc81b 100644 --- a/soroban-sdk/src/tests.rs +++ b/soroban-sdk/src/tests.rs @@ -34,6 +34,7 @@ mod contractimport; mod contractimport_with_error; mod cost_estimate; mod crypto_bls12_381; +mod crypto_bn254; mod crypto_ed25519; mod crypto_keccak256; mod crypto_poseidon; @@ -43,6 +44,7 @@ mod crypto_sha256; mod env; mod max_ttl; mod muxed_address; +mod num_checked_arith; mod prng; mod prng_range; mod proptest_scval_cmp; diff --git a/soroban-sdk/src/tests/contract_store.rs b/soroban-sdk/src/tests/contract_store.rs index f929789f5..6dc2b7e1e 100644 --- a/soroban-sdk/src/tests/contract_store.rs +++ b/soroban-sdk/src/tests/contract_store.rs @@ -1,5 +1,5 @@ use crate::testutils::storage::{Instance, Persistent, Temporary}; -use crate::testutils::Ledger; +use crate::testutils::{Deployer as _, Ledger}; use crate::{self as soroban_sdk}; use soroban_sdk::{contract, contractimpl, contracttype, Env}; @@ -52,6 +52,22 @@ impl Contract { pub fn extend_ttl_instance(env: Env, extend_to: u32) { env.storage().instance().extend_ttl(extend_to, extend_to); } + + // Shorter names for the with_limits variants (max 32 chars) + pub fn ext_ttl_persistent_lim(env: Env, k: i32, extend_to: u32, min_ext: u32, max_ext: u32) { + env.storage().persistent().extend_ttl_with_limits( + &DataKey::Key(k), + extend_to, + min_ext, + max_ext, + ); + } + + pub fn ext_ttl_instance_lim(env: Env, extend_to: u32, min_ext: u32, max_ext: u32) { + env.storage() + .instance() + .extend_ttl_with_limits(extend_to, min_ext, max_ext); + } } #[test] @@ -181,7 +197,7 @@ fn test_storage() { } #[test] -#[should_panic(expected = "trying to extend past max live_until ledger")] +#[should_panic(expected = "trying to extend temporary entry past max TTL allowed by network")] fn test_temp_storage_extension_past_max_ttl_panics() { let e = Env::default(); e.ledger().set_min_temp_entry_ttl(50); @@ -193,3 +209,180 @@ fn test_temp_storage_extension_past_max_ttl_panics() { }); client.extend_ttl_temporary(&11, &(e.storage().max_ttl() + 1)); } + +fn run_extend_ttl_with_limits_scenarios( + e: &Env, + extend_fn: &dyn Fn(u32, u32, u32), + get_ttl_fn: &dyn Fn() -> u32, +) { + let max_ttl = e.storage().max_ttl(); + // Initial TTL is 99 (min_persistent_entry_ttl - 1). + assert_eq!(get_ttl_fn(), 99); + + // Extension clamped by max_extension. + // extend_to=500, min=50, max=200 => extension = min(500-99, 200) = 200 + extend_fn(500, 50, 200); + assert_eq!(get_ttl_fn(), 299); // 99 + 200 + + // Repeated extension accumulates. + // TTL=299, extend_to=500 => extension = min(500-299, 200) = 200 + extend_fn(500, 50, 200); + assert_eq!(get_ttl_fn(), 499); // 299 + 200 + + // Extension below min_extension is no-op. + // TTL=499, extend_to=500 => extension = 1 < min(50) => no-op + extend_fn(500, 50, 200); + assert_eq!(get_ttl_fn(), 499); // unchanged + + // extend_to <= current TTL is no-op. + extend_fn(400, 1, 500); + assert_eq!(get_ttl_fn(), 499); // unchanged + + // max_extension caps a large extension. + // TTL=499, extend_to=max_ttl(20000), max_extension=5000 => extension = 5000 + extend_fn(max_ttl, 1, 5000); + assert_eq!(get_ttl_fn(), 5499); // 499 + 5000 + + // Extension past max TTL is clamped. + extend_fn(max_ttl + 1000, 1, 20000); + assert_eq!(get_ttl_fn(), max_ttl); +} + +#[test] +fn test_persistent_extend_ttl_with_limits() { + let e = Env::default(); + e.ledger().set_min_persistent_entry_ttl(100); + e.ledger().set_max_entry_ttl(20_000); + + let contract_id = e.register(Contract, ()); + let client = ContractClient::new(&e, &contract_id); + e.as_contract(&contract_id, || { + e.storage().persistent().set(&DataKey::Key(11), &1111_i32); + }); + + run_extend_ttl_with_limits_scenarios( + &e, + &|extend_to, min_ext, max_ext| { + client.ext_ttl_persistent_lim(&11, &extend_to, &min_ext, &max_ext); + }, + &|| { + e.as_contract(&contract_id, || { + e.storage().persistent().get_ttl(&DataKey::Key(11)) + }) + }, + ); +} + +#[test] +fn test_instance_extend_ttl_with_limits() { + let e = Env::default(); + e.ledger().set_min_persistent_entry_ttl(100); + e.ledger().set_max_entry_ttl(20_000); + + let contract_id = e.register(Contract, ()); + let client = ContractClient::new(&e, &contract_id); + + run_extend_ttl_with_limits_scenarios( + &e, + &|extend_to, min_ext, max_ext| { + client.ext_ttl_instance_lim(&extend_to, &min_ext, &max_ext); + }, + &|| e.as_contract(&contract_id, || e.storage().instance().get_ttl()), + ); +} + +#[test] +#[should_panic(expected = "max_extension must be >= min_extension")] +fn test_extend_ttl_with_limits_invalid_max_less_than_min() { + // This is a smoke test for how the error handling works when + // max_extension < min_extension; this is part of the host function + // implementation, so no need to cover all the scenarios. + let e = Env::default(); + e.ledger().set_min_persistent_entry_ttl(100); + e.ledger().set_max_entry_ttl(20_000); + let contract_id = e.register(Contract, ()); + let client = ContractClient::new(&e, &contract_id); + e.as_contract(&contract_id, || { + e.storage().persistent().set(&DataKey::Key(11), &1111_i32); + }); + client.ext_ttl_persistent_lim(&11, &500, &200, &100); +} + +#[test] +fn test_deployer_extensions_with_limits() { + let e = Env::default(); + e.ledger().set_sequence_number(1000); + e.ledger().set_min_persistent_entry_ttl(100); + e.ledger().set_min_temp_entry_ttl(10); + e.ledger().set_max_entry_ttl(20_000); + + let contract_a = e.register(Contract, ()); + let contract_b = e.register(Contract, ()); + let setup = || { + e.storage().persistent().set(&1, &3); + e.storage().temporary().set(&2, &4); + }; + e.as_contract(&contract_a, setup); + e.as_contract(&contract_b, setup); + + // Test extend_ttl_with_limits for deployer + // Initial TTL is 99 for instance (min_persistent_entry_ttl - 1) + + // Test extend_ttl_with_limits (both instance and code) + e.as_contract(&contract_a, || { + // extend_to=500, min_extension=50, max_extension=200 + // extension = min(500-99, 200) = 200 (since 401 > 200) + // new TTL = 99 + 200 = 299 + e.deployer() + .extend_ttl_with_limits(contract_a.clone(), 500, 50, 200); + }); + assert_eq!(e.deployer().get_contract_instance_ttl(&contract_a), 299); + assert_eq!(e.deployer().get_contract_code_ttl(&contract_a), 299); + // Contract B should be unaffected (different instance, but same code) + // Code is shared so it's extended too + assert_eq!(e.deployer().get_contract_instance_ttl(&contract_b), 99); + assert_eq!(e.deployer().get_contract_code_ttl(&contract_b), 299); + + // Test extend_ttl_for_contract_instance_with_limits (instance only) + e.as_contract(&contract_a, || { + // extend_to=1000, min_extension=100, max_extension=300 + // instance TTL is 299, extension = min(1000-299, 300) = 300 + // new instance TTL = 299 + 300 = 599 + e.deployer().extend_ttl_for_contract_instance_with_limits( + contract_a.clone(), + 1000, + 100, + 300, + ); + }); + assert_eq!(e.deployer().get_contract_instance_ttl(&contract_a), 599); + // Code should not change + assert_eq!(e.deployer().get_contract_code_ttl(&contract_a), 299); + + // Test extend_ttl_for_code_with_limits (code only) + e.as_contract(&contract_a, || { + // extend_to=2000, min_extension=100, max_extension=500 + // code TTL is 299, extension = min(2000-299, 500) = 500 + // new code TTL = 299 + 500 = 799 + e.deployer() + .extend_ttl_for_code_with_limits(contract_a.clone(), 2000, 100, 500); + }); + assert_eq!(e.deployer().get_contract_instance_ttl(&contract_a), 599); + assert_eq!(e.deployer().get_contract_code_ttl(&contract_a), 799); + // Contract B code is shared, so it's also extended + assert_eq!(e.deployer().get_contract_code_ttl(&contract_b), 799); + + // Test that min_extension prevents extension when below threshold + e.as_contract(&contract_a, || { + // extend_to=610, min_extension=100, max_extension=500 + // instance TTL is 599, extension would be 610-599=11 < min_extension(100) + // Should be a no-op + e.deployer().extend_ttl_for_contract_instance_with_limits( + contract_a.clone(), + 610, + 100, + 500, + ); + }); + assert_eq!(e.deployer().get_contract_instance_ttl(&contract_a), 599); // unchanged +} diff --git a/soroban-sdk/src/tests/cost_estimate.rs b/soroban-sdk/src/tests/cost_estimate.rs index d1493b0a6..707713a4c 100644 --- a/soroban-sdk/src/tests/cost_estimate.rs +++ b/soroban-sdk/src/tests/cost_estimate.rs @@ -1,8 +1,8 @@ use crate as soroban_sdk; use expect_test::expect; +use soroban_sdk::xdr::ContractCostType; use soroban_sdk::Env; use soroban_sdk_macros::symbol_short; -use stellar_xdr::curr::ContractCostType; mod contract_data { use crate as soroban_sdk; @@ -220,14 +220,14 @@ fn test_cost_estimate_budget() { Bls12381G2ProjectiveToAffine 0 None 0 0 100742 0 0 0 Bls12381G1Add 0 None 0 0 7689 0 0 0 Bls12381G1Mul 0 None 0 0 2458985 0 0 0 - Bls12381G1Msm 0 Some(0) 0 0 2426722 96397671 109494 354667 - Bls12381MapFpToG1 0 None 0 0 1541554 0 5552 0 - Bls12381HashToG1 0 Some(0) 0 0 3211191 6713 9424 0 + Bls12381G1Msm 0 Some(0) 0 0 2347584 94135478 109494 266603 + Bls12381MapFpToG1 0 None 0 0 1020885 0 2776 0 + Bls12381HashToG1 0 Some(0) 0 0 2638451 6803 5896 0 Bls12381G2Add 0 None 0 0 25207 0 0 0 Bls12381G2Mul 0 None 0 0 7873219 0 0 0 - Bls12381G2Msm 0 Some(0) 0 0 8035968 309667335 219654 354667 - Bls12381MapFp2ToG2 0 None 0 0 2420202 0 3344 0 - Bls12381HashToG2 0 Some(0) 0 0 7050564 6797 6816 0 + Bls12381G2Msm 0 Some(0) 0 0 7663880 298580871 219654 266603 + Bls12381MapFp2ToG2 0 None 0 0 1856539 0 1672 0 + Bls12381HashToG2 0 Some(0) 0 0 6315452 7232 3960 0 Bls12381Pairing 0 Some(0) 0 0 10558948 632860943 2204 9340474 Bls12381FrFromU256 0 None 0 0 1994 0 0 0 Bls12381FrToU256 0 None 0 0 1155 0 248 0 @@ -239,7 +239,7 @@ fn test_cost_estimate_budget() { Bn254DecodeFp 0 None 0 0 476 0 0 0 Bn254G1CheckPointOnCurve 0 None 0 0 904 0 0 0 Bn254G2CheckPointOnCurve 0 None 0 0 2811 0 0 0 - Bn254G2CheckPointInSubgroup 0 None 0 0 2937755 0 0 0 + Bn254G2CheckPointInSubgroup 0 None 0 0 1706052 0 0 0 Bn254G1ProjectiveToAffine 0 None 0 0 61 0 0 0 Bn254G1Add 0 None 0 0 3623 0 0 0 Bn254G1Mul 0 None 0 0 1150435 0 0 0 @@ -250,6 +250,7 @@ fn test_cost_estimate_budget() { Bn254FrMul 0 None 0 0 332 0 0 0 Bn254FrPow 0 Some(0) 0 0 755 68930 0 0 Bn254FrInv 0 None 0 0 33151 0 0 0 + Bn254G1Msm 0 Some(0) 0 0 1185193 41568084 73061 229779 =============================================================================================================================================================================== Internal details (diagnostics info, does not affect fees) Total # times meter was called: 272 diff --git a/soroban-sdk/src/tests/crypto_bls12_381.rs b/soroban-sdk/src/tests/crypto_bls12_381.rs index 8a3b09d32..c880460d3 100644 --- a/soroban-sdk/src/tests/crypto_bls12_381.rs +++ b/soroban-sdk/src/tests/crypto_bls12_381.rs @@ -189,6 +189,32 @@ fn test_pairing() { assert!(bls12_381.pairing_check(vp1, vp2)) } +#[test] +fn test_g1_is_on_curve() { + let env = Env::default(); + let bls12_381 = Bls12_381::new(&env); + let zero = G1Affine::from_bytes(bytesn!(&env, 0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)); + let one = G1Affine::from_bytes(bytesn!(&env, 0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1)); + // (1, 1) is not on the curve: 1 != 1 + 4 + let not_on_curve = G1Affine::from_bytes(bytesn!(&env, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)); + assert!(bls12_381.g1_is_on_curve(&zero)); + assert!(bls12_381.g1_is_on_curve(&one)); + assert!(!bls12_381.g1_is_on_curve(¬_on_curve)); +} + +#[test] +fn test_g2_is_on_curve() { + let env = Env::default(); + let bls12_381 = Bls12_381::new(&env); + let zero = G2Affine::from_bytes(bytesn!(&env, 0x400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)); + let one = G2Affine::from_bytes(bytesn!(&env, 0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb80606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801)); + // (1, 0, 1, 0) is not on the curve + let not_on_curve = G2Affine::from_bytes(bytesn!(&env, 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)); + assert!(bls12_381.g2_is_on_curve(&zero)); + assert!(bls12_381.g2_is_on_curve(&one)); + assert!(!bls12_381.g2_is_on_curve(¬_on_curve)); +} + #[test] fn test_fr_arithmetic() { let env = Env::default(); diff --git a/soroban-sdk/src/tests/crypto_bn254.rs b/soroban-sdk/src/tests/crypto_bn254.rs new file mode 100644 index 000000000..3a3d6d504 --- /dev/null +++ b/soroban-sdk/src/tests/crypto_bn254.rs @@ -0,0 +1,175 @@ +use crate::{self as soroban_sdk}; +use soroban_sdk::{ + bytes, bytesn, + crypto::bn254::{Bn254, Bn254G1Affine, Fr}, + vec, Env, Vec, U256, +}; + +#[test] +fn test_g1_is_on_curve() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + // infinity (64 zero bytes) + let zero = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + )); + // generator point (1, 2) - two 32-byte big-endian values + let one = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002 + )); + // (1, 1) is not on the curve: 1 != 1 + 3 + let not_on_curve = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001 + )); + assert!(bn254.g1_is_on_curve(&zero)); + assert!(bn254.g1_is_on_curve(&one)); + assert!(!bn254.g1_is_on_curve(¬_on_curve)); +} + +#[test] +fn test_g1_msm() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + let one = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002 + )); + let zero = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + )); + + // 1*G + 0*G = G + let vp: Vec = vec![&env, one.clone(), one.clone()]; + let vs: Vec = vec![ + &env, + U256::from_u32(&env, 1).into(), + U256::from_u32(&env, 0).into(), + ]; + let res = bn254.g1_msm(vp, vs); + assert_eq!(res, one); + + // 0*G + 0*G = 0 + let vp: Vec = vec![&env, one.clone(), one.clone()]; + let vs: Vec = vec![ + &env, + U256::from_u32(&env, 0).into(), + U256::from_u32(&env, 0).into(), + ]; + let res = bn254.g1_msm(vp, vs); + assert_eq!(res, zero); +} + +#[test] +#[should_panic(expected = "HostError: Error(Crypto, InvalidInput)")] +fn test_g1_msm_mismatched_lengths() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + let one = Bn254G1Affine::from_bytes(bytesn!( + &env, + 0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002 + )); + let vp: Vec = vec![&env, one.clone(), one.clone()]; + let vs: Vec = vec![&env, U256::from_u32(&env, 1).into()]; + bn254.g1_msm(vp, vs); +} + +#[test] +#[should_panic(expected = "HostError: Error(Crypto, InvalidInput)")] +fn test_g1_msm_empty_vectors() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + let vp: Vec = vec![&env]; + let vs: Vec = vec![&env]; + bn254.g1_msm(vp, vs); +} + +#[test] +fn test_fr_arithmetic() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + + // BN254 scalar field modulus + let modulus = U256::from_be_bytes( + &env, + &bytes!( + &env, + 0x30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001 + ), + ); + + // add + assert_eq!( + bn254.fr_add( + &U256::from_u32(&env, 2).into(), + &U256::from_u32(&env, 3).into() + ), + U256::from_u32(&env, 5).into() + ); + + // sub (wraps around modulus) + assert_eq!( + bn254.fr_sub( + &U256::from_u32(&env, 2).into(), + &U256::from_u32(&env, 3).into() + ), + modulus.sub(&U256::from_u32(&env, 1)).into() + ); + + // mul + assert_eq!( + bn254.fr_mul( + &U256::from_u32(&env, 2).into(), + &U256::from_u32(&env, 3).into() + ), + U256::from_u32(&env, 6).into() + ); + + // pow + assert_eq!( + bn254.fr_pow(&U256::from_u32(&env, 5).into(), 2), + U256::from_u32(&env, 25).into() + ); + + // inv: inv(13) * 13 == 1 + let inverse_13 = bn254.fr_inv(&U256::from_u32(&env, 13).into()); + assert_eq!( + bn254.fr_mul(&inverse_13, &U256::from_u32(&env, 13).into()), + U256::from_u32(&env, 1).into() + ); +} + +#[test] +#[should_panic(expected = "HostError: Error(Crypto, InvalidInput)")] +fn test_fr_inv_zero() { + let env = Env::default(); + let bn254 = Bn254::new(&env); + bn254.fr_inv(&U256::from_u32(&env, 0).into()); +} + +#[test] +fn test_fr_operator_traits() { + let env = Env::default(); + + let a: Fr = U256::from_u32(&env, 10).into(); + let b: Fr = U256::from_u32(&env, 3).into(); + + // Add + assert_eq!(a.clone() + b.clone(), U256::from_u32(&env, 13).into()); + + // Sub + assert_eq!(a.clone() - b.clone(), U256::from_u32(&env, 7).into()); + + // Mul + assert_eq!(a.clone() * b.clone(), U256::from_u32(&env, 30).into()); + + // pow convenience method + assert_eq!(b.clone().pow(3), U256::from_u32(&env, 27).into()); + + // inv convenience method: inv(a) * a == 1 + let inv_a = a.clone().inv(); + assert_eq!(inv_a * a, U256::from_u32(&env, 1).into()); +} diff --git a/soroban-sdk/src/tests/num_checked_arith.rs b/soroban-sdk/src/tests/num_checked_arith.rs new file mode 100644 index 000000000..e5f293ec1 --- /dev/null +++ b/soroban-sdk/src/tests/num_checked_arith.rs @@ -0,0 +1,521 @@ +use crate::{Env, I256, U256}; + +// ============================================================ +// U256 checked arithmetic +// ============================================================ + +#[test] +fn test_u256_checked_add_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 6); + let b = U256::from_u32(&env, 3); + assert_eq!(a.checked_add(&b), Some(U256::from_u32(&env, 9))); +} + +#[test] +fn test_u256_checked_add_zero() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + let zero = U256::from_u32(&env, 0); + assert_eq!(a.checked_add(&zero), Some(U256::from_u32(&env, 42))); +} + +#[test] +fn test_u256_checked_add_overflow() { + let env = Env::default(); + let max = U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX); + let one = U256::from_u32(&env, 1); + assert_eq!(max.checked_add(&one), None); +} + +#[test] +fn test_u256_checked_sub_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 10); + let b = U256::from_u32(&env, 3); + assert_eq!(a.checked_sub(&b), Some(U256::from_u32(&env, 7))); +} + +#[test] +fn test_u256_checked_sub_zero_result() { + let env = Env::default(); + let a = U256::from_u32(&env, 5); + assert_eq!(a.checked_sub(&a), Some(U256::from_u32(&env, 0))); +} + +#[test] +fn test_u256_checked_sub_underflow() { + let env = Env::default(); + let a = U256::from_u32(&env, 3); + let b = U256::from_u32(&env, 10); + assert_eq!(a.checked_sub(&b), None); +} + +#[test] +fn test_u256_checked_mul_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 6); + let b = U256::from_u32(&env, 7); + assert_eq!(a.checked_mul(&b), Some(U256::from_u32(&env, 42))); +} + +#[test] +fn test_u256_checked_mul_zero() { + let env = Env::default(); + let a = U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX); + let zero = U256::from_u32(&env, 0); + assert_eq!(a.checked_mul(&zero), Some(U256::from_u32(&env, 0))); +} + +#[test] +fn test_u256_checked_mul_overflow() { + let env = Env::default(); + let max = U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX); + let two = U256::from_u32(&env, 2); + assert_eq!(max.checked_mul(&two), None); +} + +#[test] +fn test_u256_checked_pow_success() { + let env = Env::default(); + let base = U256::from_u32(&env, 3); + assert_eq!(base.checked_pow(4), Some(U256::from_u32(&env, 81))); +} + +#[test] +fn test_u256_checked_pow_zero_exponent() { + let env = Env::default(); + let base = U256::from_u32(&env, 100); + assert_eq!(base.checked_pow(0), Some(U256::from_u32(&env, 1))); +} + +#[test] +fn test_u256_checked_pow_overflow() { + let env = Env::default(); + let base = U256::from_parts(&env, 0, 0, 0, u64::MAX); + assert_eq!(base.checked_pow(256), None); +} + +#[test] +fn test_u256_checked_div_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + let b = U256::from_u32(&env, 6); + assert_eq!(a.checked_div(&b), Some(U256::from_u32(&env, 7))); +} + +#[test] +fn test_u256_checked_div_by_one() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + let one = U256::from_u32(&env, 1); + assert_eq!(a.checked_div(&one), Some(U256::from_u32(&env, 42))); +} + +#[test] +fn test_u256_checked_div_zero_dividend() { + let env = Env::default(); + let zero = U256::from_u32(&env, 0); + let b = U256::from_u32(&env, 5); + assert_eq!(zero.checked_div(&b), Some(U256::from_u32(&env, 0))); +} + +#[test] +fn test_u256_checked_div_by_zero() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + let zero = U256::from_u32(&env, 0); + assert_eq!(a.checked_div(&zero), None); +} + +#[test] +fn test_u256_checked_rem_euclid_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 10); + let b = U256::from_u32(&env, 3); + assert_eq!(a.checked_rem_euclid(&b), Some(U256::from_u32(&env, 1))); +} + +#[test] +fn test_u256_checked_rem_euclid_exact() { + let env = Env::default(); + let a = U256::from_u32(&env, 9); + let b = U256::from_u32(&env, 3); + assert_eq!(a.checked_rem_euclid(&b), Some(U256::from_u32(&env, 0))); +} + +#[test] +fn test_u256_checked_rem_euclid_by_zero() { + let env = Env::default(); + let a = U256::from_u32(&env, 10); + let zero = U256::from_u32(&env, 0); + assert_eq!(a.checked_rem_euclid(&zero), None); +} + +#[test] +fn test_u256_checked_shl_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 1); + assert_eq!(a.checked_shl(8), Some(U256::from_u32(&env, 256))); +} + +#[test] +fn test_u256_checked_shl_zero_shift() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + assert_eq!(a.checked_shl(0), Some(U256::from_u32(&env, 42))); +} + +#[test] +fn test_u256_checked_shl_max_valid() { + let env = Env::default(); + let one = U256::from_u32(&env, 1); + let result = one.checked_shl(255); + // 1 << 255 = high bit of hi_hi set + let expected = U256::from_parts(&env, 1u64 << 63, 0, 0, 0); + assert_eq!(result.unwrap(), expected); +} + +#[test] +fn test_u256_checked_shl_overflow_256() { + let env = Env::default(); + let a = U256::from_u32(&env, 1); + assert_eq!(a.checked_shl(256), None); +} + +#[test] +fn test_u256_checked_shr_success() { + let env = Env::default(); + let a = U256::from_u32(&env, 256); + assert_eq!(a.checked_shr(4), Some(U256::from_u32(&env, 16))); +} + +#[test] +fn test_u256_checked_shr_zero_shift() { + let env = Env::default(); + let a = U256::from_u32(&env, 42); + assert_eq!(a.checked_shr(0), Some(U256::from_u32(&env, 42))); +} + +#[test] +fn test_u256_checked_shr_max_valid() { + let env = Env::default(); + let max = U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX); + assert_eq!(max.checked_shr(255), Some(U256::from_u32(&env, 1))); +} + +#[test] +fn test_u256_checked_shr_overflow_256() { + let env = Env::default(); + let max = U256::from_parts(&env, u64::MAX, u64::MAX, u64::MAX, u64::MAX); + assert_eq!(max.checked_shr(256), None); +} + +// ============================================================ +// I256 checked arithmetic +// ============================================================ + +#[test] +fn test_i256_checked_add_success() { + let env = Env::default(); + let a = I256::from_i32(&env, -6); + let b = I256::from_i32(&env, 3); + assert_eq!(a.checked_add(&b), Some(I256::from_i32(&env, -3))); +} + +#[test] +fn test_i256_checked_add_zero() { + let env = Env::default(); + let a = I256::from_i32(&env, -42); + let zero = I256::from_i32(&env, 0); + assert_eq!(a.checked_add(&zero), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_add_overflow_positive() { + let env = Env::default(); + // I256::MAX = 2^255 - 1 + let max = I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX); + let one = I256::from_i32(&env, 1); + assert_eq!(max.checked_add(&one), None); +} + +#[test] +fn test_i256_checked_add_overflow_negative() { + let env = Env::default(); + // I256::MIN = -2^255 + let min = I256::from_parts(&env, i64::MIN, 0, 0, 0); + let neg_one = I256::from_i32(&env, -1); + assert_eq!(min.checked_add(&neg_one), None); +} + +#[test] +fn test_i256_checked_sub_success() { + let env = Env::default(); + let a = I256::from_i32(&env, 10); + let b = I256::from_i32(&env, 3); + assert_eq!(a.checked_sub(&b), Some(I256::from_i32(&env, 7))); +} + +#[test] +fn test_i256_checked_sub_negative_result() { + let env = Env::default(); + let a = I256::from_i32(&env, 3); + let b = I256::from_i32(&env, 10); + assert_eq!(a.checked_sub(&b), Some(I256::from_i32(&env, -7))); +} + +#[test] +fn test_i256_checked_sub_overflow() { + let env = Env::default(); + let min = I256::from_parts(&env, i64::MIN, 0, 0, 0); + let one = I256::from_i32(&env, 1); + assert_eq!(min.checked_sub(&one), None); +} + +#[test] +fn test_i256_checked_mul_success() { + let env = Env::default(); + let a = I256::from_i32(&env, -6); + let b = I256::from_i32(&env, 7); + assert_eq!(a.checked_mul(&b), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_mul_zero() { + let env = Env::default(); + let a = I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX); + let zero = I256::from_i32(&env, 0); + assert_eq!(a.checked_mul(&zero), Some(I256::from_i32(&env, 0))); +} + +#[test] +fn test_i256_checked_mul_overflow_positive() { + let env = Env::default(); + let max = I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX); + let two = I256::from_i32(&env, 2); + assert_eq!(max.checked_mul(&two), None); +} + +#[test] +fn test_i256_checked_mul_overflow_negative() { + let env = Env::default(); + // I256::MIN * -1 overflows because |I256::MIN| > I256::MAX + let min = I256::from_parts(&env, i64::MIN, 0, 0, 0); + let neg_one = I256::from_i32(&env, -1); + assert_eq!(min.checked_mul(&neg_one), None); +} + +#[test] +fn test_i256_checked_pow_success() { + let env = Env::default(); + let base = I256::from_i32(&env, -3); + assert_eq!(base.checked_pow(3), Some(I256::from_i32(&env, -27))); +} + +#[test] +fn test_i256_checked_pow_even_exponent() { + let env = Env::default(); + let base = I256::from_i32(&env, -2); + assert_eq!(base.checked_pow(4), Some(I256::from_i32(&env, 16))); +} + +#[test] +fn test_i256_checked_pow_zero_exponent() { + let env = Env::default(); + let base = I256::from_i32(&env, -100); + assert_eq!(base.checked_pow(0), Some(I256::from_i32(&env, 1))); +} + +#[test] +fn test_i256_checked_pow_overflow() { + let env = Env::default(); + let base = I256::from_parts(&env, 0, 0, 0, i64::MAX as u64); + assert_eq!(base.checked_pow(256), None); +} + +#[test] +fn test_i256_checked_div_success() { + let env = Env::default(); + let a = I256::from_i32(&env, -42); + let b = I256::from_i32(&env, 6); + assert_eq!(a.checked_div(&b), Some(I256::from_i32(&env, -7))); +} + +#[test] +fn test_i256_checked_div_by_one() { + let env = Env::default(); + let a = I256::from_i32(&env, -42); + let one = I256::from_i32(&env, 1); + assert_eq!(a.checked_div(&one), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_div_zero_dividend() { + let env = Env::default(); + let zero = I256::from_i32(&env, 0); + let b = I256::from_i32(&env, 5); + assert_eq!(zero.checked_div(&b), Some(I256::from_i32(&env, 0))); +} + +#[test] +fn test_i256_checked_div_by_neg_one() { + let env = Env::default(); + let a = I256::from_i32(&env, 42); + let neg_one = I256::from_i32(&env, -1); + assert_eq!(a.checked_div(&neg_one), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_div_by_zero() { + let env = Env::default(); + let a = I256::from_i32(&env, 42); + let zero = I256::from_i32(&env, 0); + assert_eq!(a.checked_div(&zero), None); +} + +#[test] +fn test_i256_checked_div_min_by_neg_one() { + let env = Env::default(); + let min = I256::min_value(&env); + let neg_one = I256::from_i32(&env, -1); + assert_eq!(min.checked_div(&neg_one), None); +} + +#[test] +fn test_i256_min_value_matches_from_bytes() { + let env = Env::default(); + // I256::MIN = -2^255 = 0x8000...0000 in two's complement big-endian + let mut min_bytes = [0u8; 32]; + min_bytes[0] = 0x80; + let from_bytes = I256::from_be_bytes(&env, &crate::Bytes::from_array(&env, &min_bytes)); + assert_eq!(I256::min_value(&env), from_bytes); +} + +#[test] +fn test_i256_checked_rem_euclid_success() { + let env = Env::default(); + let a = I256::from_i32(&env, -10); + let b = I256::from_i32(&env, 3); + // Euclidean remainder is always non-negative for positive divisor + assert_eq!(a.checked_rem_euclid(&b), Some(I256::from_i32(&env, 2))); +} + +#[test] +fn test_i256_checked_rem_euclid_exact() { + let env = Env::default(); + let a = I256::from_i32(&env, 9); + let b = I256::from_i32(&env, 3); + assert_eq!(a.checked_rem_euclid(&b), Some(I256::from_i32(&env, 0))); +} + +#[test] +fn test_i256_checked_rem_euclid_by_zero() { + let env = Env::default(); + let a = I256::from_i32(&env, 10); + let zero = I256::from_i32(&env, 0); + assert_eq!(a.checked_rem_euclid(&zero), None); +} + +#[test] +fn test_i256_checked_rem_euclid_min_by_neg_one() { + let env = Env::default(); + // I256::MIN % -1 overflows because rem_euclid internally performs a division + let min = I256::min_value(&env); + let neg_one = I256::from_i32(&env, -1); + assert_eq!(min.checked_rem_euclid(&neg_one), None); +} + +#[test] +fn test_i256_checked_shl_success() { + let env = Env::default(); + let a = I256::from_i32(&env, 1); + assert_eq!(a.checked_shl(8), Some(I256::from_i32(&env, 256))); +} + +#[test] +fn test_i256_checked_shl_zero_shift() { + let env = Env::default(); + let a = I256::from_i32(&env, -42); + assert_eq!(a.checked_shl(0), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_shl_overflow_256() { + let env = Env::default(); + let a = I256::from_i32(&env, 1); + assert_eq!(a.checked_shl(256), None); +} + +#[test] +fn test_i256_checked_shr_success() { + let env = Env::default(); + let a = I256::from_i32(&env, 256); + assert_eq!(a.checked_shr(4), Some(I256::from_i32(&env, 16))); +} + +#[test] +fn test_i256_checked_shr_zero_shift() { + let env = Env::default(); + let a = I256::from_i32(&env, -42); + assert_eq!(a.checked_shr(0), Some(I256::from_i32(&env, -42))); +} + +#[test] +fn test_i256_checked_shr_negative() { + let env = Env::default(); + let a = I256::from_i32(&env, -256); + // Arithmetic right shift preserves sign + assert_eq!(a.checked_shr(4), Some(I256::from_i32(&env, -16))); +} + +#[test] +fn test_i256_checked_shr_max_valid() { + let env = Env::default(); + // I256::MAX >> 255 == 0 (sign bit is 0, arithmetic shift fills with 0s) + let max = I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX); + assert_eq!(max.checked_shr(255), Some(I256::from_i32(&env, 0))); +} + +#[test] +fn test_i256_checked_shr_overflow_256() { + let env = Env::default(); + let max = I256::from_parts(&env, i64::MAX, u64::MAX, u64::MAX, u64::MAX); + assert_eq!(max.checked_shr(256), None); +} + +// ============================================================ +// Consistency: checked vs unchecked produce same result on success +// ============================================================ + +#[test] +fn test_u256_checked_matches_unchecked() { + let env = Env::default(); + let a = U256::from_u32(&env, 100); + let b = U256::from_u32(&env, 37); + + assert_eq!(a.checked_add(&b).unwrap(), a.add(&b)); + assert_eq!(a.checked_sub(&b).unwrap(), a.sub(&b)); + assert_eq!(a.checked_mul(&b).unwrap(), a.mul(&b)); + assert_eq!(a.checked_pow(3).unwrap(), a.pow(3)); + assert_eq!(a.checked_div(&b).unwrap(), a.div(&b)); + assert_eq!(a.checked_rem_euclid(&b).unwrap(), a.rem_euclid(&b)); + assert_eq!(a.checked_shl(3).unwrap(), a.shl(3)); + assert_eq!(a.checked_shr(3).unwrap(), a.shr(3)); +} + +#[test] +fn test_i256_checked_matches_unchecked() { + let env = Env::default(); + let a = I256::from_i32(&env, -50); + let b = I256::from_i32(&env, 13); + + assert_eq!(a.checked_add(&b).unwrap(), a.add(&b)); + assert_eq!(a.checked_sub(&b).unwrap(), a.sub(&b)); + assert_eq!(a.checked_mul(&b).unwrap(), a.mul(&b)); + assert_eq!(a.checked_pow(2).unwrap(), a.pow(2)); + assert_eq!(a.checked_div(&b).unwrap(), a.div(&b)); + assert_eq!(a.checked_rem_euclid(&b).unwrap(), a.rem_euclid(&b)); + assert_eq!(a.checked_shl(3).unwrap(), a.shl(3)); + assert_eq!(a.checked_shr(3).unwrap(), a.shr(3)); +} diff --git a/soroban-sdk/src/testutils.rs b/soroban-sdk/src/testutils.rs index 93080a630..2580fcfe9 100644 --- a/soroban-sdk/src/testutils.rs +++ b/soroban-sdk/src/testutils.rs @@ -277,7 +277,7 @@ pub use crate::env::internal::LedgerInfo; /// Returns a default `LedgerInfo` suitable for testing. pub(crate) fn default_ledger_info() -> LedgerInfo { LedgerInfo { - protocol_version: 25, + protocol_version: 26, sequence_number: 0, timestamp: 0, network_id: [0; 32], diff --git a/soroban-sdk/src/token.rs b/soroban-sdk/src/token.rs index 2aecf68ce..c9d2bd4db 100644 --- a/soroban-sdk/src/token.rs +++ b/soroban-sdk/src/token.rs @@ -469,4 +469,23 @@ pub trait StellarAssetInterface { /// Emits an event with topics `["clawback", admin: Address, to: Address], /// data = amount: i128` fn clawback(env: Env, from: Address, amount: i128); + + /// Creates this contract asset's unlimited trustline for the provided + /// address. + /// + /// This is a no-op if the input address is a C-address, or if the + /// provided G-address already has the respective trustline. + /// + /// If the trustline is actually created, this will require authorization + /// from `addr` (i.e. `addr.require_auth` will be called). + /// + /// # Arguments + /// + /// * `addr` - The address for which a trustline will be created. + /// + /// # Panics + /// + /// Panics during trustline creation if the asset issuer does not exist, + /// or when a new trustline cannot be created. + fn trust(env: Env, addr: Address); } diff --git a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_asset.1.json b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_asset.1.json index 698f26b84..6f5714021 100644 --- a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_asset.1.json +++ b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_asset.1.json @@ -26,7 +26,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_native.1.json b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_native.1.json index d3408012b..f4cbd1584 100644 --- a/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_native.1.json +++ b/soroban-sdk/test_snapshots/tests/address/test_get_existing_contract_address_executable_native.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", 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 6e1db6512..c2c658bfd 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 @@ -6,7 +6,7 @@ }, "auth": [], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -47,7 +47,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "8d628a321427edfff529b77997d15aaf6427664924d3173956c78abc76c0ca54" + "wasm": "082ef6678547237e331161a8487a2eb11aa037114fde60f36dae3455ad72b4d3" }, "storage": null } @@ -81,8 +81,8 @@ } } }, - "hash": "8d628a321427edfff529b77997d15aaf6427664924d3173956c78abc76c0ca54", - "code": "0061736d01000000012e0860017e017e60037e7e7e017e60047e7e7e7e017e60027e7e017e60027f7e0060027f7f0060027f7f017f600000022b070176013300000162016d0001016d01610002017601680001016901320000017601310003016901310000030908040506040503070705030100110621047f01418080c0000b7f0041cc80c0000b7f0041cc80c0000b7f0041d080c0000b072f05066d656d6f7279020003616464000c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ad90d08d30604017f017e027f017e23808080800041c0006b220224808080800002400240200142ff018342cb00510d00200041043a00000c010b200110808080800021032002410036021020022001370308200220034220883e0214200241186a200241086a1088808080000240024002400240200229031822014202510d002001a74101710d00024020022903202201a741ff0171220441ca00460d002004410e470d010b02400240024002402001419080c08000ad4220864204844284808080c000108180808000422088a70e0400010203050b200228021020022802141089808080000d04410021050c050b2002280210200228021410898080800041014b0d03200241186a200241086a108880808000200229031822014202510d032001a74101710d0320022903202101410021040240034020044118460d01200241186a20046a4202370300200441086a21040c000b0b200142ff018342cc00520d03200141b480c08000ad422086420484200241186aad4220864204844284808080301082808080001a200241306a2002290318108a8080800020022802300d0320022903382103200241306a2002290320108a8080800020022802300d032002290328220642ff018342cb00520d0320022903382101410121050c040b2002280210200228021410898080800041014b0d02200241186a200241086a108880808000200229031822014202510d022001a74101710d022002290320220142ff01834204520d02410a410f41092001422088a72204410f461b2004410a461b22044109460d02410221050c040b2002280210200228021410898080800041014b0d01200241186a200241086a108880808000200229031822014202510d012001a74101710d012002290320220142ff018342cb00520d01410021040240034020044110460d01200241306a20046a4202370300200441086a21040c000b0b2001200241306aad4220864204844284808080201083808080001a200241186a2002290330108a8080800020022802184101460d012002290338220142ff018342cb00520d0120022903202103410321050c020b200041043a00000c030b200041043a00000c020b0b200020063703182000200137031020002003370308200020043a0001200020053a00000b200241c0006a2480808080000b4a02017e017f42022102024020012802082203200128020c4f0d00200020012903002003ad4220864204841085808080003703082001200341016a360208420021020b200020023703000b1900024020012000490d00200120006b0f0b108d80808000000b5d02017f017e024002402001a741ff0171220241c100460d00024020024107460d00420121034283908080800121010c020b20014208872101420021030c010b42002103200110848080800021010b20002003370300200020013703080b7803017f017e017f23808080800041106b220224808080800042022103024020012802082204200128020c4f0d00200220012903002004ad422086420484108580808000108a8080800020022903002103200020022903083703082001200441016a3602080b20002003370300200241106a2480808080000bb70404027f027e017f057e23808080800041306b22022480808080002002200010878080800002400240024020022d000022034104460d002002290310210020022903082104200231000121052002200110878080800020022d000022064104460d002002290310210720022903082108200231000121094200210a4200210b024002400240024020030e0405020100050b200010808080800021012002410036022820022000370320200220014220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0620022903082201420053200020017c2201200053470d06200121000c000b0b2005210b0c030b2000420053200420007c220b20045373450d020c030b2000420053200420007c220b20045373450d010c020b000b0240024002400240024020060e0404020100040b200710808080800021002002410036022820022007370320200220004220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0520022903082201420053200020017c2201200053470d05200121000c000b0b2009210a0c020b2007420053200820077c220a200853730d020c010b2000420053200820007c220a200853730d010b200a420053200b200a7c2200200b53730d000240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010868080800021000b200241306a24808080800020000f0b108d80808000000b0900108e80808000000b0300000b0b550100418080c0000b4c556474415564744255647443556474440000100004000000040010000400000008001000040000000c001000040000006162630030001000010000003100100001000000320010000100000000cf030e636f6e74726163747370656376300000000000000000000000036164640000000002000000000000000161000000000007d000000007556474456e756d00000000000000000162000000000007d000000007556474456e756d00000000010000000700000002000000000000000000000007556474456e756d0000000004000000000000000000000004556474410000000100000000000000045564744200000001000007d0000000095564745374727563740000000000000100000000000000045564744300000001000007d000000008556474456e756d320000000100000000000000045564744400000001000007d0000000085564745475706c6500000003000000000000000000000008556474456e756d32000000020000000000000001410000000000000a0000000000000001420000000000000f000000010000000000000000000000085564745475706c650000000200000000000000013000000000000007000000000000000131000000000003ea0000000700000001000000000000000000000009556474537472756374000000000000030000000000000001610000000000000700000000000000016200000000000007000000000000000163000000000003ea00000007001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "082ef6678547237e331161a8487a2eb11aa037114fde60f36dae3455ad72b4d3", + "code": "0061736d01000000012e0860017e017e60037e7e7e017e60047e7e7e7e017e60027e7e017e60027f7e0060027f7f0060027f7f017f600000022b070176013300000162016d0001016d01610002017601680001016901320000017601310003016901310000030908040506040503070705030100110621047f01418080c0000b7f0041cc80c0000b7f0041cc80c0000b7f0041d080c0000b072f05066d656d6f7279020003616464000c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ad90d08d30604017f017e027f017e23808080800041c0006b220224808080800002400240200142ff018342cb00510d00200041043a00000c010b200110808080800021032002410036021020022001370308200220034220883e0214200241186a200241086a1088808080000240024002400240200229031822014202510d002001a74101710d00024020022903202201a741ff0171220441ca00460d002004410e470d010b02400240024002402001419080c08000ad4220864204844284808080c000108180808000422088a70e0400010203050b200228021020022802141089808080000d04410021050c050b2002280210200228021410898080800041014b0d03200241186a200241086a108880808000200229031822014202510d032001a74101710d0320022903202101410021040240034020044118460d01200241186a20046a4202370300200441086a21040c000b0b200142ff018342cc00520d03200141b480c08000ad422086420484200241186aad4220864204844284808080301082808080001a200241306a2002290318108a8080800020022802300d0320022903382103200241306a2002290320108a8080800020022802300d032002290328220642ff018342cb00520d0320022903382101410121050c040b2002280210200228021410898080800041014b0d02200241186a200241086a108880808000200229031822014202510d022001a74101710d022002290320220142ff01834204520d02410a410f41092001422088a72204410f461b2004410a461b22044109460d02410221050c040b2002280210200228021410898080800041014b0d01200241186a200241086a108880808000200229031822014202510d012001a74101710d012002290320220142ff018342cb00520d01410021040240034020044110460d01200241306a20046a4202370300200441086a21040c000b0b2001200241306aad4220864204844284808080201083808080001a200241186a2002290330108a8080800020022802184101460d012002290338220142ff018342cb00520d0120022903202103410321050c020b200041043a00000c030b200041043a00000c020b0b200020063703182000200137031020002003370308200020043a0001200020053a00000b200241c0006a2480808080000b4a02017e017f42022102024020012802082203200128020c4f0d00200020012903002003ad4220864204841085808080003703082001200341016a360208420021020b200020023703000b1900024020012000490d00200120006b0f0b108d80808000000b5d02017f017e024002402001a741ff0171220241c100460d00024020024107460d00420121034283908080800121010c020b20014208872101420021030c010b42002103200110848080800021010b20002003370300200020013703080b7803017f017e017f23808080800041106b220224808080800042022103024020012802082204200128020c4f0d00200220012903002004ad422086420484108580808000108a8080800020022903002103200020022903083703082001200441016a3602080b20002003370300200241106a2480808080000bb70404027f027e017f057e23808080800041306b22022480808080002002200010878080800002400240024020022d000022034104460d002002290310210020022903082104200231000121052002200110878080800020022d000022064104460d002002290310210720022903082108200231000121094200210a4200210b024002400240024020030e0405020100050b200010808080800021012002410036022820022000370320200220014220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0620022903082201420053200020017c2201200053470d06200121000c000b0b2005210b0c030b2000420053200420007c220b20045373450d020c030b2000420053200420007c220b20045373450d010c020b000b0240024002400240024020060e0404020100040b200710808080800021002002410036022820022007370320200220004220883e022c4200210003402002200241206a108b80808000200229030022014202510d032001a74101710d0520022903082201420053200020017c2201200053470d05200121000c000b0b2009210a0c020b2007420053200820077c220a200853730d020c010b2000420053200820007c220a200853730d010b200a420053200b200a7c2200200b53730d000240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010868080800021000b200241306a24808080800020000f0b108d80808000000b0900108e80808000000b0300000b0b550100418080c0000b4c556474415564744255647443556474440000100004000000040010000400000008001000040000000c001000040000006162630030001000010000003100100001000000320010000100000000cf030e636f6e74726163747370656376300000000000000000000000036164640000000002000000000000000161000000000007d000000007556474456e756d00000000000000000162000000000007d000000007556474456e756d00000000010000000700000002000000000000000000000007556474456e756d0000000004000000000000000000000004556474410000000100000000000000045564744200000001000007d0000000095564745374727563740000000000000100000000000000045564744300000001000007d000000008556474456e756d320000000100000000000000045564744400000001000007d0000000085564745475706c6500000003000000000000000000000008556474456e756d32000000020000000000000001410000000000000a0000000000000001420000000000000f000000010000000000000000000000085564745475706c650000000200000000000000013000000000000007000000000000000131000000000003ea0000000700000001000000000000000000000009556474537472756374000000000000030000000000000001610000000000000700000000000000016200000000000007000000000000000163000000000003ea00000007001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "ext": "v0" diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_10_one/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_10_one/test.1.json index e780828a0..32f132139 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_10_one/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_10_one/test.1.json @@ -60,7 +60,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_15_one_repeat/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_15_one_repeat/test.1.json index 14d1a14d6..04b92c409 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_15_one_repeat/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_15_one_repeat/test.1.json @@ -58,7 +58,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_17_no_consume_requirement/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_17_no_consume_requirement/test.1.json index d67ac1e57..22cf584b3 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_17_no_consume_requirement/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_17_no_consume_requirement/test.1.json @@ -35,7 +35,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test.1.json index ff8bd8bd5..c28f7540b 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test.1.json @@ -29,7 +29,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test_auth_tree.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test_auth_tree.1.json index a665d81f7..1c4ad1cfe 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test_auth_tree.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_20_deep_one_address/test_auth_tree.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test.1.json index 8a96778f9..6dafb240e 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test.1.json @@ -47,7 +47,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test_auth_tree.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test_auth_tree.1.json index a665d81f7..1c4ad1cfe 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test_auth_tree.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_30_deep_one_address_repeat/test_auth_tree.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test.1.json index 8a96778f9..6dafb240e 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test.1.json @@ -47,7 +47,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test_auth_tree.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test_auth_tree.1.json index a665d81f7..1c4ad1cfe 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test_auth_tree.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_35_deep_one_address_repeat_grouped/test_auth_tree.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_as_tree.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_as_tree.1.json index 501ca39e2..fe7ea28cb 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_as_tree.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_as_tree.1.json @@ -44,7 +44,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_not_allowed_with_separated_tree.1.json b/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_not_allowed_with_separated_tree.1.json index 95dd5b179..59afb3ad4 100644 --- a/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_not_allowed_with_separated_tree.1.json +++ b/soroban-sdk/test_snapshots/tests/auth/auth_40_multi_one_address/test_auth_not_allowed_with_separated_tree.1.json @@ -12,7 +12,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_add_i32/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_add_i32/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_add_i32/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_add_i32/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_assert/test_invoke_expect_error.1.json b/soroban-sdk/test_snapshots/tests/contract_assert/test_invoke_expect_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_assert/test_invoke_expect_error.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_assert/test_invoke_expect_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_assert/test_try_invoke.1.json b/soroban-sdk/test_snapshots/tests/contract_assert/test_try_invoke.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_assert/test_try_invoke.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_assert/test_try_invoke.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_custom_account_impl/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_custom_account_impl/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_custom_account_impl/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_custom_account_impl/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_docs/fn_/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_docs/fn_/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_docs/fn_/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_docs/fn_/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_duration/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_duration/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_duration/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_duration/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map.1.json index 6867d0b88..8bd4da9de 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_no_data.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_no_data.1.json index fb6853a72..3f872b762 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_no_data.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_no_data.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_sorts_fields.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_sorts_fields.1.json index 437102998..7cf6c1282 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_sorts_fields.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_map_sorts_fields.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value.1.json index cd09d40d8..752990e41 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value_no_data.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value_no_data.1.json index 53bf467d2..57710be40 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value_no_data.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_single_value_no_data.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec.1.json index 8af7c1802..fd4a6b683 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_no_data.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_no_data.1.json index 05a735e50..f71ef476f 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_no_data.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_no_data.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_preserves_field_order.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_preserves_field_order.1.json index aabefcba3..c19135269 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_preserves_field_order.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_data_vec_preserves_field_order.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_defaults.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_defaults.1.json index 8c191de1d..bcba456df 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_defaults.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_defaults.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_event_comparison_tuple_vec.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_event_comparison_tuple_vec.1.json index 6b52e6bf9..05c313139 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_event_comparison_tuple_vec.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_event_comparison_tuple_vec.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_events_for_diff_contracts.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_events_for_diff_contracts.1.json index 4150577d9..09da94e04 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_events_for_diff_contracts.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_events_for_diff_contracts.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_no_prefix_topics.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_no_prefix_topics.1.json index 0ac7fbe47..ee2cb233c 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_no_prefix_topics.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_no_prefix_topics.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics.1.json index 4054b5ead..d36595603 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics_no_data.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics_no_data.1.json index f51fc6aaa..1902851d0 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics_no_data.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_no_topics_no_data.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_prefix_topics.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_prefix_topics.1.json index 7cd07b827..88a7b494a 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_prefix_topics.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_prefix_topics.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_event/test_ref_fields.1.json b/soroban-sdk/test_snapshots/tests/contract_event/test_ref_fields.1.json index 6867d0b88..8bd4da9de 100644 --- a/soroban-sdk/test_snapshots/tests/contract_event/test_ref_fields.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_event/test_ref_fields.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_fn/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_fn/test_functional.1.json index 472efde9d..2e8d29d5c 100644 --- a/soroban-sdk/test_snapshots/tests/contract_fn/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_fn/test_functional.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_error.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_error.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_string.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_string.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_string.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke/test_invoke_expect_string.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke/test_try_invoke.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke/test_try_invoke.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke/test_try_invoke.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke/test_try_invoke.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_correct_arg_count.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_correct_arg_count.1.json index 9b985d209..d9ebb12f3 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_correct_arg_count.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_correct_arg_count.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_few_args.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_few_args.1.json index 9b985d209..d9ebb12f3 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_few_args.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_few_args.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_many_args.1.json b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_many_args.1.json index 9b985d209..d9ebb12f3 100644 --- a/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_many_args.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_invoke_arg_count/test_too_many_args.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_overlapping_type_fn_names/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_overlapping_type_fn_names/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_overlapping_type_fn_names/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_overlapping_type_fn_names/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_snapshot/test.1.json b/soroban-sdk/test_snapshots/tests/contract_snapshot/test.1.json index 7d18502ee..cd836d532 100644 --- a/soroban-sdk/test_snapshots/tests/contract_snapshot/test.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_snapshot/test.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_snapshot/test.2.json b/soroban-sdk/test_snapshots/tests/contract_snapshot/test.2.json index 7db75d03f..9c34854a7 100644 --- a/soroban-sdk/test_snapshots/tests/contract_snapshot/test.2.json +++ b/soroban-sdk/test_snapshots/tests/contract_snapshot/test.2.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_deployer_extensions_with_limits.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_deployer_extensions_with_limits.1.json new file mode 100644 index 000000000..4bc7050ba --- /dev/null +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_deployer_extensions_with_limits.1.json @@ -0,0 +1,170 @@ +{ + "generators": { + "address": 2, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [], + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 26, + "sequence_number": 1000, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 100, + "min_temp_entry_ttl": 10, + "max_entry_ttl": 20001, + "ledger_entries": [ + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "i32": 1 + }, + "durability": "persistent", + "val": { + "i32": 3 + } + } + }, + "ext": "v0" + }, + "live_until": 1099 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "i32": 2 + }, + "durability": "temporary", + "val": { + "i32": 4 + } + } + }, + "ext": "v0" + }, + "live_until": 1009 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + "live_until": 1599 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "i32": 1 + }, + "durability": "persistent", + "val": { + "i32": 3 + } + } + }, + "ext": "v0" + }, + "live_until": 1099 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": { + "i32": 2 + }, + "durability": "temporary", + "val": { + "i32": 4 + } + } + }, + "ext": "v0" + }, + "live_until": 1009 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFCT4", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + "live_until": 1099 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + "live_until": 1799 + } + ] + }, + "events": [] +} \ No newline at end of file diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_extend_ttl_with_limits_invalid_max_less_than_min.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_extend_ttl_with_limits_invalid_max_less_than_min.1.json new file mode 100644 index 000000000..df45bba7f --- /dev/null +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_extend_ttl_with_limits_invalid_max_less_than_min.1.json @@ -0,0 +1,89 @@ +{ + "generators": { + "address": 1, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [] + ], + "ledger": { + "protocol_version": 26, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 100, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 20001, + "ledger_entries": [ + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Key" + }, + { + "i32": 11 + } + ] + }, + "durability": "persistent", + "val": { + "i32": 1111 + } + } + }, + "ext": "v0" + }, + "live_until": 99 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + "live_until": 99 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + "live_until": 99 + } + ] + }, + "events": [] +} \ No newline at end of file diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_instance_extend_ttl_with_limits.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_instance_extend_ttl_with_limits.1.json new file mode 100644 index 000000000..9ee413808 --- /dev/null +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_instance_extend_ttl_with_limits.1.json @@ -0,0 +1,73 @@ +{ + "generators": { + "address": 1, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 26, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 100, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 20001, + "ledger_entries": [ + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + "live_until": 20000 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + "live_until": 20000 + } + ] + }, + "events": [] +} \ No newline at end of file diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_persistent_extend_ttl_with_limits.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_persistent_extend_ttl_with_limits.1.json new file mode 100644 index 000000000..dc2ae2257 --- /dev/null +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_persistent_extend_ttl_with_limits.1.json @@ -0,0 +1,101 @@ +{ + "generators": { + "address": 1, + "nonce": 0, + "mux_id": 0 + }, + "auth": [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ], + "ledger": { + "protocol_version": 26, + "sequence_number": 0, + "timestamp": 0, + "network_id": "0000000000000000000000000000000000000000000000000000000000000000", + "base_reserve": 0, + "min_persistent_entry_ttl": 100, + "min_temp_entry_ttl": 16, + "max_entry_ttl": 20001, + "ledger_entries": [ + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": { + "vec": [ + { + "symbol": "Key" + }, + { + "i32": 11 + } + ] + }, + "durability": "persistent", + "val": { + "i32": 1111 + } + } + }, + "ext": "v0" + }, + "live_until": 20000 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_data": { + "ext": "v0", + "contract": "CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD2KM", + "key": "ledger_key_contract_instance", + "durability": "persistent", + "val": { + "contract_instance": { + "executable": { + "wasm": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + "storage": null + } + } + } + }, + "ext": "v0" + }, + "live_until": 99 + }, + { + "entry": { + "last_modified_ledger_seq": 0, + "data": { + "contract_code": { + "ext": "v0", + "hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "code": "" + } + }, + "ext": "v0" + }, + "live_until": 99 + } + ] + }, + "events": [] +} \ No newline at end of file diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_storage.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_storage.1.json index 4514f78ce..a2c391da3 100644 --- a/soroban-sdk/test_snapshots/tests/contract_store/test_storage.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_storage.1.json @@ -42,7 +42,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_store/test_temp_storage_extension_past_max_ttl_panics.1.json b/soroban-sdk/test_snapshots/tests/contract_store/test_temp_storage_extension_past_max_ttl_panics.1.json index 0faaf4b59..af9a84465 100644 --- a/soroban-sdk/test_snapshots/tests/contract_store/test_temp_storage_extension_past_max_ttl_panics.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_store/test_temp_storage_extension_past_max_ttl_panics.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_timepoint/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_timepoint/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_timepoint/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_timepoint/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_enum/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_enum/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_enum/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_enum/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_error.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_error.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_success.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_success.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_success.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_enum_error/test_success.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_option/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_option/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_option/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_option/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_long_names_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_long_names_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_long_names_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_struct/test_long_names_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contract_udt_struct_tuple/test_functional.1.json b/soroban-sdk/test_snapshots/tests/contract_udt_struct_tuple/test_functional.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contract_udt_struct_tuple/test_functional.1.json +++ b/soroban-sdk/test_snapshots/tests/contract_udt_struct_tuple/test_functional.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/contractimpl_trait_call_resolution/calls_trait_fn.1.json b/soroban-sdk/test_snapshots/tests/contractimpl_trait_call_resolution/calls_trait_fn.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/contractimpl_trait_call_resolution/calls_trait_fn.1.json +++ b/soroban-sdk/test_snapshots/tests/contractimpl_trait_call_resolution/calls_trait_fn.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_budget.1.json b/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_budget.1.json index ba420a367..1d59ff987 100644 --- a/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_budget.1.json +++ b/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_budget.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_with_storage.1.json b/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_with_storage.1.json index 6e447f5d3..679afc8bf 100644 --- a/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_with_storage.1.json +++ b/soroban-sdk/test_snapshots/tests/cost_estimate/test_cost_estimate_with_storage.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", 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 8958e1ed1..e4f0e409f 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 @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -74,7 +74,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "8f07fec1c0df75bde153b2c2a721f6c7cb903bc44d357a1521f8c39eb373094f" + "wasm": "1d9f19d20f3d2932f1753ac486e0126db2ca1df4d58ed6ac0c26be6793dc018d" }, "storage": null } @@ -108,8 +108,8 @@ } } }, - "hash": "8f07fec1c0df75bde153b2c2a721f6c7cb903bc44d357a1521f8c39eb373094f", - "code": "0061736d0100000001320960047e7e7e7e017e60017e017e60027e7e017e60037e7f7f0060017f0060027f7e0060017f017e60000060037f7f7f017f026711016d0161000001620138000101630138000101630134000101630165000101630161000101630136000201630163000201630167000201760133000101760131000201620131000001620133000201690161000101780130000201690172000201760167000203131201030405050505060207020207040808080805030100110621047f01418080c0000b7f0041b480c0000b7f00418481c0000b7f00419081c0000b075708066d656d6f727902000c64756d6d795f76657269667900110a66725f7665635f67657400190667315f6d756c001b0667325f6d756c001c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a891712fd0403027f047e017f23808080800041f0016b2201248080808000410021020240034020024128460d01200141086a20026a4202370300200241086a21020c000b0b0240200042ff018342cc00520d002000418c80c08000ad422086420484200141086aad4220864204844284808080d0001080808080001a2001290308220042ff018342c800520d0020001081808080004280808080708342808080808006520d0020014190016a4100413010a0808080001a200020014190016a4130109280808000200141306a20014190016a413010a2808080001a200141306a10938080800020014190016a20012903101094808080002001280290010d00200129039801210320014190016a410041e00010a0808080001a200320014190016a41e000109280808000200141306a20014190016a41e00010a2808080001a200141306a109380808000200141306a41306a10938080800020014190016a20012903181095808080002001280290010d00200129039801210420014190016a20012903201096808080002001280290010d00200129039801210520014190016a20012903281097808080002001280290014101460d00200129039801210620001082808080001083808080001a20031084808080001085808080001a200520041086808080002103200620041087808080002104420221004101210203402000210520024101712107410021022003210020070d000b200120053703900120014190016a1098808080002105420221004101210203402000210320024101712107410021022004210020070d000b2001200337039001200520014190016a1098808080001088808080002100200141f0016a2480808080002000420151ad0f0b000b1f00200042042001ad4220864204842002ad422086420484108b808080001a0b24000240200041d480c080004130109f80808000417f4a0d000f0b410e109e80808000000b4201017e420121020240200142ff018342c800520d002001108180808000428080808070834280808080800c520d0020002001370308420021020b200020023703000ba60102017f017e024002402001a741ff0171220241c600460d00420121032002410c470d010b41b480c08000ad42208642048442848080808004108c80808000108d8080800021030240024002400240200142ce0083420c520d00200342ff0183420c510d010b20012003108e80808000427f550d010c020b20014208882003420888540d010b20012003108f8080800021010b20002001370308420021030b200020033703000b4d01017f23808080800041106b22022480808080002002200110948080800042012101024020022802000d0020002002290308370308420021010b20002001370300200241106a2480808080000b4201017e420121020240200142ff018342c800520d0020011081808080004280808080708342808080808018520d0020002001370308420021020b200020023703000b17002000ad4220864204844284808080101090808080000b870101017f23808080800041106b2202248080808000024002400240200042ff018342cb00520d00200142ff01834204520d0020001089808080004220882001422088580d0120022000200142848080807083108a8080800010958080800020022802004101470d020b000b109a80808000000b20022903082100200241106a24808080800020000b0b00412b109e80808000000b6501017f23808080800041106b220224808080800020022000109680808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081086808080002100200241106a24808080800020000f0b000b6501017f23808080800041106b220224808080800020022000109780808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081087808080002100200241106a24808080800020000f0b000b0300000b0900109d80808000000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030baa0301057f02400240200241104f0d00200021030c010b024020002000410020006b41037122046a22054f0d002004417f6a21062000210302402004450d0020042107200021030340200320013a0000200341016a21032007417f6a22070d000b0b20064107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032005470d000b0b024020052005200220046b2202417c716a22034f0d00200141ff017141818284086c2107034020052007360200200541046a22052003490d000b0b200241037121020b02402003200320026a22074f0d002002417f6a2104024020024107712205450d000340200320013a0000200341016a21032005417f6a22050d000b0b20044107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032007470d000b0b20000bb907010c7f23808080800041106b210302400240200241104f0d00200021040c010b024020002000410020006b41037122056a22064f0d002005417f6a2107200021042001210802402005450d002005210920002104200121080340200420082d00003a0000200841016a2108200441016a21042009417f6a22090d000b0b20074107490d000340200420082d00003a0000200441016a200841016a2d00003a0000200441026a200841026a2d00003a0000200441036a200841036a2d00003a0000200441046a200841046a2d00003a0000200441056a200841056a2d00003a0000200441066a200841066a2d00003a0000200441076a200841076a2d00003a0000200841086a2108200441086a22042006470d000b0b2006200220056b2209417c7122076a210402400240200120056a220841037122010d00200620044f0d0120082101034020062001280200360200200141046a2101200641046a22062004490d000c020b0b410021022003410036020c2003410c6a20017221050240410420016b220a410171450d00200520082d00003a0000410121020b0240200a410271450d00200520026a200820026a2f01003b01000b200820016b21022001410374210b200328020c210502400240200641046a2004490d002006210c0c010b4100200b6b411871210d034020062005200b76200241046a22022802002205200d7472360200200641086a210a200641046a220c2106200a2004490d000b0b41002106200341003a0008200341003a00060240024020014101470d00200341086a210d410021014100210a4100210e0c010b200241056a2d0000210a2003200241046a2d000022013a0008200a410874210a4102210e200341066a210d0b02402008410171450d00200d200241046a200e6a2d00003a000020032d0006411074210620032d000821010b200c200a200672200141ff0171724100200b6b411871742005200b76723602000b20094103712102200820076a21010b02402004200420026a22064f0d002002417f6a2109024020024107712208450d000340200420012d00003a0000200141016a2101200441016a21042008417f6a22080d000b0b20094107490d000340200420012d00003a0000200441016a200141016a2d00003a0000200441026a200141026a2d00003a0000200441036a200141036a2d00003a0000200441046a200141046a2d00003a0000200441056a200141056a2d00003a0000200441066a200141066a2d00003a0000200441076a200141076a2d00003a0000200141086a2101200441086a22042006470d000b0b20000b0e0020002001200210a1808080000b0b8e010100418080c0000b84016670667032667267316732000000100002000000020010000300000005001000020000000700100002000000090010000200000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000011a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab00b7030e636f6e747261637473706563763000000000000000000000000667315f6d756c000000000002000000000000000170000000000003ee000000600000000000000001730000000000000c00000001000003ee0000006000000000000000000000000667325f6d756c000000000002000000000000000170000000000003ee000000c00000000000000001730000000000000c00000001000003ee000000c00000000100000000000000000000000a44756d6d7950726f6f66000000000005000000000000000266700000000003ee00000030000000000000000366703200000003ee000000600000000000000002667200000000000c000000000000000267310000000003ee00000060000000000000000267320000000003ee000000c000000000000000000000000a66725f7665635f676574000000000002000000000000000676616c7565730000000003ea0000000c0000000000000005696e64657800000000000004000000010000000c00000000000000000000000c64756d6d795f76657269667900000001000000000000000570726f6f66000000000007d00000000a44756d6d7950726f6f6600000000000100000001001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "1d9f19d20f3d2932f1753ac486e0126db2ca1df4d58ed6ac0c26be6793dc018d", + "code": "0061736d0100000001320960047e7e7e7e017e60017e017e60027e7e017e60037e7f7f0060017f0060027f7e0060017f017e60000060037f7f7f017f026711016d0161000001620138000101630138000101630134000101630165000101630161000101630136000201630163000201630167000201760133000101760131000201620131000001620133000201690161000101780130000201690172000201760167000203131201030405050505060207020207040808080805030100110621047f01418080c0000b7f0041b480c0000b7f00418481c0000b7f00419081c0000b075708066d656d6f727902000c64756d6d795f76657269667900110a66725f7665635f67657400190667315f6d756c001b0667325f6d756c001c015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a891712fd0403027f047e017f23808080800041f0016b2201248080808000410021020240034020024128460d01200141086a20026a4202370300200241086a21020c000b0b0240200042ff018342cc00520d002000418c80c08000ad422086420484200141086aad4220864204844284808080d0001080808080001a2001290308220042ff018342c800520d0020001081808080004280808080708342808080808006520d0020014190016a4100413010a0808080001a200020014190016a4130109280808000200141306a20014190016a413010a2808080001a200141306a10938080800020014190016a20012903101094808080002001280290010d00200129039801210320014190016a410041e00010a0808080001a200320014190016a41e000109280808000200141306a20014190016a41e00010a2808080001a200141306a109380808000200141306a41306a10938080800020014190016a20012903181095808080002001280290010d00200129039801210420014190016a20012903201096808080002001280290010d00200129039801210520014190016a20012903281097808080002001280290014101460d00200129039801210620001082808080001083808080001a20031084808080001085808080001a200520041086808080002103200620041087808080002104420221004101210203402000210520024101712107410021022003210020070d000b200120053703900120014190016a1098808080002105420221004101210203402000210320024101712107410021022004210020070d000b2001200337039001200520014190016a1098808080001088808080002100200141f0016a2480808080002000420151ad0f0b000b1f00200042042001ad4220864204842002ad422086420484108b808080001a0b24000240200041d480c080004130109f80808000417f4a0d000f0b410e109e80808000000b4201017e420121020240200142ff018342c800520d002001108180808000428080808070834280808080800c520d0020002001370308420021020b200020023703000ba60102017f017e024002402001a741ff0171220241c600460d00420121032002410c470d010b41b480c08000ad42208642048442848080808004108c80808000108d8080800021030240024002400240200142ce0083420c520d00200342ff0183420c510d010b20012003108e80808000427f550d010c020b20014208882003420888540d010b20012003108f8080800021010b20002001370308420021030b200020033703000b4d01017f23808080800041106b22022480808080002002200110948080800042012101024020022802000d0020002002290308370308420021010b20002001370300200241106a2480808080000b4201017e420121020240200142ff018342c800520d0020011081808080004280808080708342808080808018520d0020002001370308420021020b200020023703000b17002000ad4220864204844284808080101090808080000b870101017f23808080800041106b2202248080808000024002400240200042ff018342cb00520d00200142ff01834204520d0020001089808080004220882001422088580d0120022000200142848080807083108a8080800010958080800020022802004101470d020b000b109a80808000000b20022903082100200241106a24808080800020000b0b00412b109e80808000000b6501017f23808080800041106b220224808080800020022000109680808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081086808080002100200241106a24808080800020000f0b000b6501017f23808080800041106b220224808080800020022000109780808000024020022802004101460d00200229030821002002200110958080800020022802004101460d00200020022903081087808080002100200241106a24808080800020000f0b000b0300000b0900109d80808000000b4a01037f4100210302402002450d000240034020002d0000220420012d00002205470d01200041016a2100200141016a21012002417f6a2202450d020c000b0b200420056b21030b20030baa0301057f02400240200241104f0d00200021030c010b024020002000410020006b41037122046a22054f0d002004417f6a21062000210302402004450d0020042107200021030340200320013a0000200341016a21032007417f6a22070d000b0b20064107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032005470d000b0b024020052005200220046b2202417c716a22034f0d00200141ff017141818284086c2107034020052007360200200541046a22052003490d000b0b200241037121020b02402003200320026a22074f0d002002417f6a2104024020024107712205450d000340200320013a0000200341016a21032005417f6a22050d000b0b20044107490d000340200320013a0000200341076a20013a0000200341066a20013a0000200341056a20013a0000200341046a20013a0000200341036a20013a0000200341026a20013a0000200341016a20013a0000200341086a22032007470d000b0b20000bb907010c7f23808080800041106b210302400240200241104f0d00200021040c010b024020002000410020006b41037122056a22064f0d002005417f6a2107200021042001210802402005450d002005210920002104200121080340200420082d00003a0000200841016a2108200441016a21042009417f6a22090d000b0b20074107490d000340200420082d00003a0000200441016a200841016a2d00003a0000200441026a200841026a2d00003a0000200441036a200841036a2d00003a0000200441046a200841046a2d00003a0000200441056a200841056a2d00003a0000200441066a200841066a2d00003a0000200441076a200841076a2d00003a0000200841086a2108200441086a22042006470d000b0b2006200220056b2209417c7122076a210402400240200120056a220841037122010d00200620044f0d0120082101034020062001280200360200200141046a2101200641046a22062004490d000c020b0b410021022003410036020c2003410c6a20017221050240410420016b220a410171450d00200520082d00003a0000410121020b0240200a410271450d00200520026a200820026a2f01003b01000b200820016b21022001410374210b200328020c210502400240200641046a2004490d002006210c0c010b4100200b6b411871210d034020062005200b76200241046a22022802002205200d7472360200200641086a210a200641046a220c2106200a2004490d000b0b41002106200341003a0008200341003a00060240024020014101470d00200341086a210d410021014100210a4100210e0c010b200241056a2d0000210a2003200241046a2d000022013a0008200a410874210a4102210e200341066a210d0b02402008410171450d00200d200241046a200e6a2d00003a000020032d0006411074210620032d000821010b200c200a200672200141ff0171724100200b6b411871742005200b76723602000b20094103712102200820076a21010b02402004200420026a22064f0d002002417f6a2109024020024107712208450d000340200420012d00003a0000200141016a2101200441016a21042008417f6a22080d000b0b20094107490d000340200420012d00003a0000200441016a200141016a2d00003a0000200441026a200141026a2d00003a0000200441036a200141036a2d00003a0000200441046a200141046a2d00003a0000200441056a200141056a2d00003a0000200441066a200141066a2d00003a0000200441076a200141076a2d00003a0000200141086a2101200441086a22042006470d000b0b20000b0e0020002001200210a1808080000b0b8e010100418080c0000b84016670667032667267316732000000100002000000020010000300000005001000020000000700100002000000090010000200000073eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000011a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab00b7030e636f6e747261637473706563763000000000000000000000000667315f6d756c000000000002000000000000000170000000000003ee000000600000000000000001730000000000000c00000001000003ee0000006000000000000000000000000667325f6d756c000000000002000000000000000170000000000003ee000000c00000000000000001730000000000000c00000001000003ee000000c00000000100000000000000000000000a44756d6d7950726f6f66000000000005000000000000000266700000000003ee00000030000000000000000366703200000003ee000000600000000000000002667200000000000c000000000000000267310000000003ee00000060000000000000000267320000000003ee000000c000000000000000000000000a66725f7665635f676574000000000002000000000000000676616c7565730000000003ea0000000c0000000000000005696e64657800000000000004000000010000000c00000000000000000000000c64756d6d795f76657269667900000001000000000000000570726f6f66000000000007d00000000a44756d6d7950726f6f6600000000000100000001001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "ext": "v0" diff --git a/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.1.json b/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.1.json index 4a5a349e4..4013297a1 100644 --- a/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.1.json +++ b/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.2.json b/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.2.json index 4a5a349e4..4013297a1 100644 --- a/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.2.json +++ b/soroban-sdk/test_snapshots/tests/env/default_and_from_snapshot_same_settings.2.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.1.json b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.1.json index 7df823385..8f02f8723 100644 --- a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.1.json +++ b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.2.json b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.2.json index 7df823385..8f02f8723 100644 --- a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.2.json +++ b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.2.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.3.json b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.3.json index 4bd4ca28e..94e550b09 100644 --- a/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.3.json +++ b/soroban-sdk/test_snapshots/tests/env/register_contract_deploys_predictable_contract_ids.3.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_register_restores_auth_before_panics.1.json b/soroban-sdk/test_snapshots/tests/env/test_register_restores_auth_before_panics.1.json index 3f04de61c..94f3cb477 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_register_restores_auth_before_panics.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_register_restores_auth_before_panics.1.json @@ -12,7 +12,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract.1.json index 3c00ae91f..5c26c7a00 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error_unexpected_error.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error_unexpected_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error_unexpected_error.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_contract_error_unexpected_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error_contract_error_expected.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error_contract_error_expected.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error_contract_error_expected.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_host_error_contract_error_expected.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_panic.1.json b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_panic.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_panic.1.json +++ b/soroban-sdk/test_snapshots/tests/env/test_try_as_contract_panic.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/max_ttl/max.1.json b/soroban-sdk/test_snapshots/tests/max_ttl/max.1.json index 3e81c6dce..c70ddd9ad 100644 --- a/soroban-sdk/test_snapshots/tests/max_ttl/max.1.json +++ b/soroban-sdk/test_snapshots/tests/max_ttl/max.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 1, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/muxed_address/test_accept_muxed_address_argument_in_contract.1.json b/soroban-sdk/test_snapshots/tests/muxed_address/test_accept_muxed_address_argument_in_contract.1.json index 92820baf1..a9344e35e 100644 --- a/soroban-sdk/test_snapshots/tests/muxed_address/test_accept_muxed_address_argument_in_contract.1.json +++ b/soroban-sdk/test_snapshots/tests/muxed_address/test_accept_muxed_address_argument_in_contract.1.json @@ -14,7 +14,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_address_backed_muxed_address.1.json b/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_address_backed_muxed_address.1.json index b6dae70b4..896f45ffc 100644 --- a/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_address_backed_muxed_address.1.json +++ b/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_address_backed_muxed_address.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_muxed_address.1.json b/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_muxed_address.1.json index 46b66bb45..c97e55176 100644 --- a/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_muxed_address.1.json +++ b/soroban-sdk/test_snapshots/tests/muxed_address/test_contracttype_struct_with_muxed_address.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_array.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_array.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_array.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_array.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytes.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytes.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytes.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytes.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytesn.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytesn.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytesn.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_bytesn.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_slice.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_slice.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_slice.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_slice.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_u64.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_u64.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_u64.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_fill_u64.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_array.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_array.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_array.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_array.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_bytesn.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_bytesn.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_bytesn.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_bytesn.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_len_bytes.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_len_bytes.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_len_bytes.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_len_bytes.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64_panic_on_invalid_range.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64_panic_on_invalid_range.1.json index d3408012b..f4cbd1584 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64_panic_on_invalid_range.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_range_u64_panic_on_invalid_range.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_u64.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_u64.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_u64.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_gen_u64.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.1.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.2.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.2.json index 53df41d12..3a921a4b4 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.2.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_seed.2.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_prng_shuffle.1.json b/soroban-sdk/test_snapshots/tests/prng/test_prng_shuffle.1.json index 0628e9799..b5b2bc44d 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_prng_shuffle.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_prng_shuffle.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/prng/test_vec_shuffle.1.json b/soroban-sdk/test_snapshots/tests/prng/test_vec_shuffle.1.json index 0628e9799..b5b2bc44d 100644 --- a/soroban-sdk/test_snapshots/tests/prng/test_vec_shuffle.1.json +++ b/soroban-sdk/test_snapshots/tests/prng/test_vec_shuffle.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/storage_testutils/all.1.json b/soroban-sdk/test_snapshots/tests/storage_testutils/all.1.json index ed0143efd..628202dc8 100644 --- a/soroban-sdk/test_snapshots/tests/storage_testutils/all.1.json +++ b/soroban-sdk/test_snapshots/tests/storage_testutils/all.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/storage_testutils/temp_entry_expiration.1.json b/soroban-sdk/test_snapshots/tests/storage_testutils/temp_entry_expiration.1.json index 275437374..d96926c34 100644 --- a/soroban-sdk/test_snapshots/tests/storage_testutils/temp_entry_expiration.1.json +++ b/soroban-sdk/test_snapshots/tests/storage_testutils/temp_entry_expiration.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 1099, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/storage_testutils/test_persistent_entry_automatically_restored.1.json b/soroban-sdk/test_snapshots/tests/storage_testutils/test_persistent_entry_automatically_restored.1.json index e86430f6d..e1e41cc57 100644 --- a/soroban-sdk/test_snapshots/tests/storage_testutils/test_persistent_entry_automatically_restored.1.json +++ b/soroban-sdk/test_snapshots/tests/storage_testutils/test_persistent_entry_automatically_restored.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 10000, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/storage_testutils/ttl_getters.1.json b/soroban-sdk/test_snapshots/tests/storage_testutils/ttl_getters.1.json index 1ff0b96e2..2ba0919f0 100644 --- a/soroban-sdk/test_snapshots/tests/storage_testutils/ttl_getters.1.json +++ b/soroban-sdk/test_snapshots/tests/storage_testutils/ttl_getters.1.json @@ -18,7 +18,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 1000, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/token_client/test_issuer_flags.1.json b/soroban-sdk/test_snapshots/tests/token_client/test_issuer_flags.1.json index ae6487eaf..4a5584f43 100644 --- a/soroban-sdk/test_snapshots/tests/token_client/test_issuer_flags.1.json +++ b/soroban-sdk/test_snapshots/tests/token_client/test_issuer_flags.1.json @@ -26,7 +26,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/token_client/test_mock_all_auth.1.json b/soroban-sdk/test_snapshots/tests/token_client/test_mock_all_auth.1.json index a9a8cda62..212cf787e 100644 --- a/soroban-sdk/test_snapshots/tests/token_client/test_mock_all_auth.1.json +++ b/soroban-sdk/test_snapshots/tests/token_client/test_mock_all_auth.1.json @@ -89,7 +89,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-sdk/test_snapshots/tests/token_client/test_mock_auth.1.json b/soroban-sdk/test_snapshots/tests/token_client/test_mock_auth.1.json index 00ad28381..fc17b8f83 100644 --- a/soroban-sdk/test_snapshots/tests/token_client/test_mock_auth.1.json +++ b/soroban-sdk/test_snapshots/tests/token_client/test_mock_auth.1.json @@ -60,7 +60,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_approve.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_approve.1.json index 7d083aebe..4840936b3 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_approve.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_approve.1.json @@ -57,7 +57,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_burn.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_burn.1.json index 2af53d046..75256651c 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_burn.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_burn.1.json @@ -73,7 +73,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_clawback.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_clawback.1.json index fa7938514..f2dd5cf20 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_clawback.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_clawback.1.json @@ -73,7 +73,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_amount_only.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_amount_only.1.json index f219c676a..52fbf62fa 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_amount_only.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_amount_only.1.json @@ -51,7 +51,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_id.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_id.1.json index d60bb83c2..7723ab120 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_id.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_mint_with_id.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_mint_without_id.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_mint_without_id.1.json index f664eccf3..bf7ef4ab5 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_mint_without_id.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_mint_without_id.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_amount_only.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_amount_only.1.json index ebeb88ef6..9ae2fb606 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_amount_only.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_amount_only.1.json @@ -76,7 +76,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_id.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_id.1.json index ee801520d..bc84fee56 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_id.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_with_id.1.json @@ -76,7 +76,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_without_id.1.json b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_without_id.1.json index f49d61996..fa1124be5 100644 --- a/soroban-token-sdk/test_snapshots/tests/events/test_transfer_without_id.1.json +++ b/soroban-token-sdk/test_snapshots/tests/events/test_transfer_without_id.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/stellar-asset-spec/src/lib.rs b/stellar-asset-spec/src/lib.rs index 81247ed3c..0c48d0527 100644 --- a/stellar-asset-spec/src/lib.rs +++ b/stellar-asset-spec/src/lib.rs @@ -38,6 +38,7 @@ pub(crate) const XDR_INPUT: &[&[u8]] = &[ &soroban_sdk::token::StellarAssetFnSpec::spec_xdr_symbol(), &soroban_sdk::token::StellarAssetFnSpec::spec_xdr_transfer(), &soroban_sdk::token::StellarAssetFnSpec::spec_xdr_transfer_from(), + &soroban_sdk::token::StellarAssetFnSpec::spec_xdr_trust(), &soroban_token_sdk::events::Approve::spec_xdr(), &soroban_token_sdk::events::TransferWithAmountOnly::spec_xdr(), &soroban_token_sdk::events::Transfer::spec_xdr(), @@ -53,7 +54,7 @@ pub(crate) const XDR_INPUT: &[&[u8]] = &[ &SetAuthorized::spec_xdr(), ]; -pub(crate) const XDR_LEN: usize = 8560; +pub(crate) const XDR_LEN: usize = 9128; /// Returns the contract spec for Stellar Asset contract. pub const fn xdr() -> &'static [u8] { diff --git a/stellar-asset-spec/test_snapshots/tests/events/test_set_admin.1.json b/stellar-asset-spec/test_snapshots/tests/events/test_set_admin.1.json index f65cd8cdd..8bd3cb8ed 100644 --- a/stellar-asset-spec/test_snapshots/tests/events/test_set_admin.1.json +++ b/stellar-asset-spec/test_snapshots/tests/events/test_set_admin.1.json @@ -48,7 +48,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/stellar-asset-spec/test_snapshots/tests/events/test_set_authorized.1.json b/stellar-asset-spec/test_snapshots/tests/events/test_set_authorized.1.json index d88e35978..0969718c1 100644 --- a/stellar-asset-spec/test_snapshots/tests/events/test_set_authorized.1.json +++ b/stellar-asset-spec/test_snapshots/tests/events/test_set_authorized.1.json @@ -51,7 +51,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests-expanded/test_associated_types_contracttrait_tests.rs b/tests-expanded/test_associated_types_contracttrait_tests.rs index e6f2d382f..86e5943c4 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\x19\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\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\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_import_contract_tests.rs b/tests-expanded/test_import_contract_tests.rs index 2c6e91dfc..443972700 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\x19\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\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\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 6adb72618..1fc04b36f 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\x19\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\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00"; pub trait Contract { fn add(env: soroban_sdk::Env, a: u64, b: u64) -> u64; } diff --git a/tests-expanded/test_spec_shaking_v1_tests.rs b/tests-expanded/test_spec_shaking_v1_tests.rs index cb3d4313e..5b2efa1b1 100644 --- a/tests-expanded/test_spec_shaking_v1_tests.rs +++ b/tests-expanded/test_spec_shaking_v1_tests.rs @@ -8591,7 +8591,7 @@ impl soroban_sdk::TryFromVal for soroban_sdk } } mod wasm_imported { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\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*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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 trait Contract { fn fn_enum_a(env: soroban_sdk::Env) -> EnumA; fn fn_error_a(env: soroban_sdk::Env, input: u32) -> Result; @@ -20489,7 +20489,7 @@ mod test { use soroban_sdk::xdr::ScSpecEntry; use std::collections::HashSet; use std::vec::Vec; - const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01@\n`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02+\x07\x01x\x011\x00\x00\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01b\x01j\x00\x00\x01m\x019\x00\x02\x01m\x01a\x00\x03\x03\x1b\x1a\x04\x05\x00\x06\x04\x04\x04\x04\x04\x04\x04\x01\x07\x01\x01\x04\x01\x00\x04\x04\x08\t\x01\x04\x01\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x9a\x82\xc0\x00\x0b\x7f\x00A\xb0\x82\xc0\x00\x0b\x7f\x00A\xb0\x82\xc0\x00\x0b\x07\xea\x02\x17\x06memory\x02\x00\x11publish_data_type\x00\x07\x13publish_nested_data\x00\x0b\x14publish_nested_topic\x00\x0c\x11publish_ref_event\x00\x0e\x0epublish_simple\x00\x0f\x12publish_topic_type\x00\x10\nwith_error\x00\x11\x0fwith_lib_struct\x00\x12\x08with_map\x00\x14\x0cwith_non_pub\x00\x15\x12with_non_pub_error\x00\x16\x0bwith_option\x00\x17\nwith_param\x00\x18\x0bwith_result\x00\x19\x0bwith_return\x00\x1a\nwith_tuple\x00\x1d\x11with_tuple_return\x00\x1e\x08with_vec\x00\x1f\x12with_wasm_imported\x00 \x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xe6\x14\x1a\x9a\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\xe8\x80\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\xb0\x81\xc0\x80\x00A\x19\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\xc0\x80\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\x9b\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\x9c\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x0b\xa7\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x81\x80\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\xe3\x81\xc0\x80\x00A\x1b\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xd8\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x9f\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xfe\x81\xc0\x80\x00A\x1c\x10\x88\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x01A\xd8\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x00\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\x9b\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x9c\x81\xc0\x80\x00A\x14\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xb4\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bu\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xe0\x80\xc0\x80\x00A\x08\x10\x88\x80\x80\x80\x00!\x01A\xfc\x80\xc0\x80\x00A\x11\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bi\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xc9\x81\xc0\x80\x00A\x1a\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\t\x00B\x84\x80\x80\x80\xa0\x05\x0b\x83\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa0\x82\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x1a\x0b\x14\x00\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0b]\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00 \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x08\x00B\x84\x80\x80\x80\x10\x0bh\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x80\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xec\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\x93\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\x93\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x81\x80\x80\x80\x00\x1a\x0b \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0bF\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00B\x84\x80\x80\x80\x107\x03\x08A\xa8\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0be\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00A\xb0\x80\xc0\x80\x00A\x01\x10\x9b\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\x9c\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x84\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x0b\xba\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x82\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0be\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00 \x00B\x84\x80\x80\x80\x107\x03\x18A\x9c\x80\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\x9c\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b\x14\x00\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x83\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa0\x82\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x0b\xba\x02\x01\x00A\x80\x80\xc0\x00\x0b\xb0\x02anested\x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x10\x00\x06\x00\x00\x00val\x00\x18\x00\x10\x00\x03\x00\x00\x00data$\x00\x10\x00\x04\x00\x00\x00A\x00\x00\x00\x01\x00\x10\x00\x06\x00\x00\x00xy\x00\x00<\x00\x10\x00\x01\x00\x00\x00=\x00\x10\x00\x01\x00\x00\x00inner\x00\x00\x00P\x00\x10\x00\x05\x00\x00\x00transfercoordsamountn\x00\x10\x00\x06\x00\x00\x00used_event_simplepayload\x8d\x00\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicf1f2\x00\x00\x1a\x01\x10\x00\x02\x00\x00\x00\x1c\x01\x10\x00\x02\x00\x00\x00\x00\xc3)\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\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"; + const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01@\n`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02+\x07\x01x\x011\x00\x00\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01b\x01j\x00\x00\x01m\x019\x00\x02\x01m\x01a\x00\x03\x03\x1b\x1a\x04\x05\x00\x06\x04\x04\x04\x04\x04\x04\x04\x01\x07\x01\x01\x04\x01\x00\x04\x04\x08\t\x01\x04\x01\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x9a\x82\xc0\x00\x0b\x7f\x00A\xb0\x82\xc0\x00\x0b\x7f\x00A\xb0\x82\xc0\x00\x0b\x07\xea\x02\x17\x06memory\x02\x00\x11publish_data_type\x00\x07\x13publish_nested_data\x00\x0b\x14publish_nested_topic\x00\x0c\x11publish_ref_event\x00\x0e\x0epublish_simple\x00\x0f\x12publish_topic_type\x00\x10\nwith_error\x00\x11\x0fwith_lib_struct\x00\x12\x08with_map\x00\x14\x0cwith_non_pub\x00\x15\x12with_non_pub_error\x00\x16\x0bwith_option\x00\x17\nwith_param\x00\x18\x0bwith_result\x00\x19\x0bwith_return\x00\x1a\nwith_tuple\x00\x1d\x11with_tuple_return\x00\x1e\x08with_vec\x00\x1f\x12with_wasm_imported\x00 \x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xe6\x14\x1a\x9a\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\xe8\x80\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\xb0\x81\xc0\x80\x00A\x19\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\xc0\x80\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\x9b\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\x9c\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x0b\xa7\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x81\x80\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\xe3\x81\xc0\x80\x00A\x1b\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xd8\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x9f\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xfe\x81\xc0\x80\x00A\x1c\x10\x88\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x01A\xd8\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x00\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\x9b\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x9c\x81\xc0\x80\x00A\x14\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\x9c\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xb4\x80\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\x94\x81\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bu\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xe0\x80\xc0\x80\x00A\x08\x10\x88\x80\x80\x80\x00!\x01A\xfc\x80\xc0\x80\x00A\x11\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0bi\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xc9\x81\xc0\x80\x00A\x1a\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\xf4\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\t\x00B\x84\x80\x80\x80\xa0\x05\x0b\x83\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa0\x82\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x1a\x0b\x14\x00\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0b]\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00 \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x08\x00B\x84\x80\x80\x80\x10\x0bh\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa8\x80\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xec\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\x93\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\x93\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x81\x80\x80\x80\x00\x1a\x0b \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0bF\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00B\x84\x80\x80\x80\x107\x03\x08A\xa8\x80\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0be\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00 \x00A\xb0\x80\xc0\x80\x00A\x01\x10\x9b\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\x9c\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x84\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x0b\xba\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x82\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\x9c\x80\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0be\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00 \x00B\x84\x80\x80\x80\x107\x03\x18A\x9c\x80\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\x9c\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b\x14\x00\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x83\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xa0\x82\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x0b\xba\x02\x01\x00A\x80\x80\xc0\x00\x0b\xb0\x02anested\x00\x00\x00\x10\x00\x01\x00\x00\x00\x01\x00\x10\x00\x06\x00\x00\x00val\x00\x18\x00\x10\x00\x03\x00\x00\x00data$\x00\x10\x00\x04\x00\x00\x00A\x00\x00\x00\x01\x00\x10\x00\x06\x00\x00\x00xy\x00\x00<\x00\x10\x00\x01\x00\x00\x00=\x00\x10\x00\x01\x00\x00\x00inner\x00\x00\x00P\x00\x10\x00\x05\x00\x00\x00transfercoordsamountn\x00\x10\x00\x06\x00\x00\x00used_event_simplepayload\x8d\x00\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicf1f2\x00\x00\x1a\x01\x10\x00\x02\x00\x00\x00\x1c\x01\x10\x00\x02\x00\x00\x00\x00\xc3)\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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"; extern crate test; #[rustc_test_marker = "test::test_spec_shaking_v1"] #[doc(hidden)] diff --git a/tests-expanded/test_spec_shaking_v1_wasm32v1-none.rs b/tests-expanded/test_spec_shaking_v1_wasm32v1-none.rs index 45f3d173e..07892d798 100644 --- a/tests-expanded/test_spec_shaking_v1_wasm32v1-none.rs +++ b/tests-expanded/test_spec_shaking_v1_wasm32v1-none.rs @@ -2800,7 +2800,7 @@ impl soroban_sdk::TryFromVal for soroban_sdk } } mod wasm_imported { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\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*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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 trait Contract { fn fn_enum_a(env: soroban_sdk::Env) -> EnumA; fn fn_error_a(env: soroban_sdk::Env, input: u32) -> Result; diff --git a/tests-expanded/test_spec_shaking_v2_tests.rs b/tests-expanded/test_spec_shaking_v2_tests.rs index 57d248a89..7003422c8 100644 --- a/tests-expanded/test_spec_shaking_v2_tests.rs +++ b/tests-expanded/test_spec_shaking_v2_tests.rs @@ -8809,7 +8809,7 @@ impl soroban_sdk::TryFromVal for soroban_sdk } } mod wasm_imported { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\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*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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 trait Contract { fn fn_enum_a(env: soroban_sdk::Env) -> EnumA; fn fn_error_a(env: soroban_sdk::Env, input: u32) -> Result; @@ -20990,7 +20990,7 @@ mod test { use soroban_sdk::xdr::ScSpecEntry; use std::collections::HashSet; use std::vec::Vec; - const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01@\n`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02+\x07\x01x\x011\x00\x00\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01b\x01j\x00\x00\x01m\x019\x00\x02\x01m\x01a\x00\x03\x03\x1b\x1a\x04\x05\x00\x06\x04\x04\x04\x04\x04\x04\x04\x01\x07\x01\x01\x04\x01\x00\x04\x04\x08\t\x01\x04\x01\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\xbe\x85\xc0\x00\x0b\x7f\x00A\xe0\x85\xc0\x00\x0b\x7f\x00A\xe0\x85\xc0\x00\x0b\x07\xea\x02\x17\x06memory\x02\x00\x11publish_data_type\x00\x07\x13publish_nested_data\x00\x0b\x14publish_nested_topic\x00\x0c\x11publish_ref_event\x00\x0e\x0epublish_simple\x00\x0f\x12publish_topic_type\x00\x10\nwith_error\x00\x11\x0fwith_lib_struct\x00\x12\x08with_map\x00\x14\x0cwith_non_pub\x00\x15\x12with_non_pub_error\x00\x16\x0bwith_option\x00\x17\nwith_param\x00\x18\x0bwith_result\x00\x19\x0bwith_return\x00\x1a\nwith_tuple\x00\x1d\x11with_tuple_return\x00\x1e\x08with_vec\x00\x1f\x12with_wasm_imported\x00 \x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xa6\x17\x1a\xae\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x8c\x84\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xa8\x81\xc0\x80\x00\x1aA\x00-\x00\xa6\x82\xc0\x80\x00\x1aA\xd4\x84\xc0\x80\x00A\x19\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\xe4\x83\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\x9b\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\x9c\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x0b\xc5\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xa5\x83\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xde\x82\xc0\x80\x00\x1aA\x87\x85\xc0\x80\x00A\x1b\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xfc\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xbd\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8a\x82\xc0\x80\x00\x1aA\x00-\x00\x98\x82\xc0\x80\x00\x1aA\x00-\x00\xec\x82\xc0\x80\x00\x1aA\xa2\x85\xc0\x80\x00A\x1c\x10\x88\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x01A\xfc\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x00\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\xc3\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8c\x81\xc0\x80\x00\x1aA\x00-\x00\xfe\x80\xc0\x80\x00\x1aA\x00-\x00\xd4\x80\xc0\x80\x00\x1aA\x00-\x00\xb6\x81\xc0\x80\x00\x1aA\xc0\x84\xc0\x80\x00A\x14\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xd8\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x7f\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x84\x84\xc0\x80\x00A\x08\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xaa\x80\xc0\x80\x00\x1aA\xa0\x84\xc0\x80\x00A\x11\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b}\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xee\x81\xc0\x80\x00\x1aA\x00-\x00\xb4\x82\xc0\x80\x00\x1aA\xed\x84\xc0\x80\x00A\x1a\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x13\x00A\x00-\x00\x80\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\xa0\x05\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xbe\x85\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xd0\x85\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x1a\x0b(\x00A\x00-\x00\xfa\x82\xc0\x80\x00\x1aA\x00-\x00\x88\x83\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0bg\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xe2\x80\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x12\x00A\x00-\x00\xb8\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\x10\x0br\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xc4\x81\xc0\x80\x00\x1a\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xcc\x83\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x8a\x02\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03A\x00-\x00\xfc\x81\xc0\x80\x00\x1aA\x00-\x00\xc6\x80\xc0\x80\x00\x1a\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xac\x83\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\x93\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\x93\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x81\x80\x80\x80\x00\x1a\x0bA\x00-\x00\xf0\x80\xc0\x80\x00\x1a \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0bZ\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x96\x83\xc0\x80\x00\x1aA\x00-\x00\x80\x80\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x08A\xcc\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8e\x80\xc0\x80\x00\x1a \x00A\xd4\x83\xc0\x80\x00A\x01\x10\x9b\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\x9c\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x84\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x0b\xc4\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\x9a\x81\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x82\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xc2\x82\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x18A\xc0\x83\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\x9c\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b\x1e\x00A\x00-\x00\x9c\x80\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xd0\x82\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xd0\x85\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x0b\xea\x05\x01\x00A\x80\x80\xc0\x00\x0b\xe0\x05SpEcV1Hh\xdc\xaaa\x8d\xf7\rSpEcV1\xe7\xcf\x9b1n\x15\x13\xfeSpEcV1\xe2\x01y\xc9\x9a\xf8\xedtSpEcV1v1\x0eP\xa9C\xc7*SpEcV1\xa9<\xd8+\xb7\xa7\r\x17SpEcV1X\x03\xf6t\xc7\xd0\x01\"SpEcV1\'\xbd_A\r\x9a\x89\x02SpEcV1p\x8c\x0fN!\x082\xd8SpEcV1\xc2\xf4N\xbf\xebqvpSpEcV1K\xdf\'8m/\xe8\x1dSpEcV1@\xb9LO\xf9\xd1\xe8\xe2SpEcV1\xde\x1dMa\x01\xec\xb0ASpEcV1\xc2 \x1b\xdc\xc8gxZSpEcV1[Q+\xe9\xde\xd5\xf2>SpEcV1\xb3/\x97\xd5\x06\xbd3BSpEcV1\x0c\xf0\xf6w\xfd\x1a\x1b\x94SpEcV1\'\xf2\xa2\xb9\xd0)\xc0uSpEcV1\xf5\xd4\x9b\xa3\xccI\x13\xf7SpEcV1\x84\x08Y\xae\xa0\xf128SpEcV16\x83?\xf0\xcdW\xb1/SpEcV1\x94\xc7w/_\xebXcSpEcV1q\xa3z;6\xa6R\x01SpEcV1q^\xe2&\x9di\x9d\x0eSpEcV1Y\xa66\xb3\xecxE\x13SpEcV1\xb6\x1c\xfd\xdfhY-dSpEcV1 \xfbl\x04B\x82\xc0\xb4SpEcV1\xe3\xf2\x9b5%a\xfb\xd6SpEcV1[\xf4R\xdf\xdd\xb4\xb0\xbcSpEcV1\xaaX8\xde\xef\xbb6%SpEcV1k\xe4zxB\xd1+\x02anested\x00\xa4\x01\x10\x00\x01\x00\x00\x00\xa5\x01\x10\x00\x06\x00\x00\x00val\x00\xbc\x01\x10\x00\x03\x00\x00\x00data\xc8\x01\x10\x00\x04\x00\x00\x00A\x00\x00\x00\xa5\x01\x10\x00\x06\x00\x00\x00xy\x00\x00\xe0\x01\x10\x00\x01\x00\x00\x00\xe1\x01\x10\x00\x01\x00\x00\x00inner\x00\x00\x00\xf4\x01\x10\x00\x05\x00\x00\x00transfercoordsamount\x12\x02\x10\x00\x06\x00\x00\x00used_event_simplepayload1\x02\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicSpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11f1f2\xcc\x02\x10\x00\x02\x00\x00\x00\xce\x02\x10\x00\x02\x00\x00\x00\x00\xaf6\x0econtractspecv0\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Fail\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UnusedNonPubError\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UnusedNonPubStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00O\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12rssdk_spec_shaking\x00\x00\x00\x00\x00\x012\x00\x00\x00"; + const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01@\n`\x02~~\x01~`\x01~\x01~`\x03~~~\x01~`\x04~~~~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x05~\x7f\x7f\x7f\x7f\x00`\x03\x7f\x7f\x7f\x00`\x01\x7f\x01~\x02+\x07\x01x\x011\x00\x00\x01i\x012\x00\x01\x01v\x01h\x00\x02\x01v\x01g\x00\x00\x01b\x01j\x00\x00\x01m\x019\x00\x02\x01m\x01a\x00\x03\x03\x1b\x1a\x04\x05\x00\x06\x04\x04\x04\x04\x04\x04\x04\x01\x07\x01\x01\x04\x01\x00\x04\x04\x08\t\x01\x04\x01\x01\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\xbe\x85\xc0\x00\x0b\x7f\x00A\xe0\x85\xc0\x00\x0b\x7f\x00A\xe0\x85\xc0\x00\x0b\x07\xea\x02\x17\x06memory\x02\x00\x11publish_data_type\x00\x07\x13publish_nested_data\x00\x0b\x14publish_nested_topic\x00\x0c\x11publish_ref_event\x00\x0e\x0epublish_simple\x00\x0f\x12publish_topic_type\x00\x10\nwith_error\x00\x11\x0fwith_lib_struct\x00\x12\x08with_map\x00\x14\x0cwith_non_pub\x00\x15\x12with_non_pub_error\x00\x16\x0bwith_option\x00\x17\nwith_param\x00\x18\x0bwith_result\x00\x19\x0bwith_return\x00\x1a\nwith_tuple\x00\x1d\x11with_tuple_return\x00\x1e\x08with_vec\x00\x1f\x12with_wasm_imported\x00 \x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xa6\x17\x1a\xae\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x8c\x84\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xa8\x81\xc0\x80\x00\x1aA\x00-\x00\xa6\x82\xc0\x80\x00\x1aA\xd4\x84\xc0\x80\x00A\x19\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x18 \x00B\x84\x80\x80\x80\x107\x03\x10 \x00A\xe4\x83\xc0\x80\x00A\x02 \x00A\x10jA\x02\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A j$\x80\x80\x80\x80\x00B\x02\x0bE\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00 \x02 \x00 \x01\x10\x9b\x80\x80\x80\x00\x02@ \x02(\x02\x00A\x01G\r\x00\x00\x0b \x02)\x03\x08!\x03 \x02A\x10j$\x80\x80\x80\x80\x00 \x03\x0b\x92\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02 \x017\x03\x08 \x02 \x007\x03\x00A\x00!\x03\x03~\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10j\x10\x9c\x80\x80\x80\x00!\x01 \x02A j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x85\x80\x80\x80\x00\x0b\xc5\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\xa5\x83\xc0\x80\x00A\x06\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xd2\x81\xc0\x80\x00\x1aA\x00-\x00\xe0\x81\xc0\x80\x00\x1aA\x00-\x00\xde\x82\xc0\x80\x00\x1aA\x87\x85\xc0\x80\x00A\x1b\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xfc\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\xbd\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8a\x82\xc0\x80\x00\x1aA\x00-\x00\x98\x82\xc0\x80\x00\x1aA\x00-\x00\xec\x82\xc0\x80\x00\x1aA\xa2\x85\xc0\x80\x00A\x1c\x10\x88\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xa0\x057\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x01A\xfc\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x00\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x06\x00B\x8b\xc8\x01\x0b\xc3\x01\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8c\x81\xc0\x80\x00\x1aA\x00-\x00\xfe\x80\xc0\x80\x00\x1aA\x00-\x00\xd4\x80\xc0\x80\x00\x1aA\x00-\x00\xb6\x81\xc0\x80\x00\x1aA\xc0\x84\xc0\x80\x00A\x14\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80\xb0\x0c7\x03\x08 \x00A\xc0\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x007\x03\x00 \x00A\xd8\x83\xc0\x80\x00A\x01 \x00A\x01\x10\x8a\x80\x80\x80\x007\x03\x08 \x01A\xb8\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x7f\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x84\x84\xc0\x80\x00A\x08\x10\x88\x80\x80\x80\x00!\x01A\x00-\x00\xaa\x80\xc0\x80\x00\x1aA\xa0\x84\xc0\x80\x00A\x11\x10\x88\x80\x80\x80\x00 \x01\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b}\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xee\x81\xc0\x80\x00\x1aA\x00-\x00\xb4\x82\xc0\x80\x00\x1aA\xed\x84\xc0\x80\x00A\x1a\x10\x88\x80\x80\x80\x00B\x84\x80\x80\x80\x10\x10\x89\x80\x80\x80\x00!\x01 \x00\x10\x8d\x80\x80\x80\x007\x03\x08 \x01A\x98\x84\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00\x10\x80\x80\x80\x80\x00\x1a \x00A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x13\x00A\x00-\x00\x80\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\xa0\x05\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xbe\x85\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xd0\x85\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\xcb\x00R\r\x00 \x011\x00\x08B\xcd\x00Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b1\x00\x02@ \x02 \x04F\r\x00\x00\x0b \x00 \x01\xadB \x86B\x04\x84 \x03\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x86\x80\x80\x80\x00\x1a\x0b(\x00A\x00-\x00\xfa\x82\xc0\x80\x00\x1aA\x00-\x00\x88\x83\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcc\x00Q\r\x00\x00\x0bB\x02\x0bg\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xe2\x80\xc0\x80\x00\x1a \x01B\x027\x03\x08\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x08B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x12\x00A\x00-\x00\xb8\x80\xc0\x80\x00\x1aB\x84\x80\x80\x80\x10\x0br\x01\x01\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00-\x00\xc4\x81\xc0\x80\x00\x1a\x02@ \x00B\x02Q\r\x00 \x01B\x027\x03\x08\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xcc\x83\xc0\x80\x00A\x01 \x01A\x08jA\x01\x10\x93\x80\x80\x80\x00 \x01)\x03\x08B\xff\x01\x83B\x04Q\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x8a\x02\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00A\x00!\x03A\x00-\x00\xfc\x81\xc0\x80\x00\x1aA\x00-\x00\xc6\x80\xc0\x80\x00\x1a\x02@\x03@ \x03A\x10F\r\x01 \x02A\x08j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xac\x83\xc0\x80\x00A\x02 \x02A\x08jA\x02\x10\x93\x80\x80\x80\x00 \x021\x00\x08B\x04R\r\x00 \x02B\x027\x03\x18 \x02)\x03\x10\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x02A\x18jA\x01\x10\x93\x80\x80\x80\x00\x02@ \x02)\x03\x18\"\x00\xa7A\xff\x01q\"\x03A\x07F\r\x00 \x03A\xc1\x00G\r\x01 \x00\x10\x81\x80\x80\x80\x00\x1a\x0bA\x00-\x00\xf0\x80\xc0\x80\x00\x1a \x01B\xff\x01\x83B\x04R\r\x00 \x01B \x88\xa7A}jA}K\r\x01\x0b\x00\x0b \x02A j$\x80\x80\x80\x80\x00B\x02\x0bZ\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x96\x83\xc0\x80\x00\x1aA\x00-\x00\x80\x80\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x08A\xcc\x83\xc0\x80\x00A\x01 \x00A\x08jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\x8e\x80\xc0\x80\x00\x1a \x00A\xd4\x83\xc0\x80\x00A\x01\x10\x9b\x80\x80\x80\x00\x02@ \x00(\x02\x00A\x01G\r\x00\x00\x0b \x00)\x03\x08!\x01 \x00B\x84\x80\x80\x80\x107\x03\x08 \x00 \x017\x03\x00 \x00\x10\x9c\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0b\xdb\x01\x02\x01~\x04\x7f\x02@\x02@ \x02A\tK\r\x00B\x00!\x03 \x02!\x04 \x01!\x05\x03@\x02@ \x04\r\x00 \x03B\x08\x86B\x0e\x84!\x03\x0c\x03\x0bA\x01!\x06\x02@ \x05-\x00\x00\"\x07A\xdf\x00F\r\x00\x02@\x02@ \x07APjA\xff\x01qA\nI\r\x00 \x07A\xbf\x7fjA\xff\x01qA\x1aI\r\x01 \x07A\x9f\x7fjA\xff\x01qA\x1aO\r\x04 \x07AEj!\x06\x0c\x02\x0b \x07ARj!\x06\x0c\x01\x0b \x07AKj!\x06\x0b \x03B\x06\x86 \x06\xadB\xff\x01\x83\x84!\x03 \x04A\x7fj!\x04 \x05A\x01j!\x05\x0c\x00\x0b\x0b \x01\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84\x10\x84\x80\x80\x80\x00!\x03\x0b \x00B\x007\x03\x00 \x00 \x037\x03\x08\x0b\x17\x00 \x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x83\x80\x80\x80\x00\x0b\xc4\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\x9a\x81\xc0\x80\x00\x1a\x02@\x02@ \x00B\xff\x01\x83B\xcb\x00R\r\x00\x02@\x03@ \x02A\x10F\r\x01 \x01A\x08j \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b \x00 \x01A\x08j\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x82\x80\x80\x80\x00\x1a \x01B\x027\x03\x18 \x01)\x03\x08\"\x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xc0\x83\xc0\x80\x00A\x01 \x01A\x18jA\x01\x10\x93\x80\x80\x80\x00 \x011\x00\x18B\x04R\r\x00 \x011\x00\x10B\x04Q\r\x01\x0b\x00\x0b \x01A j$\x80\x80\x80\x80\x00B\x02\x0bo\x02\x01\x7f\x01~#\x80\x80\x80\x80\x00A k\"\x00$\x80\x80\x80\x80\x00A\x00-\x00\xc2\x82\xc0\x80\x00\x1a \x00B\x84\x80\x80\x80\x107\x03\x18A\xc0\x83\xc0\x80\x00A\x01 \x00A\x18jA\x01\x10\x8a\x80\x80\x80\x00!\x01 \x00B\x84\x80\x80\x80 7\x03\x10 \x00 \x017\x03\x08 \x00A\x08j\x10\x9c\x80\x80\x80\x00!\x01 \x00A j$\x80\x80\x80\x80\x00 \x01\x0b\x1e\x00A\x00-\x00\x9c\x80\xc0\x80\x00\x1a\x02@ \x00B\xff\x01\x83B\xcb\x00Q\r\x00\x00\x0bB\x02\x0b\x8d\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x01$\x80\x80\x80\x80\x00A\x00!\x02A\x00-\x00\xd0\x82\xc0\x80\x00\x1a\x02@\x03@ \x02A\x10F\r\x01 \x01 \x02jB\x027\x03\x00 \x02A\x08j!\x02\x0c\x00\x0b\x0b\x02@\x02@ \x00B\xff\x01\x83B\xcc\x00R\r\x00 \x00A\xd0\x85\xc0\x80\x00A\x02 \x01A\x02\x10\x93\x80\x80\x80\x00 \x011\x00\x00B\x04R\r\x00 \x01)\x03\x08B\xfe\x01\x83P\r\x01\x0b\x00\x0b \x01A\x10j$\x80\x80\x80\x80\x00B\x02\x0b\x0b\xea\x05\x01\x00A\x80\x80\xc0\x00\x0b\xe0\x05SpEcV1Hh\xdc\xaaa\x8d\xf7\rSpEcV1\xe7\xcf\x9b1n\x15\x13\xfeSpEcV1\xe2\x01y\xc9\x9a\xf8\xedtSpEcV1v1\x0eP\xa9C\xc7*SpEcV1\xa9<\xd8+\xb7\xa7\r\x17SpEcV1X\x03\xf6t\xc7\xd0\x01\"SpEcV1\'\xbd_A\r\x9a\x89\x02SpEcV1p\x8c\x0fN!\x082\xd8SpEcV1\xc2\xf4N\xbf\xebqvpSpEcV1K\xdf\'8m/\xe8\x1dSpEcV1@\xb9LO\xf9\xd1\xe8\xe2SpEcV1\xde\x1dMa\x01\xec\xb0ASpEcV1\xc2 \x1b\xdc\xc8gxZSpEcV1[Q+\xe9\xde\xd5\xf2>SpEcV1\xb3/\x97\xd5\x06\xbd3BSpEcV1\x0c\xf0\xf6w\xfd\x1a\x1b\x94SpEcV1\'\xf2\xa2\xb9\xd0)\xc0uSpEcV1\xf5\xd4\x9b\xa3\xccI\x13\xf7SpEcV1\x84\x08Y\xae\xa0\xf128SpEcV16\x83?\xf0\xcdW\xb1/SpEcV1\x94\xc7w/_\xebXcSpEcV1q\xa3z;6\xa6R\x01SpEcV1q^\xe2&\x9di\x9d\x0eSpEcV1Y\xa66\xb3\xecxE\x13SpEcV1\xb6\x1c\xfd\xdfhY-dSpEcV1 \xfbl\x04B\x82\xc0\xb4SpEcV1\xe3\xf2\x9b5%a\xfb\xd6SpEcV1[\xf4R\xdf\xdd\xb4\xb0\xbcSpEcV1\xaaX8\xde\xef\xbb6%SpEcV1k\xe4zxB\xd1+\x02anested\x00\xa4\x01\x10\x00\x01\x00\x00\x00\xa5\x01\x10\x00\x06\x00\x00\x00val\x00\xbc\x01\x10\x00\x03\x00\x00\x00data\xc8\x01\x10\x00\x04\x00\x00\x00A\x00\x00\x00\xa5\x01\x10\x00\x06\x00\x00\x00xy\x00\x00\xe0\x01\x10\x00\x01\x00\x00\x00\xe1\x01\x10\x00\x01\x00\x00\x00inner\x00\x00\x00\xf4\x01\x10\x00\x05\x00\x00\x00transfercoordsamount\x12\x02\x10\x00\x06\x00\x00\x00used_event_simplepayload1\x02\x10\x00\x07\x00\x00\x00used_event_with_refsused_event_with_data_typeused_event_with_topic_typeused_event_with_nested_dataused_event_with_nested_topicSpEcV1\xa3\x16\n\x8f\xc9\x92\xd2\x11f1f2\xcc\x02\x10\x00\x02\x00\x00\x00\xce\x02\x10\x00\x02\x00\x00\x00\x00\xaf6\x0econtractspecv0\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_map\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01m\x00\x00\x00\x00\x00\x03\xec\x00\x00\x07\xd0\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x07\xd0\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08with_vec\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x03\xea\x00\x00\x07\xd0\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUnusedEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapKey\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02K1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02K2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nUsedMapVal\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01v\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_param\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x00\x00\x00\x00\x02ie\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nwith_tuple\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01t\x00\x00\x00\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bUnusedEvent\x00\x00\x00\x00\x01\x00\x00\x00\x0cunused_event\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUnusedStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cUsedResultOk\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_option\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01o\x00\x00\x00\x00\x00\x03\xe8\x00\x00\x07\xd0\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_result\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x07\xd0\x00\x00\x00\x0cUsedResultOk\x00\x00\x07\xd0\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bwith_return\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUnusedIntEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02U1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02U2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rUsedErrorEnum\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08NotFound\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07Invalid\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cwith_non_pub\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedReturnEnum\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01A\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01B\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0eUsedVecElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Fail\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedParamStruct\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01a\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06nested\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0epublish_simple\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fUsedEventSimple\x00\x00\x00\x00\x01\x00\x00\x00\x11used_event_simple\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedNonPubStruct\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedParamIntEnum\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01X\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01Y\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefDataInner\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04Send\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Recv\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10UsedTupleElement\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0fwith_lib_struct\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructC\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UnusedNonPubError\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03Bad\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x01y\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedOptionElement\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04data\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11UsedEventWithRefs\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x14used_event_with_refs\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x10UsedRefTopicType\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x0fUsedRefDataType\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UnusedNonPubStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataInner\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x08Transfer\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x04Mint\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12UsedNestedInStruct\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_data_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11publish_ref_event\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11with_tuple_return\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xed\x00\x00\x00\x02\x00\x00\x07\xd0\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05inner\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicInner\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12publish_topic_type\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_non_pub_error\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x0fUsedNonPubError\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12with_wasm_imported\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01s\x00\x00\x00\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13publish_nested_data\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x14publish_nested_topic\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15UsedEventWithDataType\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x19used_event_with_data_type\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x11UsedEventDataType\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedTupleReturnElement\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x03val\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16UsedEventWithTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1aused_event_with_topic_type\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventTopicType\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17UsedEventWithNestedData\x00\x00\x00\x00\x01\x00\x00\x00\x1bused_event_with_nested_data\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04kind\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x07payload\x00\x00\x00\x07\xd0\x00\x00\x00\x12UsedEventDataOuter\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UnusedNonContractFnParam\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18UsedEventWithNestedTopic\x00\x00\x00\x01\x00\x00\x00\x1cused_event_with_nested_topic\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x04info\x00\x00\x07\xd0\x00\x00\x00\x13UsedEventTopicOuter\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x06amount\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19UnusedNonContractFnReturn\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01x\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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"; extern crate test; #[rustc_test_marker = "test::test_spec_shaking_v2"] #[doc(hidden)] diff --git a/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs b/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs index 10caaf21b..947deb8b6 100644 --- a/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs +++ b/tests-expanded/test_spec_shaking_v2_wasm32v1-none.rs @@ -3142,7 +3142,7 @@ impl soroban_sdk::TryFromVal for soroban_sdk } } mod wasm_imported { - pub const WASM: &[u8] = b"\x00asm\x01\x00\x00\x00\x01*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\x19\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*\x07`\x02~~\x01~`\x03~~~\x01~`\x01~\x01~`\x00\x01~`\x02\x7f\x7f\x01~`\x04\x7f\x7f\x7f\x7f\x01~`\x02\x7f~\x00\x02%\x06\x01b\x01j\x00\x00\x01x\x011\x00\x00\x01v\x01g\x00\x00\x01m\x019\x00\x01\x01i\x012\x00\x02\x01i\x011\x00\x02\x03\x0b\n\x03\x04\x03\x02\x00\x05\x00\x00\x06\x06\x05\x03\x01\x00\x11\x06!\x04\x7f\x01A\x80\x80\xc0\x00\x0b\x7f\x00A\x82\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x7f\x00A\xa0\x80\xc0\x00\x0b\x07\x81\x01\n\x06memory\x02\x00\tfn_enum_a\x00\x06\rfn_enum_int_a\x00\x08\nfn_error_a\x00\t\nfn_event_a\x00\n\x0bfn_struct_a\x00\x0c\x11fn_struct_tuple_a\x00\r\x01_\x03\x01\n__data_end\x03\x02\x0b__heap_base\x03\x03\n\xbd\x08\n\x8b\x02\x03\x01\x7f\x01~\x03\x7f#\x80\x80\x80\x80\x00A\x10k\"\x00$\x80\x80\x80\x80\x00B\x00!\x01A~!\x02\x03~\x02@\x02@\x02@\x02@\x02@ \x02E\r\x00A\x01!\x03 \x02A\x82\x80\xc0\x80\x00j-\x00\x00\"\x04A\xdf\x00F\r\x04 \x04APjA\xff\x01qA\nI\r\x02 \x04A\xbf\x7fjA\xff\x01qA\x1aI\r\x03\x02@ \x04A\x9f\x7fjA\xff\x01qA\x1aO\r\x00 \x04AEj!\x03\x0c\x05\x0b \x00 \x04\xadB\x08\x86B\x01\x847\x03\x00A\x80\x80\xc0\x80\x00\xadB \x86B\x04\x84B\x84\x80\x80\x80 \x10\x80\x80\x80\x80\x00!\x01\x0c\x01\x0b \x00 \x01B\x08\x86B\x0e\x84\"\x017\x02\x04\x0b \x00 \x017\x03\x00 \x00A\x01\x10\x87\x80\x80\x80\x00!\x01 \x00A\x10j$\x80\x80\x80\x80\x00 \x01\x0f\x0b \x04ARj!\x03\x0c\x01\x0b \x04AKj!\x03\x0b \x01B\x06\x86 \x03\xadB\xff\x01\x83\x84!\x01 \x02A\x01j!\x02\x0c\x00\x0b\x0b\x1a\x00 \x00\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x82\x80\x80\x80\x00\x0b\x08\x00B\x84\x80\x80\x800\x0b*\x00\x02@ \x00B\xff\x01\x83B\x04Q\r\x00\x00\x0bB\x83\x80\x80\x80 \x00B\x84\x80\x80\x80p\x83 \x00B\x80\x80\x80\x80\x10T\x1b\x0b\xdc\x01\x01\x02\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\xcd\x00R\r\x00 \x01B\xff\x01\x83B\xc9\x00R\r\x00 \x02 \x007\x03\x08 \x02B\x8e\xcc\xc1\xfc\xac\xdd\xab\x017\x03\x00A\x00!\x03\x03@\x02@ \x03A\x10G\r\x00A\x00!\x03\x02@\x03@ \x03A\x10F\r\x01 \x02A\x10j \x03j \x02 \x03j)\x03\x007\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b \x02A\x10jA\x02\x10\x87\x80\x80\x80\x00!\x00 \x02 \x017\x03\x10 \x00A\x98\x80\xc0\x80\x00A\x01 \x02A\x10jA\x01\x10\x8b\x80\x80\x80\x00\x10\x81\x80\x80\x80\x00\x1a \x02A j$\x80\x80\x80\x80\x00B\x02\x0f\x0b \x02A\x10j \x03jB\x027\x03\x00 \x03A\x08j!\x03\x0c\x00\x0b\x0b\x00\x0b.\x00\x02@ \x01 \x03F\r\x00\x00\x0b \x00\xadB \x86B\x04\x84 \x02\xadB \x86B\x04\x84 \x01\xadB \x86B\x04\x84\x10\x83\x80\x80\x80\x00\x0by\x01\x02\x7f#\x80\x80\x80\x80\x00A\x10k\"\x02$\x80\x80\x80\x80\x00\x02@ \x00B\xff\x01\x83B\x04R\r\x00A\x01A\x02A\x00 \x01\xa7A\xff\x01q\"\x03\x1b \x03A\x01F\x1b\"\x03A\x02F\r\x00 \x02 \x03\xad7\x03\x08 \x02 \x00B\x84\x80\x80\x80p\x837\x03\x00A\x88\x80\xc0\x80\x00A\x02 \x02A\x02\x10\x8b\x80\x80\x80\x00!\x00 \x02A\x10j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b\xb2\x01\x01\x01\x7f#\x80\x80\x80\x80\x00A k\"\x02$\x80\x80\x80\x80\x00 \x02A\x10j \x00\x10\x8e\x80\x80\x80\x00\x02@ \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8e\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02)\x03\x18!\x01 \x02A\x10j \x00\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10\r\x00 \x02)\x03\x18!\x00 \x02A\x10j \x01\x10\x8f\x80\x80\x80\x00 \x02(\x02\x10A\x01F\r\x00 \x02 \x02)\x03\x187\x03\x08 \x02 \x007\x03\x00 \x02A\x02\x10\x87\x80\x80\x80\x00!\x00 \x02A j$\x80\x80\x80\x80\x00 \x00\x0f\x0b\x00\x0b]\x02\x01\x7f\x01~\x02@\x02@ \x01\xa7A\xff\x01q\"\x02A\xc1\x00F\r\x00\x02@ \x02A\x07F\r\x00B\x01!\x03B\x83\x90\x80\x80\x80\x01!\x01\x0c\x02\x0b \x01B\x08\x87!\x01B\x00!\x03\x0c\x01\x0bB\x00!\x03 \x01\x10\x84\x80\x80\x80\x00!\x01\x0b \x00 \x037\x03\x00 \x00 \x017\x03\x08\x0bF\x00\x02@\x02@ \x01B\x80\x80\x80\x80\x80\x80\x80\xc0\x00|B\xff\xff\xff\xff\xff\xff\xff\xff\x00V\r\x00 \x01B\x08\x86B\x07\x84!\x01\x0c\x01\x0b \x01\x10\x85\x80\x80\x80\x00!\x01\x0b \x00B\x007\x03\x00 \x00 \x017\x03\x08\x0b\x0b)\x01\x00A\x80\x80\xc0\x00\x0b V2f1f2\x00\x00\x02\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x04\x00\x10\x00\x02\x00\x00\x00\x00\xbf\x0e\x0econtractspecv0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\tfn_enum_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_error_a\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x05input\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x03\xe9\x00\x00\x00\x04\x00\x00\x07\xd0\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nfn_event_a\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0bfn_struct_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\rfn_enum_int_a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x08EnumIntA\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11fn_struct_tuple_a\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumA\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumB\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x05EnumC\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x07StructA\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x01\x00\x00\x07\xd0\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorA\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorB\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06ErrorC\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02E1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02E2\x00\x00\x00\x00\x00e\x00\x00\x00\x00\x00\x00\x00\x02E3\x00\x00\x00\x00\x00f\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventA\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_a\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventB\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_b\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06EventC\x00\x00\x00\x00\x00\x01\x00\x00\x00\x07event_c\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x11\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02f3\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructA\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructB\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07StructC\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02f1\x00\x00\x00\x00\x03\xea\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02f2\x00\x00\x00\x00\x00\x13\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntA\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x03\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntB\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x00\x1e\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08EnumIntC\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x02V1\x00\x00\x00\x00\x00d\x00\x00\x00\x00\x00\x00\x00\x02V2\x00\x00\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x00\x00\x02V3\x00\x00\x00\x00\x01,\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleA\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleB\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\n\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0cStructTupleC\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x010\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x011\x00\x00\x00\x00\x00\x00\x0b\x00\x1e\x11contractenvmetav0\x00\x00\x00\x00\x00\x00\x00\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 trait Contract { fn fn_enum_a(env: soroban_sdk::Env) -> EnumA; fn fn_error_a(env: soroban_sdk::Env, input: u32) -> Result; diff --git a/tests-expanded/test_tuples_tests.rs b/tests-expanded/test_tuples_tests.rs index 8bb6d5576..afede28df 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\x19\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\x00+\x0econtractmetav0\x00\x00\x00\x00\x00\x00\x00\x05rsver\x00\x00\x00\x00\x00\x00\x061.91.0\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/account/test_snapshots/test/test.1.json b/tests/account/test_snapshots/test/test.1.json index 05bed0e57..a6e974de0 100644 --- a/tests/account/test_snapshots/test/test.1.json +++ b/tests/account/test_snapshots/test/test.1.json @@ -24,7 +24,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/add_i128/test_snapshots/test/test_add.1.json b/tests/add_i128/test_snapshots/test/test_add.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/add_i128/test_snapshots/test/test_add.1.json +++ b/tests/add_i128/test_snapshots/test/test_add.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/add_u128/test_snapshots/test/test_add.1.json b/tests/add_u128/test_snapshots/test/test_add.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/add_u128/test_snapshots/test/test_add.1.json +++ b/tests/add_u128/test_snapshots/test/test_add.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/add_u64/test_snapshots/test/test_add.1.json b/tests/add_u64/test_snapshots/test/test_add.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/add_u64/test_snapshots/test/test_add.1.json +++ b/tests/add_u64/test_snapshots/test/test_add.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/associated_type/test_snapshots/test/test_exec.1.json b/tests/associated_type/test_snapshots/test/test_exec.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/associated_type/test_snapshots/test/test_exec.1.json +++ b/tests/associated_type/test_snapshots/test/test_exec.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/associated_type_chained/test_snapshots/test/test_associated_type_chained.1.json b/tests/associated_type_chained/test_snapshots/test/test_associated_type_chained.1.json index 3fddd8a48..a5cfdeedd 100644 --- a/tests/associated_type_chained/test_snapshots/test/test_associated_type_chained.1.json +++ b/tests/associated_type_chained/test_snapshots/test/test_associated_type_chained.1.json @@ -18,7 +18,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/associated_type_contracttrait/test_snapshots/test/test_exec.1.json b/tests/associated_type_contracttrait/test_snapshots/test/test_exec.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/associated_type_contracttrait/test_snapshots/test/test_exec.1.json +++ b/tests/associated_type_contracttrait/test_snapshots/test/test_exec.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", 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 a256c5601..adf014a91 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 @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -50,7 +50,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "1c5bf679bea95261913ace7bf0a596c8b05c9753cf40a9fc320ef8b226c26370" + "wasm": "83dbf55a7f436f851e8c0e8d55d921302138d98960c36c6ff1b7a9d3df3b6936" }, "storage": null } @@ -84,8 +84,8 @@ } } }, - "hash": "1c5bf679bea95261913ace7bf0a596c8b05c9753cf40a9fc320ef8b226c26370", - "code": "0061736d0100000001110360027e7e017e6000017e60027f7f017e02070101620169000003040301020105030100110621047f01418080c0000b7f00418f80c0000b7f00418f80c0000b7f00419080c0000b073806066d656d6f72790200046578656300010565786563320003015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a3e031000418080c0800041071082808080000b1a002000ad4220864204842001ad4220864204841080808080000b1000418780c0800041081082808080000b0b180100418080c0000b0f64656661756c7464656661756c7432004b0e636f6e7472616374737065637630000000000000000000000004657865630000000000000001000000100000000000000000000000056578656332000000000000000000000100000010001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "83dbf55a7f436f851e8c0e8d55d921302138d98960c36c6ff1b7a9d3df3b6936", + "code": "0061736d0100000001110360027e7e017e6000017e60027f7f017e02070101620169000003040301020105030100110621047f01418080c0000b7f00418f80c0000b7f00418f80c0000b7f00419080c0000b073806066d656d6f72790200046578656300010565786563320003015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030a3e031000418080c0800041071082808080000b1a002000ad4220864204842001ad4220864204841080808080000b1000418780c0800041081082808080000b0b180100418080c0000b0f64656661756c7464656661756c7432004b0e636f6e7472616374737065637630000000000000000000000004657865630000000000000001000000100000000000000000000000056578656332000000000000000000000100000010001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "ext": "v0" diff --git a/tests/auth/test_snapshots/test_a/test_with_mock_all_auth.1.json b/tests/auth/test_snapshots/test_a/test_with_mock_all_auth.1.json index 5c4bbad24..11a648acc 100644 --- a/tests/auth/test_snapshots/test_a/test_with_mock_all_auth.1.json +++ b/tests/auth/test_snapshots/test_a/test_with_mock_all_auth.1.json @@ -27,7 +27,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_a/test_with_mock_auth.1.json b/tests/auth/test_snapshots/test_a/test_with_mock_auth.1.json index 3c0ecec4e..2af92b088 100644 --- a/tests/auth/test_snapshots/test_a/test_with_mock_auth.1.json +++ b/tests/auth/test_snapshots/test_a/test_with_mock_auth.1.json @@ -28,7 +28,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_approve.1.json b/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_approve.1.json index 41d5f63c6..5c4b7c958 100644 --- a/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_approve.1.json +++ b/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_approve.1.json @@ -28,7 +28,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_decline.1.json b/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_decline.1.json index 9b985d209..d9ebb12f3 100644 --- a/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_decline.1.json +++ b/tests/auth/test_snapshots/test_a/test_with_real_contract_auth_decline.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_b/test_with_mock_all_auth.1.json b/tests/auth/test_snapshots/test_b/test_with_mock_all_auth.1.json index 9097eeaa5..07441f7ad 100644 --- a/tests/auth/test_snapshots/test_b/test_with_mock_all_auth.1.json +++ b/tests/auth/test_snapshots/test_b/test_with_mock_all_auth.1.json @@ -46,7 +46,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_b/test_with_mock_auth.1.json b/tests/auth/test_snapshots/test_b/test_with_mock_auth.1.json index 811d9a80d..dbffae5e7 100644 --- a/tests/auth/test_snapshots/test_b/test_with_mock_auth.1.json +++ b/tests/auth/test_snapshots/test_b/test_with_mock_auth.1.json @@ -47,7 +47,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_approve.1.json b/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_approve.1.json index 4fc2aa572..d5cfcb26c 100644 --- a/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_approve.1.json +++ b/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_approve.1.json @@ -47,7 +47,7 @@ ] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_decline.1.json b/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_decline.1.json index 3b7e57c07..48e5c0969 100644 --- a/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_decline.1.json +++ b/tests/auth/test_snapshots/test_b/test_with_real_contract_auth_decline.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bls/test_snapshots/test/test_dummy_verify.1.json b/tests/bls/test_snapshots/test/test_dummy_verify.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/bls/test_snapshots/test/test_dummy_verify.1.json +++ b/tests/bls/test_snapshots/test/test_dummy_verify.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bls/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json b/tests/bls/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/bls/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json +++ b/tests/bls/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bls/test_snapshots/test/test_g1_mul.1.json b/tests/bls/test_snapshots/test/test_g1_mul.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/bls/test_snapshots/test/test_g1_mul.1.json +++ b/tests/bls/test_snapshots/test/test_g1_mul.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bls/test_snapshots/test/test_g2_mul.1.json b/tests/bls/test_snapshots/test/test_g2_mul.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/bls/test_snapshots/test/test_g2_mul.1.json +++ b/tests/bls/test_snapshots/test/test_g2_mul.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bn254/test_snapshots/test/test_add_and_mul.1.json b/tests/bn254/test_snapshots/test/test_add_and_mul.1.json index 472efde9d..2e8d29d5c 100644 --- a/tests/bn254/test_snapshots/test/test_add_and_mul.1.json +++ b/tests/bn254/test_snapshots/test/test_add_and_mul.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bn254/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json b/tests/bn254/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/bn254/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json +++ b/tests/bn254/test_snapshots/test/test_fr_decode_reduces_unreduced_scalar_and_vec_elements.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/bn254/test_snapshots/test/test_pairing.1.json b/tests/bn254/test_snapshots/test/test_pairing.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/bn254/test_snapshots/test/test_pairing.1.json +++ b/tests/bn254/test_snapshots/test/test_pairing.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/constructor/test_snapshots/test_constructor.1.json b/tests/constructor/test_snapshots/test_constructor.1.json index 6e0738d6a..700cb560d 100644 --- a/tests/constructor/test_snapshots/test_constructor.1.json +++ b/tests/constructor/test_snapshots/test_constructor.1.json @@ -14,7 +14,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/constructor/test_snapshots/test_missing_constructor_arguments_causes_panic.1.json b/tests/constructor/test_snapshots/test_missing_constructor_arguments_causes_panic.1.json index d3408012b..f4cbd1584 100644 --- a/tests/constructor/test_snapshots/test_missing_constructor_arguments_causes_panic.1.json +++ b/tests/constructor/test_snapshots/test_missing_constructor_arguments_causes_panic.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/constructor/test_snapshots/test_passing_extra_constructor_arguments_causes_panic.1.json b/tests/constructor/test_snapshots/test_passing_extra_constructor_arguments_causes_panic.1.json index d3408012b..f4cbd1584 100644 --- a/tests/constructor/test_snapshots/test_passing_extra_constructor_arguments_causes_panic.1.json +++ b/tests/constructor/test_snapshots/test_passing_extra_constructor_arguments_causes_panic.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/constructor/test_snapshots/test_passing_incorrectly_typed_constructor_arguments_causes_panic.1.json b/tests/constructor/test_snapshots/test_passing_incorrectly_typed_constructor_arguments_causes_panic.1.json index d3408012b..f4cbd1584 100644 --- a/tests/constructor/test_snapshots/test_passing_incorrectly_typed_constructor_arguments_causes_panic.1.json +++ b/tests/constructor/test_snapshots/test_passing_incorrectly_typed_constructor_arguments_causes_panic.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/constructor/test_snapshots/test_passing_no_constructor_arguments_causes_panic.1.json b/tests/constructor/test_snapshots/test_passing_no_constructor_arguments_causes_panic.1.json index d3408012b..f4cbd1584 100644 --- a/tests/constructor/test_snapshots/test_passing_no_constructor_arguments_causes_panic.1.json +++ b/tests/constructor/test_snapshots/test_passing_no_constructor_arguments_causes_panic.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_impl_full/test_snapshots/test/test_cross_crate_default_fns.1.json b/tests/contracttrait_impl_full/test_snapshots/test/test_cross_crate_default_fns.1.json index e67ad034f..ad1b6e72f 100644 --- a/tests/contracttrait_impl_full/test_snapshots/test/test_cross_crate_default_fns.1.json +++ b/tests/contracttrait_impl_full/test_snapshots/test/test_cross_crate_default_fns.1.json @@ -30,7 +30,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_impl_partial/test_snapshots/test/test_partial_override.1.json b/tests/contracttrait_impl_partial/test_snapshots/test/test_partial_override.1.json index e67ad034f..ad1b6e72f 100644 --- a/tests/contracttrait_impl_partial/test_snapshots/test/test_partial_override.1.json +++ b/tests/contracttrait_impl_partial/test_snapshots/test/test_partial_override.1.json @@ -30,7 +30,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_path_crate/test_snapshots/test/test_crate_path.1.json b/tests/contracttrait_path_crate/test_snapshots/test/test_crate_path.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/contracttrait_path_crate/test_snapshots/test/test_crate_path.1.json +++ b/tests/contracttrait_path_crate/test_snapshots/test/test_crate_path.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_path_global/test_snapshots/test/test_global_path.1.json b/tests/contracttrait_path_global/test_snapshots/test/test_global_path.1.json index e67ad034f..ad1b6e72f 100644 --- a/tests/contracttrait_path_global/test_snapshots/test/test_global_path.1.json +++ b/tests/contracttrait_path_global/test_snapshots/test/test_global_path.1.json @@ -30,7 +30,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_path_relative/test_snapshots/test/test_relative_path.1.json b/tests/contracttrait_path_relative/test_snapshots/test/test_relative_path.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/contracttrait_path_relative/test_snapshots/test/test_relative_path.1.json +++ b/tests/contracttrait_path_relative/test_snapshots/test/test_relative_path.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_path_self/test_snapshots/test/test_self_path.1.json b/tests/contracttrait_path_self/test_snapshots/test/test_self_path.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/contracttrait_path_self/test_snapshots/test/test_self_path.1.json +++ b/tests/contracttrait_path_self/test_snapshots/test/test_self_path.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_path_super/test_snapshots/test/test_super_path.1.json b/tests/contracttrait_path_super/test_snapshots/test/test_super_path.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/contracttrait_path_super/test_snapshots/test/test_super_path.1.json +++ b/tests/contracttrait_path_super/test_snapshots/test/test_super_path.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/contracttrait_trait/test_snapshots/test/test_types.1.json b/tests/contracttrait_trait/test_snapshots/test/test_types.1.json index e67ad034f..ad1b6e72f 100644 --- a/tests/contracttrait_trait/test_snapshots/test/test_types.1.json +++ b/tests/contracttrait_trait/test_snapshots/test/test_types.1.json @@ -30,7 +30,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/empty/test_snapshots/test/test_hello.1.json b/tests/empty/test_snapshots/test/test_hello.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/empty/test_snapshots/test/test_hello.1.json +++ b/tests/empty/test_snapshots/test/test_hello.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/empty2/test_snapshots/test/test_hello.1.json b/tests/empty2/test_snapshots/test/test_hello.1.json index d3408012b..f4cbd1584 100644 --- a/tests/empty2/test_snapshots/test/test_hello.1.json +++ b/tests/empty2/test_snapshots/test/test_hello.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/hello_ok.1.json b/tests/errors/test_snapshots/test/hello_ok.1.json index 2847fc764..1463a24fb 100644 --- a/tests/errors/test_snapshots/test/hello_ok.1.json +++ b/tests/errors/test_snapshots/test/hello_ok.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_as_contract_hello_error.1.json b/tests/errors/test_snapshots/test/try_as_contract_hello_error.1.json index 8b982c606..4013e5028 100644 --- a/tests/errors/test_snapshots/test/try_as_contract_hello_error.1.json +++ b/tests/errors/test_snapshots/test/try_as_contract_hello_error.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic.1.json b/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic.1.json index 8b982c606..4013e5028 100644 --- a/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic.1.json +++ b/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic_string.1.json b/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic_string.1.json index 8b982c606..4013e5028 100644 --- a/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic_string.1.json +++ b/tests/errors/test_snapshots/test/try_as_contract_hello_error_panic_string.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_as_contract_hello_error_unexpected_contract_error.1.json b/tests/errors/test_snapshots/test/try_as_contract_hello_error_unexpected_contract_error.1.json index 8b982c606..4013e5028 100644 --- a/tests/errors/test_snapshots/test/try_as_contract_hello_error_unexpected_contract_error.1.json +++ b/tests/errors/test_snapshots/test/try_as_contract_hello_error_unexpected_contract_error.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_as_contract_hello_ok.1.json b/tests/errors/test_snapshots/test/try_as_contract_hello_ok.1.json index e00082106..848bec982 100644 --- a/tests/errors/test_snapshots/test/try_as_contract_hello_ok.1.json +++ b/tests/errors/test_snapshots/test/try_as_contract_hello_ok.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_hello_error.1.json b/tests/errors/test_snapshots/test/try_hello_error.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/errors/test_snapshots/test/try_hello_error.1.json +++ b/tests/errors/test_snapshots/test/try_hello_error.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_hello_error_panic.1.json b/tests/errors/test_snapshots/test/try_hello_error_panic.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/errors/test_snapshots/test/try_hello_error_panic.1.json +++ b/tests/errors/test_snapshots/test/try_hello_error_panic.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_hello_error_panic_string.1.json b/tests/errors/test_snapshots/test/try_hello_error_panic_string.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/errors/test_snapshots/test/try_hello_error_panic_string.1.json +++ b/tests/errors/test_snapshots/test/try_hello_error_panic_string.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_hello_error_unexpected_contract_error.1.json b/tests/errors/test_snapshots/test/try_hello_error_unexpected_contract_error.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/errors/test_snapshots/test/try_hello_error_unexpected_contract_error.1.json +++ b/tests/errors/test_snapshots/test/try_hello_error_unexpected_contract_error.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/errors/test_snapshots/test/try_hello_ok.1.json b/tests/errors/test_snapshots/test/try_hello_ok.1.json index 2847fc764..1463a24fb 100644 --- a/tests/errors/test_snapshots/test/try_hello_ok.1.json +++ b/tests/errors/test_snapshots/test/try_hello_ok.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events/test_snapshots/test/test_event.1.json b/tests/events/test_snapshots/test/test_event.1.json index 49af003ac..9d36129fd 100644 --- a/tests/events/test_snapshots/test/test_event.1.json +++ b/tests/events/test_snapshots/test/test_event.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events/test_snapshots/test/test_event_with_option_none.1.json b/tests/events/test_snapshots/test/test_event_with_option_none.1.json index ba20c52e4..847e36e0c 100644 --- a/tests/events/test_snapshots/test/test_event_with_option_none.1.json +++ b/tests/events/test_snapshots/test/test_event_with_option_none.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json b/tests/events/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json index dfb816a14..9013b5bb9 100644 --- a/tests/events/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json +++ b/tests/events/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events_ref/test_snapshots/test/test_event.1.json b/tests/events_ref/test_snapshots/test/test_event.1.json index 49af003ac..9d36129fd 100644 --- a/tests/events_ref/test_snapshots/test/test_event.1.json +++ b/tests/events_ref/test_snapshots/test/test_event.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events_ref/test_snapshots/test/test_event_with_option_none.1.json b/tests/events_ref/test_snapshots/test/test_event_with_option_none.1.json index ba20c52e4..847e36e0c 100644 --- a/tests/events_ref/test_snapshots/test/test_event_with_option_none.1.json +++ b/tests/events_ref/test_snapshots/test/test_event_with_option_none.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/events_ref/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json b/tests/events_ref/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json index dfb816a14..9013b5bb9 100644 --- a/tests/events_ref/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json +++ b/tests/events_ref/test_snapshots/test/test_no_events_recorded_for_failed_call.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/fuzz/fuzz/Cargo.lock b/tests/fuzz/fuzz/Cargo.lock index b25e3355c..c7bdc732c 100644 --- a/tests/fuzz/fuzz/Cargo.lock +++ b/tests/fuzz/fuzz/Cargo.lock @@ -14,6 +14,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "android-tzdata" version = "0.1.1" @@ -40,9 +46,9 @@ dependencies = [ [[package]] name = "ark-bls12-381" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" dependencies = [ "ark-ec", "ark-ff", @@ -52,9 +58,9 @@ dependencies = [ [[package]] name = "ark-bn254" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" dependencies = [ "ark-ec", "ark-ff", @@ -63,110 +69,123 @@ dependencies = [ [[package]] name = "ark-ec" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ + "ahash", "ark-ff", "ark-poly", "ark-serialize", "ark-std", - "derivative", - "hashbrown 0.13.2", + "educe", + "fnv", + "hashbrown 0.15.5", "itertools", + "num-bigint", + "num-integer", "num-traits", "zeroize", ] [[package]] name = "ark-ff" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" dependencies = [ "ark-ff-asm", "ark-ff-macros", "ark-serialize", "ark-std", - "derivative", + "arrayvec", "digest", + "educe", "itertools", "num-bigint", "num-traits", "paste", - "rustc_version", "zeroize", ] [[package]] name = "ark-ff-asm" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "ark-ff-macros" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" dependencies = [ "num-bigint", "num-traits", "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "ark-poly" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" dependencies = [ + "ahash", "ark-ff", "ark-serialize", "ark-std", - "derivative", - "hashbrown 0.13.2", + "educe", + "fnv", + "hashbrown 0.15.5", ] [[package]] name = "ark-serialize" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ "ark-serialize-derive", "ark-std", + "arrayvec", "digest", "num-bigint", ] [[package]] name = "ark-serialize-derive" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", ] [[package]] name = "ark-std" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", "rand", ] +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + [[package]] name = "autocfg" version = "1.1.0" @@ -221,7 +240,7 @@ dependencies = [ "num-bigint", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -247,7 +266,7 @@ checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -357,7 +376,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -381,7 +400,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.104", + "syn", ] [[package]] @@ -392,7 +411,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -421,17 +440,6 @@ dependencies = [ "serde", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "derive_arbitrary" version = "1.3.2" @@ -440,7 +448,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -520,6 +528,18 @@ dependencies = [ "zeroize", ] +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "either" version = "1.8.1" @@ -544,6 +564,26 @@ dependencies = [ "zeroize", ] +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -636,18 +676,18 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", +] [[package]] name = "heapless" @@ -748,9 +788,9 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "itertools" -version = "0.10.5" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -837,7 +877,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -865,7 +905,7 @@ checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -940,7 +980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2b0377b720bde721213a46cda1289b2f34abf0a436907cad91578c20de0454d" dependencies = [ "proc-macro2", - "syn 2.0.104", + "syn", ] [[package]] @@ -1072,7 +1112,7 @@ checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1114,7 +1154,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1156,21 +1196,21 @@ checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "soroban-builtin-sdk-macros" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7192e3a5551a7aeee90d2110b11b615798e81951fd8c8293c87ea7f88b0168f5" +checksum = "e38f0269c20b3c4c3aa2198b5460c72837e0361295a46b914adbcad67fa83d48" dependencies = [ "itertools", "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] name = "soroban-env-common" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfc49a80a68fc1005847308e63b9fce39874de731940b1807b721d472de3ff01" +checksum = "77b15a125a4ec51eeee94cfa58ac3e4f29e7f5426e7f4692a1b119ee60d83a06" dependencies = [ "arbitrary", "crate-git-revision", @@ -1187,9 +1227,9 @@ dependencies = [ [[package]] name = "soroban-env-guest" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2334ba1cfe0a170ab744d96db0b4ca86934de9ff68187ceebc09dc342def55" +checksum = "f85f2b5be7654eca65aa17333cb3fe6b0e6685bc7a40792e28e247e4fef6372e" dependencies = [ "soroban-env-common", "static_assertions", @@ -1197,9 +1237,9 @@ dependencies = [ [[package]] name = "soroban-env-host" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43af5d53c57bc2f546e122adc0b1cca6f93942c718977379aa19ddd04f06fcec" +checksum = "cb9c9c66b62af1179dc6265000bb4356caf0b67225568f64f39bd4194925917a" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -1234,9 +1274,9 @@ dependencies = [ [[package]] name = "soroban-env-macros" -version = "25.0.1" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a989167512e3592d455b1e204d703cfe578a36672a77ed2f9e6f7e1bbfd9cc5c" +checksum = "2d075b3654119b6dac81abd0f8c2f29cdba36edbda102b3c8c3d5f029f099790" dependencies = [ "itertools", "proc-macro2", @@ -1244,12 +1284,12 @@ dependencies = [ "serde", "serde_json", "stellar-xdr", - "syn 2.0.104", + "syn", ] [[package]] name = "soroban-ledger-snapshot" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "serde", "serde_json", @@ -1261,7 +1301,7 @@ dependencies = [ [[package]] name = "soroban-sdk" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "arbitrary", "bytes-lit", @@ -1283,7 +1323,7 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "darling", "heck", @@ -1296,12 +1336,12 @@ dependencies = [ "soroban-spec", "soroban-spec-rust", "stellar-xdr", - "syn 2.0.104", + "syn", ] [[package]] name = "soroban-spec" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "base64", "sha2", @@ -1312,7 +1352,7 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "prettyplease", "proc-macro2", @@ -1320,7 +1360,7 @@ dependencies = [ "sha2", "soroban-spec", "stellar-xdr", - "syn 2.0.104", + "syn", "thiserror", ] @@ -1388,9 +1428,9 @@ dependencies = [ [[package]] name = "stellar-xdr" -version = "25.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10d20dafed80076b227d4b17c0c508a4bbc4d5e4c3d4c1de7cd42242df4b1eaf" +checksum = "fea3195594b044ea3a5b05906f81d945480825f00db4e3ae7d77526bf546ff3a" dependencies = [ "arbitrary", "base64", @@ -1417,17 +1457,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - [[package]] name = "syn" version = "2.0.104" @@ -1441,7 +1470,7 @@ dependencies = [ [[package]] name = "test_fuzz" -version = "25.3.1" +version = "26.0.0-rc.1" dependencies = [ "soroban-sdk", ] @@ -1472,7 +1501,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1532,7 +1561,7 @@ checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1562,7 +1591,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.104", + "syn", "wasm-bindgen-shared", ] @@ -1584,7 +1613,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1737,7 +1766,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] [[package]] @@ -1757,5 +1786,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn", ] diff --git a/tests/generics/test_snapshots/test/test_hello.1.json b/tests/generics/test_snapshots/test/test_hello.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/generics/test_snapshots/test/test_hello.1.json +++ b/tests/generics/test_snapshots/test/test_hello.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/invoke_contract/test_snapshots/test/test_add.1.json b/tests/invoke_contract/test_snapshots/test/test_add.1.json index 9b985d209..d9ebb12f3 100644 --- a/tests/invoke_contract/test_snapshots/test/test_add.1.json +++ b/tests/invoke_contract/test_snapshots/test/test_add.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/logging/test_snapshots/test/test_logging.1.json b/tests/logging/test_snapshots/test/test_logging.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/logging/test_snapshots/test/test_logging.1.json +++ b/tests/logging/test_snapshots/test/test_logging.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/macros/test_snapshots/test/test_custom_attrs_are_not_copied_onto_generated_fns.1.json b/tests/macros/test_snapshots/test/test_custom_attrs_are_not_copied_onto_generated_fns.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/macros/test_snapshots/test/test_custom_attrs_are_not_copied_onto_generated_fns.1.json +++ b/tests/macros/test_snapshots/test/test_custom_attrs_are_not_copied_onto_generated_fns.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/macros/test_snapshots/test/test_empty.1.json b/tests/macros/test_snapshots/test/test_empty.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/macros/test_snapshots/test/test_empty.1.json +++ b/tests/macros/test_snapshots/test/test_empty.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/modular/test_snapshots/test/test.1.json b/tests/modular/test_snapshots/test/test.1.json index 472efde9d..2e8d29d5c 100644 --- a/tests/modular/test_snapshots/test/test.1.json +++ b/tests/modular/test_snapshots/test/test.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/multiimpl/test_snapshots/test/test_hello.1.json b/tests/multiimpl/test_snapshots/test/test_hello.1.json index 472efde9d..2e8d29d5c 100644 --- a/tests/multiimpl/test_snapshots/test/test_hello.1.json +++ b/tests/multiimpl/test_snapshots/test/test_hello.1.json @@ -11,7 +11,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/mutability/test_snapshots/test/test_calc.1.json b/tests/mutability/test_snapshots/test/test_calc.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/mutability/test_snapshots/test/test_calc.1.json +++ b/tests/mutability/test_snapshots/test/test_calc.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/tuples/test_snapshots/test/test_native_tuple1.1.json b/tests/tuples/test_snapshots/test/test_native_tuple1.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/tuples/test_snapshots/test/test_native_tuple1.1.json +++ b/tests/tuples/test_snapshots/test/test_native_tuple1.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/tuples/test_snapshots/test/test_native_tuple2.1.json b/tests/tuples/test_snapshots/test/test_native_tuple2.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/tuples/test_snapshots/test/test_native_tuple2.1.json +++ b/tests/tuples/test_snapshots/test/test_native_tuple2.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/tuples/test_snapshots/test/test_native_void.1.json b/tests/tuples/test_snapshots/test/test_native_void.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/tuples/test_snapshots/test/test_native_void.1.json +++ b/tests/tuples/test_snapshots/test/test_native_void.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", 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 aa65b924d..2325d4015 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_tuple1.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -49,7 +49,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87" + "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" }, "storage": null } @@ -83,8 +83,8 @@ } } }, - "hash": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "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 aa65b924d..2325d4015 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_tuple2.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -49,7 +49,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87" + "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" }, "storage": null } @@ -83,8 +83,8 @@ } } }, - "hash": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "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 aa65b924d..2325d4015 100644 --- a/tests/tuples/test_snapshots/test/test_wasm_void.1.json +++ b/tests/tuples/test_snapshots/test/test_wasm_void.1.json @@ -8,7 +8,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", @@ -49,7 +49,7 @@ "val": { "contract_instance": { "executable": { - "wasm": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87" + "wasm": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2" }, "storage": null } @@ -83,8 +83,8 @@ } } }, - "hash": "7fceddebad443ce18abc52f9e940db6d56f64f5cbe7ea0a465eb6b14ddefbb87", - "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001900000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" + "hash": "158eb6314bed45b7a37db469348779866b3b33920288261662effbbeed2f8cd2", + "code": "0061736d01000000011f0560017e017e60027e7e017e60037e7e7e017e60037e7f7f0060027f7f017e021904016901320000016901310000017601670001017601680002030605000304000005030100100621047f01418080c0000b7f00418080c0000b7f00418080c0000b7f00418080c0000b074507066d656d6f72790200067475706c65310004067475706c6532000707766f69645f666e0008015f03010a5f5f646174615f656e6403020b5f5f686561705f6261736503030ac803057801017f23808080800041106b220124808080800002400240200042ff018342cb00520d00200142023703082000200141086a41011085808080002001290308220042ff01834204510d010b000b2001200042848080807083370308200141086a41011086808080002100200141106a24808080800020000b1d0020002001ad4220864204842002ad4220864204841083808080001a0b1a002000ad4220864204842001ad4220864204841082808080000bff0102027f017e23808080800041106b2201248080808000024002400240200042ff018342cb00520d00410021020240034020024110460d01200120026a4202370300200241086a21020c000b0b2000200141021085808080002001290300220342ff01834204520d0020012903082200a741ff0171220241c100460d0120024107470d00200042088721000c020b000b200010808080800021000b0240024020004280808080808080c0007c42ffffffffffffffff00560d00200042088642078421000c010b200010818080800021000b200120003703082001200342848080807083370300200141021086808080002100200141106a24808080800020000b13000240200042ff01834202510d00000b42020b0b090100418080c0000b0000cb010e636f6e74726163747370656376300000000000000000000000067475706c6531000000000001000000000000000361726700000003ed000000010000000400000001000003ed00000001000000040000000000000000000000067475706c6532000000000001000000000000000361726700000003ed00000002000000040000000700000001000003ed000000020000000400000007000000000000000000000007766f69645f666e00000000010000000000000008766f69645f617267000000020000000100000002001e11636f6e7472616374656e766d6574617630000000000000001a00000000002b0e636f6e74726163746d65746176300000000000000005727376657200000000000006312e39312e300000" } }, "ext": "v0" diff --git a/tests/udt/test_snapshots/test/test_add.1.json b/tests/udt/test_snapshots/test/test_add.1.json index 0628e9799..b5b2bc44d 100644 --- a/tests/udt/test_snapshots/test/test_add.1.json +++ b/tests/udt/test_snapshots/test/test_add.1.json @@ -10,7 +10,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000", diff --git a/tests/workspace_contract/test_snapshots/test/test_add.1.json b/tests/workspace_contract/test_snapshots/test/test_add.1.json index 53df41d12..3a921a4b4 100644 --- a/tests/workspace_contract/test_snapshots/test/test_add.1.json +++ b/tests/workspace_contract/test_snapshots/test/test_add.1.json @@ -9,7 +9,7 @@ [] ], "ledger": { - "protocol_version": 25, + "protocol_version": 26, "sequence_number": 0, "timestamp": 0, "network_id": "0000000000000000000000000000000000000000000000000000000000000000",