@layerzerolabs/protocol-stellar-v2 0.2.19 → 0.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/.turbo/turbo-build.log +795 -791
  2. package/.turbo/turbo-lint.log +325 -155
  3. package/.turbo/turbo-test.log +1398 -1277
  4. package/Cargo.lock +122 -111
  5. package/Cargo.toml +32 -16
  6. package/contracts/common-macros/Cargo.toml +7 -7
  7. package/contracts/common-macros/src/auth.rs +18 -37
  8. package/contracts/common-macros/src/contract_ttl.rs +18 -7
  9. package/contracts/common-macros/src/lib.rs +31 -14
  10. package/contracts/common-macros/src/lz_contract.rs +38 -7
  11. package/contracts/common-macros/src/storage.rs +251 -292
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +6 -12
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +12 -17
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +2 -7
  17. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +20 -14
  18. package/contracts/common-macros/src/tests/upgradeable.rs +26 -4
  19. package/contracts/common-macros/src/ttl_configurable.rs +2 -10
  20. package/contracts/common-macros/src/ttl_extendable.rs +2 -10
  21. package/contracts/common-macros/src/upgradeable.rs +61 -26
  22. package/contracts/common-macros/src/utils.rs +0 -9
  23. package/contracts/endpoint-v2/src/lib.rs +3 -2
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +2 -2
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +3 -3
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +4 -4
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +17 -5
  28. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  29. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +2 -2
  30. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +2 -2
  31. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +6 -6
  32. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +67 -37
  33. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +5 -5
  34. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +44 -54
  35. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +7 -7
  36. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +8 -8
  37. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +3 -3
  38. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +4 -4
  39. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +3 -3
  40. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +2 -2
  41. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +3 -3
  42. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +2 -2
  43. package/contracts/layerzero-views/Cargo.toml +0 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +1 -13
  45. package/contracts/macro-integration-tests/Cargo.toml +5 -15
  46. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +48 -0
  47. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +170 -0
  48. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +154 -0
  49. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +338 -0
  50. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +435 -0
  51. package/contracts/macro-integration-tests/tests/runtime.rs +1 -0
  52. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +8 -0
  53. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +5 -0
  54. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +8 -0
  55. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +71 -0
  56. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +10 -0
  57. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +5 -0
  58. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +8 -0
  59. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +5 -0
  60. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +8 -0
  61. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +5 -0
  62. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +38 -0
  63. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +96 -0
  64. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +64 -0
  65. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +46 -0
  66. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +8 -0
  67. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +1 -1
  68. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +1 -1
  69. package/contracts/macro-integration-tests/tests/ui_oapp.rs +11 -0
  70. package/contracts/message-libs/message-lib-common/Cargo.toml +0 -1
  71. package/contracts/message-libs/message-lib-common/src/errors.rs +1 -1
  72. package/contracts/message-libs/treasury/Cargo.toml +0 -2
  73. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +2 -2
  74. package/contracts/message-libs/uln-302/src/events.rs +4 -0
  75. package/contracts/message-libs/uln-302/src/send_uln.rs +22 -6
  76. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +2 -2
  77. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +2 -2
  78. package/contracts/message-libs/uln-302/src/tests/receive_uln302/verify.rs +2 -2
  79. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_executor_config.rs +2 -2
  80. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +2 -2
  81. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +21 -67
  82. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  83. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +2 -2
  84. package/contracts/oapps/counter/Cargo.toml +5 -6
  85. package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
  86. package/contracts/oapps/counter/integration_tests/utils.rs +19 -12
  87. package/contracts/oapps/oapp/src/errors.rs +1 -1
  88. package/contracts/oapps/oapp/src/interfaces/mod.rs +3 -0
  89. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +47 -0
  90. package/contracts/oapps/oapp/src/lib.rs +1 -0
  91. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +4 -4
  92. package/contracts/oapps/oapp/src/oapp_core.rs +5 -5
  93. package/contracts/oapps/oapp/src/oapp_options_type3.rs +12 -4
  94. package/contracts/oapps/oapp/src/oapp_receiver.rs +14 -9
  95. package/contracts/oapps/oapp/src/tests/mod.rs +4 -4
  96. package/contracts/oapps/oapp/src/tests/oapp_core.rs +223 -0
  97. package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +240 -0
  98. package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +381 -0
  99. package/contracts/oapps/oapp/src/tests/oapp_sender.rs +569 -0
  100. package/contracts/oapps/oapp-macros/Cargo.toml +8 -4
  101. package/contracts/oapps/oapp-macros/src/generators.rs +9 -34
  102. package/contracts/oapps/oapp-macros/src/lib.rs +3 -0
  103. package/contracts/oapps/oapp-macros/src/tests/mod.rs +2 -0
  104. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +88 -0
  105. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +86 -0
  106. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +103 -0
  107. package/contracts/oapps/oft/integration-tests/utils.rs +28 -8
  108. package/contracts/oapps/oft/src/extensions/oft_fee.rs +153 -75
  109. package/contracts/oapps/oft/src/extensions/pausable.rs +61 -12
  110. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +198 -134
  111. package/contracts/oapps/oft/src/oft.rs +45 -50
  112. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  113. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +4 -26
  114. package/contracts/oapps/oft-core/Cargo.toml +1 -4
  115. package/contracts/oapps/oft-core/integration-tests/setup.rs +3 -3
  116. package/contracts/oapps/oft-core/integration-tests/utils.rs +21 -3
  117. package/contracts/oapps/oft-core/src/errors.rs +3 -2
  118. package/contracts/oapps/oft-core/src/events.rs +6 -0
  119. package/contracts/oapps/oft-core/src/lib.rs +1 -1
  120. package/contracts/oapps/oft-core/src/oft_core.rs +341 -246
  121. package/contracts/oapps/oft-core/src/storage.rs +7 -3
  122. package/contracts/oapps/oft-core/src/tests/mod.rs +1 -0
  123. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +37 -2
  124. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +2 -2
  125. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +323 -0
  126. package/contracts/oapps/oft-core/src/tests/test_send.rs +2 -2
  127. package/contracts/oapps/oft-core/src/tests/test_utils.rs +61 -16
  128. package/contracts/upgrader/src/lib.rs +30 -57
  129. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  130. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  131. package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
  132. package/contracts/utils/Cargo.toml +0 -1
  133. package/contracts/utils/src/buffer_reader.rs +1 -0
  134. package/contracts/utils/src/errors.rs +4 -2
  135. package/contracts/utils/src/multisig.rs +17 -8
  136. package/contracts/utils/src/ownable.rs +6 -6
  137. package/contracts/utils/src/testing_utils.rs +124 -54
  138. package/contracts/utils/src/tests/multisig.rs +12 -12
  139. package/contracts/utils/src/tests/ownable.rs +6 -6
  140. package/contracts/utils/src/tests/testing_utils.rs +50 -167
  141. package/contracts/utils/src/tests/ttl_configurable.rs +5 -5
  142. package/contracts/utils/src/tests/upgradeable.rs +372 -175
  143. package/contracts/utils/src/ttl_configurable.rs +13 -7
  144. package/contracts/utils/src/upgradeable.rs +48 -23
  145. package/contracts/workers/dvn/Cargo.toml +6 -6
  146. package/contracts/workers/dvn/src/auth.rs +12 -42
  147. package/contracts/workers/dvn/src/dvn.rs +15 -40
  148. package/contracts/workers/dvn/src/errors.rs +0 -1
  149. package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
  150. package/contracts/workers/dvn/src/lib.rs +4 -3
  151. package/contracts/workers/dvn/src/tests/auth.rs +1 -1
  152. package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
  153. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
  154. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
  155. package/contracts/workers/dvn/src/tests/setup.rs +5 -9
  156. package/contracts/workers/dvn-fee-lib/Cargo.toml +2 -2
  157. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +38 -22
  158. package/contracts/workers/dvn-fee-lib/src/lib.rs +12 -2
  159. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +17 -16
  160. package/contracts/workers/executor/Cargo.toml +4 -0
  161. package/contracts/workers/executor/src/executor.rs +15 -36
  162. package/contracts/workers/executor/src/lib.rs +2 -2
  163. package/contracts/workers/executor/src/tests/auth.rs +394 -0
  164. package/contracts/workers/executor/src/tests/executor.rs +410 -0
  165. package/contracts/workers/executor/src/tests/mod.rs +3 -0
  166. package/contracts/workers/executor/src/tests/setup.rs +250 -0
  167. package/contracts/workers/executor-fee-lib/Cargo.toml +7 -1
  168. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +62 -15
  169. package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
  170. package/contracts/workers/executor-fee-lib/src/lib.rs +11 -2
  171. package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
  172. package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
  173. package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
  174. package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
  175. package/contracts/workers/executor-helper/Cargo.toml +0 -1
  176. package/contracts/workers/executor-helper/src/lib.rs +3 -0
  177. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
  178. package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
  179. package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
  180. package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
  181. package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
  182. package/contracts/workers/price-feed/Cargo.toml +7 -1
  183. package/contracts/workers/price-feed/src/events.rs +1 -1
  184. package/contracts/workers/price-feed/src/lib.rs +12 -4
  185. package/contracts/workers/price-feed/src/price_feed.rs +5 -21
  186. package/contracts/workers/price-feed/src/storage.rs +1 -1
  187. package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
  188. package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
  189. package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
  190. package/contracts/workers/price-feed/src/types.rs +1 -1
  191. package/contracts/workers/worker/src/errors.rs +1 -4
  192. package/contracts/workers/worker/src/lib.rs +0 -2
  193. package/contracts/workers/worker/src/storage.rs +32 -29
  194. package/contracts/workers/worker/src/tests/setup.rs +2 -8
  195. package/contracts/workers/worker/src/tests/worker.rs +96 -74
  196. package/contracts/workers/worker/src/worker.rs +75 -75
  197. package/docs/error-spec.md +55 -0
  198. package/docs/layerzero-v2-on-stellar.md +447 -0
  199. package/docs/oapp-guide.md +212 -0
  200. package/docs/oft-guide.md +314 -0
  201. package/package.json +3 -3
  202. package/sdk/.turbo/turbo-test.log +268 -263
  203. package/sdk/dist/generated/bml.d.ts +12 -4
  204. package/sdk/dist/generated/bml.js +9 -7
  205. package/sdk/dist/generated/counter.d.ts +306 -298
  206. package/sdk/dist/generated/counter.js +48 -46
  207. package/sdk/dist/generated/dvn.d.ts +450 -411
  208. package/sdk/dist/generated/dvn.js +66 -64
  209. package/sdk/dist/generated/dvn_fee_lib.d.ts +294 -338
  210. package/sdk/dist/generated/dvn_fee_lib.js +33 -64
  211. package/sdk/dist/generated/endpoint.d.ts +108 -100
  212. package/sdk/dist/generated/endpoint.js +21 -19
  213. package/sdk/dist/generated/executor.d.ts +414 -370
  214. package/sdk/dist/generated/executor.js +58 -55
  215. package/sdk/dist/generated/executor_fee_lib.d.ts +333 -377
  216. package/sdk/dist/generated/executor_fee_lib.js +34 -65
  217. package/sdk/dist/generated/executor_helper.d.ts +26 -190
  218. package/sdk/dist/generated/executor_helper.js +23 -28
  219. package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
  220. package/sdk/dist/generated/layerzero_view.js +294 -0
  221. package/sdk/dist/generated/oft.d.ts +408 -385
  222. package/sdk/dist/generated/oft.js +89 -92
  223. package/sdk/dist/generated/price_feed.d.ts +385 -429
  224. package/sdk/dist/generated/price_feed.js +50 -81
  225. package/sdk/dist/generated/sml.d.ts +108 -100
  226. package/sdk/dist/generated/sml.js +21 -19
  227. package/sdk/dist/generated/treasury.d.ts +108 -100
  228. package/sdk/dist/generated/treasury.js +21 -19
  229. package/sdk/dist/generated/uln302.d.ts +108 -100
  230. package/sdk/dist/generated/uln302.js +23 -21
  231. package/sdk/dist/generated/upgrader.d.ts +189 -18
  232. package/sdk/dist/generated/upgrader.js +84 -4
  233. package/sdk/dist/index.d.ts +1 -0
  234. package/sdk/dist/index.js +2 -0
  235. package/sdk/package.json +1 -1
  236. package/sdk/src/index.ts +3 -0
  237. package/sdk/test/oft-sml.test.ts +4 -4
  238. package/sdk/test/suites/localnet.ts +84 -20
  239. package/sdk/test/upgrader.test.ts +2 -3
  240. package/tools/ts-bindings-gen/src/main.rs +2 -1
  241. package/contracts/ERROR_SPEC.md +0 -44
  242. package/contracts/endpoint-v2/ARCHITECTURE.md +0 -233
  243. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -175
  244. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -212
  245. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -153
  246. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -294
  247. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
  248. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
  249. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
@@ -1,5 +1,6 @@
1
1
  use super::setup::{bare_worker, TestSetup, WorkerTester};
2
2
  use crate::{
3
+ errors::WorkerError,
3
4
  events::{
4
5
  Paused, SetAdmin, SetAllowlist, SetDefaultMultiplierBps, SetDenylist, SetDepositAddress, SetPriceFeed,
5
6
  SetSupportedMessageLib, SetSupportedOptionTypes, SetWorkerFeeLib, Unpaused,
@@ -7,17 +8,16 @@ use crate::{
7
8
  init_worker,
8
9
  };
9
10
  use soroban_sdk::{testutils::Address as _, vec, Address, Bytes, Env, IntoVal};
10
- use utils::testing_utils::assert_event;
11
+ use utils::testing_utils::assert_eq_event;
11
12
 
12
13
  // pause
13
14
 
14
15
  #[test]
15
- #[should_panic(expected = "Error(Contract, #1212)")] // WorkerError::PauseStatusUnchanged
16
16
  fn test_set_paused_rejects_unchanged_status() {
17
17
  let setup = TestSetup::new();
18
18
 
19
19
  setup.mock_owner_auth("set_paused", (false,));
20
- setup.client.set_paused(&false);
20
+ assert_eq!(setup.client.try_set_paused(&false).unwrap_err().unwrap(), WorkerError::PauseStatusUnchanged.into());
21
21
  }
22
22
 
23
23
  #[test]
@@ -26,19 +26,18 @@ fn test_set_paused_toggles_state() {
26
26
 
27
27
  setup.mock_owner_auth("set_paused", (true,));
28
28
  setup.client.set_paused(&true);
29
- assert_event(&setup.env, &setup.contract_id, Paused { pauser: setup.owner.clone() });
29
+ assert_eq_event(&setup.env, &setup.contract_id, Paused { pauser: setup.owner.clone() });
30
30
  assert_eq!(setup.client.paused(), true);
31
31
 
32
32
  setup.mock_owner_auth("set_paused", (false,));
33
33
  setup.client.set_paused(&false);
34
- assert_event(&setup.env, &setup.contract_id, Unpaused { unpauser: setup.owner.clone() });
34
+ assert_eq_event(&setup.env, &setup.contract_id, Unpaused { unpauser: setup.owner.clone() });
35
35
  assert_eq!(setup.client.paused(), false);
36
36
  }
37
37
 
38
38
  // allowlist
39
39
 
40
40
  #[test]
41
- #[should_panic(expected = "Error(Contract, #1202)")] // WorkerError::AlreadyOnAllowlist
42
41
  fn test_allowlist_rejects_duplicate_add() {
43
42
  let setup = TestSetup::new();
44
43
  let oapp = Address::generate(&setup.env);
@@ -47,17 +46,19 @@ fn test_allowlist_rejects_duplicate_add() {
47
46
  setup.client.set_allowlist(&oapp, &true);
48
47
 
49
48
  setup.mock_owner_auth("set_allowlist", (&oapp, true));
50
- setup.client.set_allowlist(&oapp, &true);
49
+ assert_eq!(
50
+ setup.client.try_set_allowlist(&oapp, &true).unwrap_err().unwrap(),
51
+ WorkerError::AlreadyOnAllowlist.into()
52
+ );
51
53
  }
52
54
 
53
55
  #[test]
54
- #[should_panic(expected = "Error(Contract, #1210)")] // WorkerError::NotOnAllowlist
55
56
  fn test_allowlist_rejects_remove_missing() {
56
57
  let setup = TestSetup::new();
57
58
  let oapp = Address::generate(&setup.env);
58
59
 
59
60
  setup.mock_owner_auth("set_allowlist", (&oapp, false));
60
- setup.client.set_allowlist(&oapp, &false);
61
+ assert_eq!(setup.client.try_set_allowlist(&oapp, &false).unwrap_err().unwrap(), WorkerError::NotOnAllowlist.into());
61
62
  }
62
63
 
63
64
  #[test]
@@ -70,7 +71,7 @@ fn test_allowlist_remove_decrements_size_and_restores_default_acl() {
70
71
  assert_eq!(setup.client.is_on_allowlist(&oapp_a), false);
71
72
  setup.mock_owner_auth("set_allowlist", (&oapp_a, true));
72
73
  setup.client.set_allowlist(&oapp_a, &true);
73
- assert_event(&setup.env, &setup.contract_id, SetAllowlist { oapp: oapp_a.clone(), allowed: true });
74
+ assert_eq_event(&setup.env, &setup.contract_id, SetAllowlist { oapp: oapp_a.clone(), allowed: true });
74
75
  assert_eq!(setup.client.is_on_allowlist(&oapp_a), true);
75
76
  assert_eq!(setup.client.allowlist_size(), 1);
76
77
  assert_eq!(setup.client.has_acl(&oapp_a), true);
@@ -79,7 +80,7 @@ fn test_allowlist_remove_decrements_size_and_restores_default_acl() {
79
80
  // Remove last allowlist entry => allowlist empty; default allows all (unless denylisted)
80
81
  setup.mock_owner_auth("set_allowlist", (&oapp_a, false));
81
82
  setup.client.set_allowlist(&oapp_a, &false);
82
- assert_event(&setup.env, &setup.contract_id, SetAllowlist { oapp: oapp_a.clone(), allowed: false });
83
+ assert_eq_event(&setup.env, &setup.contract_id, SetAllowlist { oapp: oapp_a.clone(), allowed: false });
83
84
  assert_eq!(setup.client.is_on_allowlist(&oapp_a), false);
84
85
  assert_eq!(setup.client.allowlist_size(), 0);
85
86
  assert_eq!(setup.client.has_acl(&oapp_b), true);
@@ -88,7 +89,6 @@ fn test_allowlist_remove_decrements_size_and_restores_default_acl() {
88
89
  // denylist
89
90
 
90
91
  #[test]
91
- #[should_panic(expected = "Error(Contract, #1203)")] // WorkerError::AlreadyOnDenylist
92
92
  fn test_denylist_rejects_duplicate_add() {
93
93
  let setup = TestSetup::new();
94
94
  let oapp = Address::generate(&setup.env);
@@ -97,17 +97,19 @@ fn test_denylist_rejects_duplicate_add() {
97
97
  setup.client.set_denylist(&oapp, &true);
98
98
 
99
99
  setup.mock_owner_auth("set_denylist", (&oapp, true));
100
- setup.client.set_denylist(&oapp, &true);
100
+ assert_eq!(
101
+ setup.client.try_set_denylist(&oapp, &true).unwrap_err().unwrap(),
102
+ WorkerError::AlreadyOnDenylist.into()
103
+ );
101
104
  }
102
105
 
103
106
  #[test]
104
- #[should_panic(expected = "Error(Contract, #1211)")] // WorkerError::NotOnDenylist
105
107
  fn test_denylist_rejects_remove_missing() {
106
108
  let setup = TestSetup::new();
107
109
  let oapp = Address::generate(&setup.env);
108
110
 
109
111
  setup.mock_owner_auth("set_denylist", (&oapp, false));
110
- setup.client.set_denylist(&oapp, &false);
112
+ assert_eq!(setup.client.try_set_denylist(&oapp, &false).unwrap_err().unwrap(), WorkerError::NotOnDenylist.into());
111
113
  }
112
114
 
113
115
  // message_libs
@@ -122,7 +124,7 @@ fn test_message_lib_add_remove_and_errors() {
122
124
  // Add new supported lib
123
125
  setup.mock_owner_auth("set_supported_message_lib", (&new_lib, true));
124
126
  setup.client.set_supported_message_lib(&new_lib, &true);
125
- assert_event(
127
+ assert_eq_event(
126
128
  &setup.env,
127
129
  &setup.contract_id,
128
130
  SetSupportedMessageLib { message_lib: new_lib.clone(), supported: true },
@@ -132,7 +134,7 @@ fn test_message_lib_add_remove_and_errors() {
132
134
  // Remove it
133
135
  setup.mock_owner_auth("set_supported_message_lib", (&new_lib, false));
134
136
  setup.client.set_supported_message_lib(&new_lib, &false);
135
- assert_event(
137
+ assert_eq_event(
136
138
  &setup.env,
137
139
  &setup.contract_id,
138
140
  SetSupportedMessageLib { message_lib: new_lib.clone(), supported: false },
@@ -144,29 +146,32 @@ fn test_message_lib_add_remove_and_errors() {
144
146
  }
145
147
 
146
148
  #[test]
147
- #[should_panic(expected = "Error(Contract, #1206)")] // WorkerError::MessageLibAlreadySupported
148
149
  fn test_message_lib_rejects_duplicate_add() {
149
150
  let setup = TestSetup::new();
150
151
  let existing = setup.message_libs.get(0).unwrap();
151
152
 
152
153
  setup.mock_owner_auth("set_supported_message_lib", (&existing, true));
153
- setup.client.set_supported_message_lib(&existing, &true);
154
+ assert_eq!(
155
+ setup.client.try_set_supported_message_lib(&existing, &true).unwrap_err().unwrap(),
156
+ WorkerError::MessageLibAlreadySupported.into()
157
+ );
154
158
  }
155
159
 
156
160
  #[test]
157
- #[should_panic(expected = "Error(Contract, #1207)")] // WorkerError::MessageLibNotSupported
158
161
  fn test_message_lib_rejects_remove_missing() {
159
162
  let setup = TestSetup::new();
160
163
  let missing = Address::generate(&setup.env);
161
164
 
162
165
  setup.mock_owner_auth("set_supported_message_lib", (&missing, false));
163
- setup.client.set_supported_message_lib(&missing, &false);
166
+ assert_eq!(
167
+ setup.client.try_set_supported_message_lib(&missing, &false).unwrap_err().unwrap(),
168
+ WorkerError::MessageLibNotSupported.into()
169
+ );
164
170
  }
165
171
 
166
172
  // admin-only setters
167
173
 
168
174
  #[test]
169
- #[should_panic(expected = "Error(Contract, #1215)")] // WorkerError::Unauthorized
170
175
  fn test_admin_only_set_default_multiplier_requires_admin_membership() {
171
176
  let setup = TestSetup::new();
172
177
 
@@ -175,7 +180,10 @@ fn test_admin_only_set_default_multiplier_requires_admin_membership() {
175
180
 
176
181
  // Auth passes, but address isn't in admins list => Unauthorized
177
182
  setup.mock_auth(&non_admin, "set_default_multiplier_bps", (&non_admin, bps));
178
- setup.client.set_default_multiplier_bps(&non_admin, &bps);
183
+ assert_eq!(
184
+ setup.client.try_set_default_multiplier_bps(&non_admin, &bps).unwrap_err().unwrap(),
185
+ WorkerError::Unauthorized.into()
186
+ );
179
187
  }
180
188
 
181
189
  #[test]
@@ -187,15 +195,15 @@ fn test_admin_setters_update_storage_and_events() {
187
195
  let bps = 12_000u32;
188
196
  setup.mock_auth(&admin, "set_default_multiplier_bps", (&admin, bps));
189
197
  setup.client.set_default_multiplier_bps(&admin, &bps);
190
- assert_event(&setup.env, &setup.contract_id, SetDefaultMultiplierBps { multiplier_bps: bps });
198
+ assert_eq_event(&setup.env, &setup.contract_id, SetDefaultMultiplierBps { multiplier_bps: bps });
191
199
  assert_eq!(setup.client.default_multiplier_bps(), bps);
192
200
 
193
201
  // set_deposit_address
194
202
  let new_deposit = Address::generate(&setup.env);
195
203
  setup.mock_auth(&admin, "set_deposit_address", (&admin, &new_deposit));
196
204
  setup.client.set_deposit_address(&admin, &new_deposit);
197
- assert_event(&setup.env, &setup.contract_id, SetDepositAddress { deposit_address: new_deposit.clone() });
198
- assert_eq!(setup.client.deposit_address(), new_deposit);
205
+ assert_eq_event(&setup.env, &setup.contract_id, SetDepositAddress { deposit_address: new_deposit.clone() });
206
+ assert_eq!(setup.client.deposit_address(), Some(new_deposit));
199
207
 
200
208
  // set_supported_option_types
201
209
  let eid_a = 1u32;
@@ -204,7 +212,7 @@ fn test_admin_setters_update_storage_and_events() {
204
212
  let option_types = Bytes::from_slice(&setup.env, &[0xAA, 0xBB, 0xCC]);
205
213
  setup.mock_auth(&admin, "set_supported_option_types", (&admin, eid_a, option_types.clone()));
206
214
  setup.client.set_supported_option_types(&admin, &eid_a, &option_types);
207
- assert_event(
215
+ assert_eq_event(
208
216
  &setup.env,
209
217
  &setup.contract_id,
210
218
  SetSupportedOptionTypes { dst_eid: eid_a, option_types: option_types.clone() },
@@ -217,15 +225,15 @@ fn test_admin_setters_update_storage_and_events() {
217
225
  let new_fee_lib = Address::generate(&setup.env);
218
226
  setup.mock_auth(&admin, "set_worker_fee_lib", (&admin, &new_fee_lib));
219
227
  setup.client.set_worker_fee_lib(&admin, &new_fee_lib);
220
- assert_event(&setup.env, &setup.contract_id, SetWorkerFeeLib { fee_lib: new_fee_lib.clone() });
221
- assert_eq!(setup.client.worker_fee_lib(), new_fee_lib);
228
+ assert_eq_event(&setup.env, &setup.contract_id, SetWorkerFeeLib { fee_lib: new_fee_lib.clone() });
229
+ assert_eq!(setup.client.worker_fee_lib(), Some(new_fee_lib));
222
230
 
223
231
  // set_price_feed
224
232
  let new_price_feed = Address::generate(&setup.env);
225
233
  setup.mock_auth(&admin, "set_price_feed", (&admin, &new_price_feed));
226
234
  setup.client.set_price_feed(&admin, &new_price_feed);
227
- assert_event(&setup.env, &setup.contract_id, SetPriceFeed { price_feed: new_price_feed.clone() });
228
- assert_eq!(setup.client.price_feed(), new_price_feed);
235
+ assert_eq_event(&setup.env, &setup.contract_id, SetPriceFeed { price_feed: new_price_feed.clone() });
236
+ assert_eq!(setup.client.price_feed(), Some(new_price_feed));
229
237
  }
230
238
 
231
239
  // view functions
@@ -243,14 +251,14 @@ fn test_acl_allowlist_denylist_precedence() {
243
251
  assert_eq!(setup.client.is_on_denylist(&oapp_a), false);
244
252
  setup.mock_owner_auth("set_denylist", (&oapp_a, true));
245
253
  setup.client.set_denylist(&oapp_a, &true);
246
- assert_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: true });
254
+ assert_eq_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: true });
247
255
  assert_eq!(setup.client.is_on_denylist(&oapp_a), true);
248
256
  assert_eq!(setup.client.has_acl(&oapp_a), false);
249
257
 
250
258
  // Remove from denylist => allowed again (since allowlist is empty)
251
259
  setup.mock_owner_auth("set_denylist", (&oapp_a, false));
252
260
  setup.client.set_denylist(&oapp_a, &false);
253
- assert_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: false });
261
+ assert_eq_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: false });
254
262
  assert_eq!(setup.client.is_on_denylist(&oapp_a), false);
255
263
  assert_eq!(setup.client.has_acl(&oapp_a), true);
256
264
 
@@ -264,43 +272,40 @@ fn test_acl_allowlist_denylist_precedence() {
264
272
  // Denylist must override allowlist even for the same OApp.
265
273
  setup.mock_owner_auth("set_denylist", (&oapp_a, true));
266
274
  setup.client.set_denylist(&oapp_a, &true);
267
- assert_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: true });
275
+ assert_eq_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: true });
268
276
  assert_eq!(setup.client.has_acl(&oapp_a), false);
269
277
 
270
278
  // Removing from denylist should restore allowlist effect.
271
279
  setup.mock_owner_auth("set_denylist", (&oapp_a, false));
272
280
  setup.client.set_denylist(&oapp_a, &false);
273
- assert_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: false });
281
+ assert_eq_event(&setup.env, &setup.contract_id, SetDenylist { oapp: oapp_a.clone(), denied: false });
274
282
  assert_eq!(setup.client.has_acl(&oapp_a), true);
275
283
  }
276
284
 
277
285
  // uninitialized getters (BareWorker)
278
286
 
279
287
  #[test]
280
- #[should_panic(expected = "Error(Contract, #1205)")] // WorkerError::DepositAddressNotSet
281
288
  fn test_view_panics_when_deposit_address_unset() {
282
289
  let env = Env::default();
283
290
  let owner = Address::generate(&env);
284
291
  let (_cid, client) = bare_worker(&env, &owner);
285
- let _ = client.deposit_address();
292
+ assert_eq!(client.deposit_address(), None);
286
293
  }
287
294
 
288
295
  #[test]
289
- #[should_panic(expected = "Error(Contract, #1213)")] // WorkerError::PriceFeedNotSet
290
296
  fn test_view_panics_when_price_feed_unset() {
291
297
  let env = Env::default();
292
298
  let owner = Address::generate(&env);
293
299
  let (_cid, client) = bare_worker(&env, &owner);
294
- let _ = client.price_feed();
300
+ assert_eq!(client.price_feed(), None);
295
301
  }
296
302
 
297
303
  #[test]
298
- #[should_panic(expected = "Error(Contract, #1217)")] // WorkerError::WorkerFeeLibNotSet
299
304
  fn test_view_panics_when_worker_fee_lib_unset() {
300
305
  let env = Env::default();
301
306
  let owner = Address::generate(&env);
302
307
  let (_cid, client) = bare_worker(&env, &owner);
303
- let _ = client.worker_fee_lib();
308
+ assert_eq!(client.worker_fee_lib(), None);
304
309
  }
305
310
 
306
311
  #[test]
@@ -314,8 +319,7 @@ fn test_default_multiplier_bps_returns_zero_when_unset() {
314
319
  // init_worker / construction
315
320
 
316
321
  #[test]
317
- #[should_panic(expected = "Error(Contract, #1208)")] // WorkerError::NoAdminsProvided
318
- fn test_init_worker_requires_non_empty_admins() {
322
+ fn test_init_worker_allows_empty_admins() {
319
323
  let env = Env::default();
320
324
 
321
325
  let owner = Address::generate(&env);
@@ -326,29 +330,39 @@ fn test_init_worker_requires_non_empty_admins() {
326
330
  let deposit_address = Address::generate(&env);
327
331
  let default_multiplier_bps = 10_000u32;
328
332
 
329
- // Panics inside __constructor via init_worker()
330
- let _ = env.register(
333
+ // Empty admins is now allowed
334
+ let cid = env.register(
331
335
  WorkerTester,
332
336
  (&owner, &admins, &message_libs, &price_feed, &default_multiplier_bps, &worker_fee_lib, &deposit_address),
333
337
  );
338
+ let client = super::setup::WorkerTesterClient::new(&env, &cid);
339
+ assert_eq!(client.admins().len(), 0);
334
340
  }
335
341
 
336
342
  #[test]
337
- #[should_panic(expected = "Error(Contract, #1214)")] // WorkerError::ReInitialize
338
- fn test_init_worker_cannot_reinitialize() {
343
+ fn test_init_worker_can_reinitialize() {
339
344
  let setup = TestSetup::new();
345
+ let new_admin = Address::generate(&setup.env);
346
+ let new_admins = vec![&setup.env, new_admin.clone()];
347
+ let new_message_lib = Address::generate(&setup.env);
348
+ let new_message_libs = vec![&setup.env, new_message_lib.clone()];
340
349
 
350
+ // Re-initialization is allowed - adds new admins and message libs
341
351
  setup.as_contract(|| {
342
352
  init_worker::<WorkerTester>(
343
353
  &setup.env,
344
- &setup.admins,
345
- &setup.message_libs,
354
+ &new_admins,
355
+ &new_message_libs, // Use new message libs to avoid duplicate error
346
356
  &setup.price_feed,
347
357
  setup.default_multiplier_bps,
348
358
  &setup.worker_fee_lib,
349
359
  &setup.deposit_address,
350
360
  );
351
361
  });
362
+
363
+ // Verify new admin and message lib were added
364
+ assert!(setup.client.is_admin(&new_admin));
365
+ assert!(setup.client.is_supported_message_lib(&new_message_lib));
352
366
  }
353
367
 
354
368
  #[test]
@@ -358,9 +372,9 @@ fn test_init_worker_sets_config_and_defaults() {
358
372
  assert_eq!(setup.client.paused(), false);
359
373
  assert_eq!(setup.client.admins(), setup.admins);
360
374
  assert_eq!(setup.client.message_libs(), setup.message_libs);
361
- assert_eq!(setup.client.price_feed(), setup.price_feed);
362
- assert_eq!(setup.client.worker_fee_lib(), setup.worker_fee_lib);
363
- assert_eq!(setup.client.deposit_address(), setup.deposit_address);
375
+ assert_eq!(setup.client.price_feed(), Some(setup.price_feed));
376
+ assert_eq!(setup.client.worker_fee_lib(), Some(setup.worker_fee_lib));
377
+ assert_eq!(setup.client.deposit_address(), Some(setup.deposit_address));
364
378
  assert_eq!(setup.client.default_multiplier_bps(), setup.default_multiplier_bps);
365
379
  assert_eq!(setup.client.allowlist_size(), 0);
366
380
 
@@ -375,40 +389,43 @@ fn test_admin_management_by_owner_adds_and_removes_admin() {
375
389
  let setup = TestSetup::new();
376
390
  let new_admin = Address::generate(&setup.env);
377
391
 
378
- setup.mock_owner_auth("set_admin_by_owner_for_test", (&new_admin, true));
379
- setup.client.set_admin_by_owner_for_test(&new_admin, &true);
380
- assert_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: true });
392
+ setup.mock_owner_auth("set_admin", (&new_admin, true));
393
+ setup.client.set_admin(&new_admin, &true);
394
+ assert_eq_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: true });
381
395
  assert_eq!(setup.client.is_admin(&new_admin), true);
382
396
 
383
- setup.mock_owner_auth("set_admin_by_owner_for_test", (&new_admin, false));
384
- setup.client.set_admin_by_owner_for_test(&new_admin, &false);
385
- assert_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: false });
397
+ setup.mock_owner_auth("set_admin", (&new_admin, false));
398
+ setup.client.set_admin(&new_admin, &false);
399
+ assert_eq_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: false });
386
400
  assert_eq!(setup.client.is_admin(&new_admin), false);
387
401
  }
388
402
 
389
403
  #[test]
390
- #[should_panic(expected = "Error(Contract, #1200)")] // WorkerError::AdminAlreadyExists
391
404
  fn test_admin_management_by_owner_rejects_duplicate_add() {
392
405
  let setup = TestSetup::new();
393
406
  let existing_admin = setup.admins.get(0).unwrap();
394
407
 
395
- setup.mock_owner_auth("set_admin_by_owner_for_test", (&existing_admin, true));
396
- setup.client.set_admin_by_owner_for_test(&existing_admin, &true);
408
+ setup.mock_owner_auth("set_admin", (&existing_admin, true));
409
+ assert_eq!(
410
+ setup.client.try_set_admin(&existing_admin, &true).unwrap_err().unwrap(),
411
+ WorkerError::AdminAlreadyExists.into()
412
+ );
397
413
  }
398
414
 
399
415
  #[test]
400
- #[should_panic(expected = "Error(Contract, #1201)")] // WorkerError::AdminNotFound
401
416
  fn test_admin_management_by_owner_rejects_remove_missing_admin() {
402
417
  let setup = TestSetup::new();
403
418
  let missing_admin = Address::generate(&setup.env);
404
419
 
405
- setup.mock_owner_auth("set_admin_by_owner_for_test", (&missing_admin, false));
406
- setup.client.set_admin_by_owner_for_test(&missing_admin, &false);
420
+ setup.mock_owner_auth("set_admin", (&missing_admin, false));
421
+ assert_eq!(
422
+ setup.client.try_set_admin(&missing_admin, &false).unwrap_err().unwrap(),
423
+ WorkerError::AdminNotFound.into()
424
+ );
407
425
  }
408
426
 
409
427
  #[test]
410
- #[should_panic(expected = "Error(Contract, #1204)")] // WorkerError::AttemptingToRemoveOnlyAdmin
411
- fn test_admin_management_cannot_remove_last_admin() {
428
+ fn test_admin_management_can_remove_last_admin() {
412
429
  let env = Env::default();
413
430
  let owner = Address::generate(&env);
414
431
  let admins: soroban_sdk::Vec<Address> = vec![&env, Address::generate(&env)];
@@ -429,13 +446,16 @@ fn test_admin_management_cannot_remove_last_admin() {
429
446
  address: &owner,
430
447
  invoke: &soroban_sdk::testutils::MockAuthInvoke {
431
448
  contract: &cid,
432
- fn_name: "set_admin_by_owner_for_test",
449
+ fn_name: "set_admin",
433
450
  args: (&only_admin, false).into_val(&env),
434
451
  sub_invokes: &[],
435
452
  },
436
453
  }]);
437
454
 
438
- client.set_admin_by_owner_for_test(&only_admin, &false);
455
+ // Removing the last admin is now allowed
456
+ client.set_admin(&only_admin, &false);
457
+ assert_eq!(client.is_admin(&only_admin), false);
458
+ assert_eq!(client.admins().len(), 0);
439
459
  }
440
460
 
441
461
  #[test]
@@ -446,23 +466,25 @@ fn test_admin_management_by_admin_can_add_admin() {
446
466
 
447
467
  setup.mock_auth(&caller, "set_admin_by_admin_for_test", (&caller, &new_admin, true));
448
468
  setup.client.set_admin_by_admin_for_test(&caller, &new_admin, &true);
449
- assert_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: true });
469
+ assert_eq_event(&setup.env, &setup.contract_id, SetAdmin { admin: new_admin.clone(), active: true });
450
470
  assert_eq!(setup.client.is_admin(&new_admin), true);
451
471
  }
452
472
 
453
473
  #[test]
454
- #[should_panic(expected = "Error(Contract, #1215)")] // WorkerError::Unauthorized
455
474
  fn test_admin_management_by_admin_requires_caller_is_admin() {
456
475
  let setup = TestSetup::new();
457
476
  let non_admin = Address::generate(&setup.env);
458
477
  let new_admin = Address::generate(&setup.env);
459
478
 
460
479
  setup.mock_auth(&non_admin, "set_admin_by_admin_for_test", (&non_admin, &new_admin, true));
461
- setup.client.set_admin_by_admin_for_test(&non_admin, &new_admin, &true);
480
+ assert_eq!(
481
+ setup.client.try_set_admin_by_admin_for_test(&non_admin, &new_admin, &true).unwrap_err().unwrap(),
482
+ WorkerError::Unauthorized.into()
483
+ );
462
484
  }
463
485
 
464
486
  #[test]
465
- #[should_panic(expected = "Error(Contract, #1209)")] // WorkerError::NotAllowed
487
+ #[should_panic(expected = "Error(Contract, #1207)")] // WorkerError::NotAllowed
466
488
  fn test_assert_acl_rejects_when_not_allowed() {
467
489
  let setup = TestSetup::new();
468
490
  let allowed = Address::generate(&setup.env);
@@ -478,7 +500,7 @@ fn test_assert_acl_rejects_when_not_allowed() {
478
500
  }
479
501
 
480
502
  #[test]
481
- #[should_panic(expected = "Error(Contract, #1216)")] // WorkerError::UnsupportedMessageLib
503
+ #[should_panic(expected = "Error(Contract, #1213)")] // WorkerError::UnsupportedMessageLib
482
504
  fn test_assert_supported_message_lib_rejects_unsupported() {
483
505
  let setup = TestSetup::new();
484
506
  let unsupported = Address::generate(&setup.env);
@@ -489,7 +511,7 @@ fn test_assert_supported_message_lib_rejects_unsupported() {
489
511
  }
490
512
 
491
513
  #[test]
492
- #[should_panic(expected = "Error(Contract, #1218)")] // WorkerError::WorkerIsPaused
514
+ #[should_panic(expected = "Error(Contract, #1215)")] // WorkerError::WorkerIsPaused
493
515
  fn test_assert_not_paused_panics_when_paused() {
494
516
  let setup = TestSetup::new();
495
517