@layerzerolabs/protocol-stellar-v2 0.2.121 → 0.2.122

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 (752) hide show
  1. package/Cargo.toml +22 -37
  2. package/docs/error-spec.md +24 -24
  3. package/docs/layerzero-v2-on-stellar.md +8 -6
  4. package/docs/oapp-guide.md +2 -402
  5. package/docs/oft-guide.md +2 -401
  6. package/{contracts/endpoint-v2 → endpoint-v2}/Cargo.toml +3 -2
  7. package/{contracts/layerzero-views → layerzero-views}/Cargo.toml +1 -6
  8. package/{contracts/message-libs → message-libs}/blocked-message-lib/Cargo.toml +0 -1
  9. package/{contracts/message-libs → message-libs}/message-lib-common/Cargo.toml +2 -2
  10. package/{contracts/message-libs → message-libs}/simple-message-lib/Cargo.toml +1 -2
  11. package/{contracts/message-libs → message-libs}/treasury/Cargo.toml +1 -2
  12. package/{contracts/message-libs → message-libs}/uln-302/Cargo.toml +3 -2
  13. package/package.json +32 -15
  14. package/rustfmt.toml +0 -2
  15. package/{contracts/upgrader → upgrader}/Cargo.toml +0 -1
  16. package/{contracts/workers → workers}/dvn/Cargo.toml +1 -2
  17. package/{contracts/workers → workers}/dvn-fee-lib/Cargo.toml +1 -2
  18. package/{contracts/workers → workers}/executor/Cargo.toml +3 -2
  19. package/{contracts/workers → workers}/executor-fee-lib/Cargo.toml +1 -2
  20. package/{contracts/workers → workers}/executor-helper/Cargo.toml +0 -1
  21. package/{contracts/workers → workers}/fee-lib-interfaces/Cargo.toml +0 -1
  22. package/{contracts/workers → workers}/price-feed/Cargo.toml +1 -2
  23. package/{contracts/workers → workers}/worker/Cargo.toml +0 -1
  24. package/.turbo/turbo-build.log +0 -1363
  25. package/.turbo/turbo-lint.log +0 -401
  26. package/.turbo/turbo-test.log +0 -1952
  27. package/Cargo.lock +0 -2357
  28. package/contracts/common-macros/Cargo.toml +0 -20
  29. package/contracts/common-macros/src/auth.rs +0 -95
  30. package/contracts/common-macros/src/contract_ttl.rs +0 -92
  31. package/contracts/common-macros/src/error.rs +0 -43
  32. package/contracts/common-macros/src/lib.rs +0 -585
  33. package/contracts/common-macros/src/lz_contract.rs +0 -105
  34. package/contracts/common-macros/src/rbac.rs +0 -90
  35. package/contracts/common-macros/src/storage.rs +0 -522
  36. package/contracts/common-macros/src/tests/auth.rs +0 -230
  37. package/contracts/common-macros/src/tests/contract_ttl.rs +0 -695
  38. package/contracts/common-macros/src/tests/error.rs +0 -156
  39. package/contracts/common-macros/src/tests/lz_contract.rs +0 -87
  40. package/contracts/common-macros/src/tests/mod.rs +0 -11
  41. package/contracts/common-macros/src/tests/rbac.rs +0 -523
  42. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +0 -31
  43. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +0 -39
  44. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap +0 -19
  45. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +0 -77
  46. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +0 -46
  47. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__error__snapshot_generated_contract_error_code.snap +0 -20
  48. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__lz_contract__snapshot_generated_lz_contract_code.snap +0 -51
  49. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__rbac__snapshot_authorizer_role.snap +0 -21
  50. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__rbac__snapshot_preserve_function_signature.snap +0 -21
  51. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +0 -10
  52. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_extendable__snapshot_generated_ttl_extendable_code.snap +0 -8
  53. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +0 -28
  54. package/contracts/common-macros/src/tests/storage/extract_fields.rs +0 -87
  55. package/contracts/common-macros/src/tests/storage/gen_accessor_methods.rs +0 -223
  56. package/contracts/common-macros/src/tests/storage/gen_args.rs +0 -65
  57. package/contracts/common-macros/src/tests/storage/gen_enum_variant.rs +0 -78
  58. package/contracts/common-macros/src/tests/storage/gen_key.rs +0 -108
  59. package/contracts/common-macros/src/tests/storage/gen_params.rs +0 -105
  60. package/contracts/common-macros/src/tests/storage/generate_storage.rs +0 -410
  61. package/contracts/common-macros/src/tests/storage/is_primitive_type.rs +0 -48
  62. package/contracts/common-macros/src/tests/storage/mod.rs +0 -16
  63. package/contracts/common-macros/src/tests/storage/parse_default.rs +0 -164
  64. package/contracts/common-macros/src/tests/storage/parse_name.rs +0 -158
  65. package/contracts/common-macros/src/tests/storage/parse_no_ttl_extension.rs +0 -124
  66. package/contracts/common-macros/src/tests/storage/parse_storage_type.rs +0 -174
  67. package/contracts/common-macros/src/tests/storage/snapshots/common_macros__tests__storage__generate_storage__snapshot_generated_storage_code.snap +0 -412
  68. package/contracts/common-macros/src/tests/storage/storage_kind.rs +0 -39
  69. package/contracts/common-macros/src/tests/storage/test_setup.rs +0 -25
  70. package/contracts/common-macros/src/tests/storage/validate_attrs.rs +0 -138
  71. package/contracts/common-macros/src/tests/storage/variant_config.rs +0 -226
  72. package/contracts/common-macros/src/tests/test_helpers.rs +0 -87
  73. package/contracts/common-macros/src/tests/ttl_configurable.rs +0 -34
  74. package/contracts/common-macros/src/tests/ttl_extendable.rs +0 -32
  75. package/contracts/common-macros/src/tests/upgradeable.rs +0 -169
  76. package/contracts/common-macros/src/tests/utils.rs +0 -267
  77. package/contracts/common-macros/src/ttl_configurable.rs +0 -24
  78. package/contracts/common-macros/src/ttl_extendable.rs +0 -28
  79. package/contracts/common-macros/src/upgradeable.rs +0 -136
  80. package/contracts/common-macros/src/utils.rs +0 -56
  81. package/contracts/macro-integration-tests/Cargo.toml +0 -20
  82. package/contracts/macro-integration-tests/src/lib.rs +0 -1
  83. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/constructor.rs +0 -61
  84. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_impl_ttl_extension.rs +0 -97
  85. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/contract_trait_ttl_extension.rs +0 -99
  86. package/contracts/macro-integration-tests/tests/runtime/contract_ttl/mod.rs +0 -3
  87. package/contracts/macro-integration-tests/tests/runtime/lz_contract/mod.rs +0 -5
  88. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_default.rs +0 -86
  89. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig.rs +0 -47
  90. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_multisig_upgradeable.rs +0 -77
  91. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable.rs +0 -114
  92. package/contracts/macro-integration-tests/tests/runtime/lz_contract/wrapper_upgradeable_no_migration.rs +0 -105
  93. package/contracts/macro-integration-tests/tests/runtime/multisig/admin_entrypoints.rs +0 -242
  94. package/contracts/macro-integration-tests/tests/runtime/multisig/mod.rs +0 -9
  95. package/contracts/macro-integration-tests/tests/runtime/multisig/self_auth.rs +0 -54
  96. package/contracts/macro-integration-tests/tests/runtime/oapp/mod.rs +0 -46
  97. package/contracts/macro-integration-tests/tests/runtime/oapp/oapp_core.rs +0 -170
  98. package/contracts/macro-integration-tests/tests/runtime/oapp/options_type3.rs +0 -154
  99. package/contracts/macro-integration-tests/tests/runtime/oapp/receiver.rs +0 -338
  100. package/contracts/macro-integration-tests/tests/runtime/oapp/sender.rs +0 -437
  101. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +0 -78
  102. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +0 -23
  103. package/contracts/macro-integration-tests/tests/runtime/ownable/only_auth_guard.rs +0 -97
  104. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +0 -170
  105. package/contracts/macro-integration-tests/tests/runtime/ownable/two_step_transfer.rs +0 -221
  106. package/contracts/macro-integration-tests/tests/runtime/rbac/guard_behavior.rs +0 -91
  107. package/contracts/macro-integration-tests/tests/runtime/rbac/mod.rs +0 -30
  108. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +0 -266
  109. package/contracts/macro-integration-tests/tests/runtime/storage/mod.rs +0 -4
  110. package/contracts/macro-integration-tests/tests/runtime/storage/name_override_runtime.rs +0 -52
  111. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +0 -293
  112. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +0 -147
  113. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +0 -206
  114. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +0 -143
  115. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -2
  116. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/extend_instance_ttl.rs +0 -64
  117. package/contracts/macro-integration-tests/tests/runtime/ttl_extendable/mod.rs +0 -16
  118. package/contracts/macro-integration-tests/tests/runtime/upgradeable/migrate_guard_and_state.rs +0 -243
  119. package/contracts/macro-integration-tests/tests/runtime/upgradeable/mod.rs +0 -3
  120. package/contracts/macro-integration-tests/tests/runtime/upgradeable/no_migration.rs +0 -59
  121. package/contracts/macro-integration-tests/tests/runtime/upgradeable/upgrade_then_migrate.rs +0 -88
  122. package/contracts/macro-integration-tests/tests/runtime.rs +0 -11
  123. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.rs +0 -6
  124. package/contracts/macro-integration-tests/tests/ui/contract_impl/fail/not_impl_item.stderr +0 -7
  125. package/contracts/macro-integration-tests/tests/ui/contract_impl/pass/basic.rs +0 -102
  126. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.rs +0 -6
  127. package/contracts/macro-integration-tests/tests/ui/contract_trait/fail/not_a_trait.stderr +0 -7
  128. package/contracts/macro-integration-tests/tests/ui/contract_trait/pass/basic.rs +0 -83
  129. package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.rs +0 -12
  130. package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.stderr +0 -7
  131. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.rs +0 -11
  132. package/contracts/macro-integration-tests/tests/ui/error/fail/discriminant_too_large.stderr +0 -7
  133. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.rs +0 -11
  134. package/contracts/macro-integration-tests/tests/ui/error/fail/non_enum_input.stderr +0 -7
  135. package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.rs +0 -21
  136. package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.stderr +0 -7
  137. package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.rs +0 -13
  138. package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.stderr +0 -7
  139. package/contracts/macro-integration-tests/tests/ui/error/pass/basic.rs +0 -22
  140. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.rs +0 -6
  141. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/invalid_option.stderr +0 -7
  142. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.rs +0 -20
  143. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/multisig_rejects_ownable_api.stderr +0 -20
  144. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.rs +0 -8
  145. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/not_a_struct.stderr +0 -7
  146. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.rs +0 -10
  147. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_invalid_inner_option.stderr +0 -30
  148. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.rs +0 -20
  149. package/contracts/macro-integration-tests/tests/ui/lz_contract/fail/upgradeable_missing_internal.stderr +0 -56
  150. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/basic.rs +0 -45
  151. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig.rs +0 -34
  152. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/multisig_upgradeable.rs +0 -30
  153. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable.rs +0 -39
  154. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_no_migration.rs +0 -28
  155. package/contracts/macro-integration-tests/tests/ui/lz_contract/pass/upgradeable_rbac.rs +0 -44
  156. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.rs +0 -8
  157. package/contracts/macro-integration-tests/tests/ui/multisig/fail/non_struct_input.stderr +0 -7
  158. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.rs +0 -20
  159. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_api.stderr +0 -12
  160. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.rs +0 -20
  161. package/contracts/macro-integration-tests/tests/ui/multisig/fail/rejects_ownable_trait.stderr +0 -5
  162. package/contracts/macro-integration-tests/tests/ui/multisig/pass/basic.rs +0 -49
  163. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.rs +0 -8
  164. package/contracts/macro-integration-tests/tests/ui/oapp/fail/custom_wrong_value.stderr +0 -7
  165. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.rs +0 -28
  166. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_auth_trait.stderr +0 -397
  167. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.rs +0 -9
  168. package/contracts/macro-integration-tests/tests/ui/oapp/fail/missing_lz_receive_internal.stderr +0 -71
  169. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.rs +0 -10
  170. package/contracts/macro-integration-tests/tests/ui/oapp/fail/non_struct_input.stderr +0 -7
  171. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.rs +0 -8
  172. package/contracts/macro-integration-tests/tests/ui/oapp/fail/unknown_custom_option.stderr +0 -7
  173. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.rs +0 -8
  174. package/contracts/macro-integration-tests/tests/ui/oapp/fail/wrong_key.stderr +0 -7
  175. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_all.rs +0 -42
  176. package/contracts/macro-integration-tests/tests/ui/oapp/pass/custom_single_trait.rs +0 -103
  177. package/contracts/macro-integration-tests/tests/ui/oapp/pass/minimal_contract.rs +0 -65
  178. package/contracts/macro-integration-tests/tests/ui/oapp/pass/struct_with_fields.rs +0 -48
  179. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.rs +0 -8
  180. package/contracts/macro-integration-tests/tests/ui/ownable/fail/non_struct_input.stderr +0 -7
  181. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.rs +0 -19
  182. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_auth.stderr +0 -12
  183. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.rs +0 -22
  184. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_auth_missing_env.stderr +0 -16
  185. package/contracts/macro-integration-tests/tests/ui/ownable/pass/basic.rs +0 -39
  186. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_auth_env_param_variants.rs +0 -52
  187. package/contracts/macro-integration-tests/tests/ui/rbac/fail/missing_env.rs +0 -18
  188. package/contracts/macro-integration-tests/tests/ui/rbac/fail/missing_env.stderr +0 -16
  189. package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_address.rs +0 -18
  190. package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_address.stderr +0 -24
  191. package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_found.rs +0 -18
  192. package/contracts/macro-integration-tests/tests/ui/rbac/fail/param_not_found.stderr +0 -24
  193. package/contracts/macro-integration-tests/tests/ui/rbac/pass/basic.rs +0 -80
  194. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.rs +0 -13
  195. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +0 -7
  196. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.rs +0 -13
  197. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +0 -7
  198. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.rs +0 -11
  199. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_default_values.stderr +0 -7
  200. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.rs +0 -11
  201. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_name_attrs.stderr +0 -7
  202. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.rs +0 -11
  203. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_no_ttl_extension.stderr +0 -7
  204. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.rs +0 -10
  205. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.stderr +0 -7
  206. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.rs +0 -12
  207. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +0 -7
  208. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.rs +0 -10
  209. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.stderr +0 -7
  210. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.rs +0 -13
  211. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_rejects_args.stderr +0 -7
  212. package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.rs +0 -10
  213. package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.stderr +0 -7
  214. package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.rs +0 -13
  215. package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.stderr +0 -7
  216. package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.rs +0 -13
  217. package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.stderr +0 -7
  218. package/contracts/macro-integration-tests/tests/ui/storage/pass/api_surface.rs +0 -102
  219. package/contracts/macro-integration-tests/tests/ui/storage/pass/basic.rs +0 -43
  220. package/contracts/macro-integration-tests/tests/ui/storage/pass/multi_key.rs +0 -38
  221. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.rs +0 -14
  222. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/missing_auth_trait.stderr +0 -71
  223. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.rs +0 -8
  224. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/fail/non_struct_input.stderr +0 -7
  225. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/basic.rs +0 -46
  226. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/multisig_contract.rs +0 -28
  227. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/ownable_contract.rs +0 -32
  228. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.rs +0 -8
  229. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/fail/non_struct_input.stderr +0 -7
  230. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/basic.rs +0 -23
  231. package/contracts/macro-integration-tests/tests/ui/ttl_extendable/pass/no_user_contractimpl.rs +0 -21
  232. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.rs +0 -11
  233. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/attr_args.stderr +0 -29
  234. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.rs +0 -20
  235. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_auth_trait.stderr +0 -41
  236. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.rs +0 -10
  237. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/missing_upgradeable_internal.stderr +0 -49
  238. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.rs +0 -8
  239. package/contracts/macro-integration-tests/tests/ui/upgradeable/fail/non_struct_input.stderr +0 -7
  240. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/basic.rs +0 -41
  241. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/multisig_contract.rs +0 -33
  242. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_migration.rs +0 -28
  243. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/no_user_contractimpl.rs +0 -27
  244. package/contracts/macro-integration-tests/tests/ui/upgradeable/pass/rbac.rs +0 -44
  245. package/contracts/macro-integration-tests/tests/ui_contract_impl.rs +0 -12
  246. package/contracts/macro-integration-tests/tests/ui_contract_trait.rs +0 -12
  247. package/contracts/macro-integration-tests/tests/ui_error.rs +0 -11
  248. package/contracts/macro-integration-tests/tests/ui_lz_contract.rs +0 -11
  249. package/contracts/macro-integration-tests/tests/ui_multisig.rs +0 -11
  250. package/contracts/macro-integration-tests/tests/ui_oapp.rs +0 -11
  251. package/contracts/macro-integration-tests/tests/ui_ownable.rs +0 -11
  252. package/contracts/macro-integration-tests/tests/ui_rbac.rs +0 -12
  253. package/contracts/macro-integration-tests/tests/ui_storage.rs +0 -11
  254. package/contracts/macro-integration-tests/tests/ui_ttl_configurable.rs +0 -12
  255. package/contracts/macro-integration-tests/tests/ui_ttl_extendable.rs +0 -12
  256. package/contracts/macro-integration-tests/tests/ui_upgradeable.rs +0 -11
  257. package/contracts/message-libs/Cargo.toml +0 -12
  258. package/contracts/message-libs/lib.rs +0 -2
  259. package/contracts/oapps/Cargo.toml +0 -12
  260. package/contracts/oapps/counter/Cargo.toml +0 -39
  261. package/contracts/oapps/counter/integration_tests/mod.rs +0 -7
  262. package/contracts/oapps/counter/integration_tests/setup_sml.rs +0 -171
  263. package/contracts/oapps/counter/integration_tests/setup_uln.rs +0 -1019
  264. package/contracts/oapps/counter/integration_tests/signing.rs +0 -62
  265. package/contracts/oapps/counter/integration_tests/test_with_blocked.rs +0 -67
  266. package/contracts/oapps/counter/integration_tests/test_with_sml.rs +0 -135
  267. package/contracts/oapps/counter/integration_tests/test_with_uln.rs +0 -314
  268. package/contracts/oapps/counter/integration_tests/utils.rs +0 -294
  269. package/contracts/oapps/counter/src/codec.rs +0 -62
  270. package/contracts/oapps/counter/src/counter.rs +0 -274
  271. package/contracts/oapps/counter/src/errors.rs +0 -9
  272. package/contracts/oapps/counter/src/lib.rs +0 -16
  273. package/contracts/oapps/counter/src/options.rs +0 -30
  274. package/contracts/oapps/counter/src/storage.rs +0 -32
  275. package/contracts/oapps/counter/src/tests/mod.rs +0 -24
  276. package/contracts/oapps/counter/src/tests/test_codec.rs +0 -64
  277. package/contracts/oapps/counter/src/tests/test_counter.rs +0 -387
  278. package/contracts/oapps/counter/src/tests/test_u256_ext.rs +0 -48
  279. package/contracts/oapps/counter/src/u256_ext.rs +0 -21
  280. package/contracts/oapps/lib.rs +0 -2
  281. package/contracts/oapps/oapp/Cargo.toml +0 -22
  282. package/contracts/oapps/oapp/src/errors.rs +0 -13
  283. package/contracts/oapps/oapp/src/interfaces/mod.rs +0 -3
  284. package/contracts/oapps/oapp/src/interfaces/oapp_msg_inspector.rs +0 -70
  285. package/contracts/oapps/oapp/src/lib.rs +0 -15
  286. package/contracts/oapps/oapp/src/oapp_core.rs +0 -143
  287. package/contracts/oapps/oapp/src/oapp_options_type3.rs +0 -133
  288. package/contracts/oapps/oapp/src/oapp_receiver.rs +0 -195
  289. package/contracts/oapps/oapp/src/oapp_sender.rs +0 -152
  290. package/contracts/oapps/oapp/src/tests/mod.rs +0 -5
  291. package/contracts/oapps/oapp/src/tests/oapp_core.rs +0 -225
  292. package/contracts/oapps/oapp/src/tests/oapp_options_type3.rs +0 -246
  293. package/contracts/oapps/oapp/src/tests/oapp_receiver.rs +0 -383
  294. package/contracts/oapps/oapp/src/tests/oapp_sender.rs +0 -570
  295. package/contracts/oapps/oapp/src/tests/test_macros.rs +0 -434
  296. package/contracts/oapps/oapp-macros/Cargo.toml +0 -18
  297. package/contracts/oapps/oapp-macros/src/generators.rs +0 -147
  298. package/contracts/oapps/oapp-macros/src/lib.rs +0 -166
  299. package/contracts/oapps/oapp-macros/src/tests/mod.rs +0 -2
  300. package/contracts/oapps/oapp-macros/src/tests/oapp.rs +0 -74
  301. package/contracts/oapps/oapp-macros/src/tests/parse_custom_impls.rs +0 -90
  302. package/contracts/oapps/oapp-macros/src/tests/snapshots/oapp_macros__tests__oapp__snapshot_generate_oapp.snap +0 -111
  303. package/contracts/oapps/oft/Cargo.toml +0 -30
  304. package/contracts/oapps/oft/integration-tests/extensions/mod.rs +0 -3
  305. package/contracts/oapps/oft/integration-tests/extensions/test_oft_fee.rs +0 -172
  306. package/contracts/oapps/oft/integration-tests/extensions/test_pausable.rs +0 -161
  307. package/contracts/oapps/oft/integration-tests/extensions/test_rate_limiter.rs +0 -336
  308. package/contracts/oapps/oft/integration-tests/mod.rs +0 -3
  309. package/contracts/oapps/oft/integration-tests/setup.rs +0 -306
  310. package/contracts/oapps/oft/integration-tests/utils.rs +0 -609
  311. package/contracts/oapps/oft/src/extensions/mod.rs +0 -3
  312. package/contracts/oapps/oft/src/extensions/oft_fee.rs +0 -281
  313. package/contracts/oapps/oft/src/extensions/pausable.rs +0 -119
  314. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +0 -286
  315. package/contracts/oapps/oft/src/interfaces/mintable.rs +0 -14
  316. package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
  317. package/contracts/oapps/oft/src/lib.rs +0 -24
  318. package/contracts/oapps/oft/src/oft.rs +0 -176
  319. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +0 -50
  320. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +0 -51
  321. package/contracts/oapps/oft/src/oft_types/mod.rs +0 -24
  322. package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -3
  323. package/contracts/oapps/oft/src/tests/extensions/oft_fee.rs +0 -260
  324. package/contracts/oapps/oft/src/tests/extensions/pausable.rs +0 -155
  325. package/contracts/oapps/oft/src/tests/extensions/rate_limiter.rs +0 -601
  326. package/contracts/oapps/oft/src/tests/mod.rs +0 -2
  327. package/contracts/oapps/oft/src/tests/oft_types/lock_unlock.rs +0 -185
  328. package/contracts/oapps/oft/src/tests/oft_types/mod.rs +0 -1
  329. package/contracts/oapps/oft-core/Cargo.toml +0 -24
  330. package/contracts/oapps/oft-core/integration-tests/mod.rs +0 -3
  331. package/contracts/oapps/oft-core/integration-tests/setup.rs +0 -346
  332. package/contracts/oapps/oft-core/integration-tests/test_with_sml.rs +0 -156
  333. package/contracts/oapps/oft-core/integration-tests/utils.rs +0 -220
  334. package/contracts/oapps/oft-core/src/codec/mod.rs +0 -2
  335. package/contracts/oapps/oft-core/src/codec/oft_compose_msg_codec.rs +0 -55
  336. package/contracts/oapps/oft-core/src/codec/oft_msg_codec.rs +0 -58
  337. package/contracts/oapps/oft-core/src/errors.rs +0 -15
  338. package/contracts/oapps/oft-core/src/events.rs +0 -32
  339. package/contracts/oapps/oft-core/src/lib.rs +0 -22
  340. package/contracts/oapps/oft-core/src/oft_core.rs +0 -594
  341. package/contracts/oapps/oft-core/src/storage.rs +0 -19
  342. package/contracts/oapps/oft-core/src/tests/mod.rs +0 -14
  343. package/contracts/oapps/oft-core/src/tests/test_decimals.rs +0 -124
  344. package/contracts/oapps/oft-core/src/tests/test_lz_receive.rs +0 -282
  345. package/contracts/oapps/oft-core/src/tests/test_msg_inspector.rs +0 -324
  346. package/contracts/oapps/oft-core/src/tests/test_oft_compose_msg_codec.rs +0 -68
  347. package/contracts/oapps/oft-core/src/tests/test_oft_msg_codec.rs +0 -64
  348. package/contracts/oapps/oft-core/src/tests/test_oft_version_and_approval.rs +0 -22
  349. package/contracts/oapps/oft-core/src/tests/test_quote_oft.rs +0 -159
  350. package/contracts/oapps/oft-core/src/tests/test_quote_send.rs +0 -195
  351. package/contracts/oapps/oft-core/src/tests/test_resolve_address.rs +0 -37
  352. package/contracts/oapps/oft-core/src/tests/test_send.rs +0 -915
  353. package/contracts/oapps/oft-core/src/tests/test_token.rs +0 -47
  354. package/contracts/oapps/oft-core/src/tests/test_utils.rs +0 -870
  355. package/contracts/oapps/oft-core/src/types.rs +0 -58
  356. package/contracts/oapps/oft-core/src/utils.rs +0 -71
  357. package/contracts/oapps/sac-manager/Cargo.toml +0 -24
  358. package/contracts/oapps/sac-manager/src/interfaces/mod.rs +0 -3
  359. package/contracts/oapps/sac-manager/src/interfaces/sac_admin_wrapper.rs +0 -49
  360. package/contracts/oapps/sac-manager/src/lib.rs +0 -19
  361. package/contracts/oapps/sac-manager/src/sac_manager.rs +0 -95
  362. package/contracts/oapps/sac-manager/src/storage.rs +0 -13
  363. package/contracts/oapps/sac-manager/src/tests/mod.rs +0 -10
  364. package/contracts/oapps/sac-manager/src/tests/sac_manager/clawback.rs +0 -84
  365. package/contracts/oapps/sac-manager/src/tests/sac_manager/mint.rs +0 -53
  366. package/contracts/oapps/sac-manager/src/tests/sac_manager/mod.rs +0 -6
  367. package/contracts/oapps/sac-manager/src/tests/sac_manager/set_admin.rs +0 -46
  368. package/contracts/oapps/sac-manager/src/tests/sac_manager/set_authorized.rs +0 -53
  369. package/contracts/oapps/sac-manager/src/tests/sac_manager/test_helper.rs +0 -35
  370. package/contracts/oapps/sac-manager/src/tests/sac_manager/view_functions.rs +0 -13
  371. package/contracts/oapps/sac-manager/src/tests/test_helper.rs +0 -138
  372. package/contracts/utils/Cargo.toml +0 -20
  373. package/contracts/utils/src/auth.rs +0 -48
  374. package/contracts/utils/src/buffer_reader.rs +0 -194
  375. package/contracts/utils/src/buffer_writer.rs +0 -138
  376. package/contracts/utils/src/bytes_ext.rs +0 -18
  377. package/contracts/utils/src/errors.rs +0 -82
  378. package/contracts/utils/src/lib.rs +0 -20
  379. package/contracts/utils/src/multisig.rs +0 -247
  380. package/contracts/utils/src/option_ext.rs +0 -38
  381. package/contracts/utils/src/ownable.rs +0 -227
  382. package/contracts/utils/src/rbac.rs +0 -438
  383. package/contracts/utils/src/testing_utils.rs +0 -180
  384. package/contracts/utils/src/tests/auth.rs +0 -179
  385. package/contracts/utils/src/tests/buffer_reader.rs +0 -969
  386. package/contracts/utils/src/tests/buffer_writer.rs +0 -689
  387. package/contracts/utils/src/tests/bytes_ext.rs +0 -160
  388. package/contracts/utils/src/tests/mod.rs +0 -13
  389. package/contracts/utils/src/tests/multisig.rs +0 -760
  390. package/contracts/utils/src/tests/option_ext.rs +0 -18
  391. package/contracts/utils/src/tests/ownable.rs +0 -822
  392. package/contracts/utils/src/tests/rbac.rs +0 -559
  393. package/contracts/utils/src/tests/test_helper.rs +0 -67
  394. package/contracts/utils/src/tests/testing_utils.rs +0 -522
  395. package/contracts/utils/src/tests/ttl_configurable.rs +0 -586
  396. package/contracts/utils/src/tests/ttl_extendable.rs +0 -64
  397. package/contracts/utils/src/tests/upgradeable.rs +0 -529
  398. package/contracts/utils/src/ttl_configurable.rs +0 -169
  399. package/contracts/utils/src/ttl_extendable.rs +0 -25
  400. package/contracts/utils/src/upgradeable.rs +0 -103
  401. package/contracts/workers/Cargo.toml +0 -13
  402. package/contracts/workers/lib.rs +0 -2
  403. package/sdk/.turbo/turbo-build.log +0 -5
  404. package/sdk/.turbo/turbo-test.log +0 -1507
  405. package/sdk/LICENSE +0 -23
  406. package/sdk/dist/generated/bml.d.ts +0 -670
  407. package/sdk/dist/generated/bml.d.ts.map +0 -1
  408. package/sdk/dist/generated/bml.js +0 -292
  409. package/sdk/dist/generated/bml.js.map +0 -1
  410. package/sdk/dist/generated/counter.d.ts +0 -1253
  411. package/sdk/dist/generated/counter.d.ts.map +0 -1
  412. package/sdk/dist/generated/counter.js +0 -391
  413. package/sdk/dist/generated/counter.js.map +0 -1
  414. package/sdk/dist/generated/dvn.d.ts +0 -1569
  415. package/sdk/dist/generated/dvn.d.ts.map +0 -1
  416. package/sdk/dist/generated/dvn.js +0 -459
  417. package/sdk/dist/generated/dvn.js.map +0 -1
  418. package/sdk/dist/generated/dvn_fee_lib.d.ts +0 -587
  419. package/sdk/dist/generated/dvn_fee_lib.d.ts.map +0 -1
  420. package/sdk/dist/generated/dvn_fee_lib.js +0 -186
  421. package/sdk/dist/generated/dvn_fee_lib.js.map +0 -1
  422. package/sdk/dist/generated/endpoint.d.ts +0 -1304
  423. package/sdk/dist/generated/endpoint.d.ts.map +0 -1
  424. package/sdk/dist/generated/endpoint.js +0 -396
  425. package/sdk/dist/generated/endpoint.js.map +0 -1
  426. package/sdk/dist/generated/executor.d.ts +0 -1554
  427. package/sdk/dist/generated/executor.d.ts.map +0 -1
  428. package/sdk/dist/generated/executor.js +0 -447
  429. package/sdk/dist/generated/executor.js.map +0 -1
  430. package/sdk/dist/generated/executor_fee_lib.d.ts +0 -1037
  431. package/sdk/dist/generated/executor_fee_lib.d.ts.map +0 -1
  432. package/sdk/dist/generated/executor_fee_lib.js +0 -351
  433. package/sdk/dist/generated/executor_fee_lib.js.map +0 -1
  434. package/sdk/dist/generated/executor_helper.d.ts +0 -883
  435. package/sdk/dist/generated/executor_helper.d.ts.map +0 -1
  436. package/sdk/dist/generated/executor_helper.js +0 -354
  437. package/sdk/dist/generated/executor_helper.js.map +0 -1
  438. package/sdk/dist/generated/layerzero_view.d.ts +0 -1153
  439. package/sdk/dist/generated/layerzero_view.d.ts.map +0 -1
  440. package/sdk/dist/generated/layerzero_view.js +0 -457
  441. package/sdk/dist/generated/layerzero_view.js.map +0 -1
  442. package/sdk/dist/generated/oft.d.ts +0 -1638
  443. package/sdk/dist/generated/oft.d.ts.map +0 -1
  444. package/sdk/dist/generated/oft.js +0 -463
  445. package/sdk/dist/generated/oft.js.map +0 -1
  446. package/sdk/dist/generated/price_feed.d.ts +0 -787
  447. package/sdk/dist/generated/price_feed.d.ts.map +0 -1
  448. package/sdk/dist/generated/price_feed.js +0 -231
  449. package/sdk/dist/generated/price_feed.js.map +0 -1
  450. package/sdk/dist/generated/sac_manager.d.ts +0 -567
  451. package/sdk/dist/generated/sac_manager.d.ts.map +0 -1
  452. package/sdk/dist/generated/sac_manager.js +0 -198
  453. package/sdk/dist/generated/sac_manager.js.map +0 -1
  454. package/sdk/dist/generated/sml.d.ts +0 -934
  455. package/sdk/dist/generated/sml.d.ts.map +0 -1
  456. package/sdk/dist/generated/sml.js +0 -366
  457. package/sdk/dist/generated/sml.js.map +0 -1
  458. package/sdk/dist/generated/treasury.d.ts +0 -892
  459. package/sdk/dist/generated/treasury.d.ts.map +0 -1
  460. package/sdk/dist/generated/treasury.js +0 -352
  461. package/sdk/dist/generated/treasury.js.map +0 -1
  462. package/sdk/dist/generated/uln302.d.ts +0 -1268
  463. package/sdk/dist/generated/uln302.d.ts.map +0 -1
  464. package/sdk/dist/generated/uln302.js +0 -477
  465. package/sdk/dist/generated/uln302.js.map +0 -1
  466. package/sdk/dist/generated/upgrader.d.ts +0 -292
  467. package/sdk/dist/generated/upgrader.d.ts.map +0 -1
  468. package/sdk/dist/generated/upgrader.js +0 -144
  469. package/sdk/dist/generated/upgrader.js.map +0 -1
  470. package/sdk/dist/index.d.ts +0 -17
  471. package/sdk/dist/index.d.ts.map +0 -1
  472. package/sdk/dist/index.js +0 -21
  473. package/sdk/dist/index.js.map +0 -1
  474. package/sdk/node_modules/.bin/tsc +0 -21
  475. package/sdk/node_modules/.bin/tsserver +0 -21
  476. package/sdk/node_modules/.bin/vitest +0 -21
  477. package/sdk/package.json +0 -50
  478. package/sdk/src/index.ts +0 -23
  479. package/sdk/test/counter-sml.test.ts +0 -480
  480. package/sdk/test/counter-uln.test.ts +0 -584
  481. package/sdk/test/oft-sml.test.ts +0 -750
  482. package/sdk/test/sac-manager.test.ts +0 -464
  483. package/sdk/test/secp256k1.ts +0 -59
  484. package/sdk/test/suites/constants.ts +0 -51
  485. package/sdk/test/suites/deploy.ts +0 -312
  486. package/sdk/test/suites/dummyContractClient.ts +0 -168
  487. package/sdk/test/suites/globalSetup.ts +0 -604
  488. package/sdk/test/suites/localnet.ts +0 -192
  489. package/sdk/test/suites/scan.ts +0 -202
  490. package/sdk/test/test_data/test_upgradeable_dvn.wasm +0 -0
  491. package/sdk/test/upgrader.test.ts +0 -194
  492. package/sdk/test/utils.ts +0 -671
  493. package/sdk/tsconfig.json +0 -21
  494. package/sdk/tsconfig.test.json +0 -10
  495. package/sdk/turbo.json +0 -15
  496. package/sdk/vitest.config.ts +0 -21
  497. package/ts-bindings-gen.toml +0 -67
  498. package/turbo-snapshot.lock.json +0 -194
  499. package/turbo.json +0 -26
  500. /package/{contracts/endpoint-v2 → endpoint-v2}/src/endpoint_v2.rs +0 -0
  501. /package/{contracts/endpoint-v2 → endpoint-v2}/src/errors.rs +0 -0
  502. /package/{contracts/endpoint-v2 → endpoint-v2}/src/events.rs +0 -0
  503. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_composer.rs +0 -0
  504. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_endpoint_v2.rs +0 -0
  505. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/layerzero_receiver.rs +0 -0
  506. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/message_lib.rs +0 -0
  507. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/message_lib_manager.rs +0 -0
  508. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/messaging_channel.rs +0 -0
  509. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/messaging_composer.rs +0 -0
  510. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/mod.rs +0 -0
  511. /package/{contracts/endpoint-v2 → endpoint-v2}/src/interfaces/send_lib.rs +0 -0
  512. /package/{contracts/endpoint-v2 → endpoint-v2}/src/lib.rs +0 -0
  513. /package/{contracts/endpoint-v2 → endpoint-v2}/src/message_lib_manager.rs +0 -0
  514. /package/{contracts/endpoint-v2 → endpoint-v2}/src/messaging_channel.rs +0 -0
  515. /package/{contracts/endpoint-v2 → endpoint-v2}/src/messaging_composer.rs +0 -0
  516. /package/{contracts/endpoint-v2 → endpoint-v2}/src/storage.rs +0 -0
  517. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_setup.rs +0 -0
  518. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/build_outbound_packet.rs +0 -0
  519. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/clear.rs +0 -0
  520. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/delegate.rs +0 -0
  521. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/initializable.rs +0 -0
  522. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/lz_receive_alert.rs +0 -0
  523. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/mod.rs +0 -0
  524. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/native_token.rs +0 -0
  525. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/owner.rs +0 -0
  526. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/pay_messaging_fees.rs +0 -0
  527. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/quote.rs +0 -0
  528. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/recover_token.rs +0 -0
  529. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/require_oapp_auth.rs +0 -0
  530. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/send.rs +0 -0
  531. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/set_delegate.rs +0 -0
  532. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/set_zro.rs +0 -0
  533. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/transfer_ownership.rs +0 -0
  534. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/ttl_config.rs +0 -0
  535. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/verifiable.rs +0 -0
  536. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/verify.rs +0 -0
  537. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/endpoint_v2/zro.rs +0 -0
  538. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_receive_library.rs +0 -0
  539. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_receive_library_timeout.rs +0 -0
  540. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/default_send_library.rs +0 -0
  541. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_config.rs +0 -0
  542. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_library_index.rs +0 -0
  543. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_receive_library.rs +0 -0
  544. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_registered_libraries.rs +0 -0
  545. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/get_send_library.rs +0 -0
  546. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_registered_library.rs +0 -0
  547. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_supported_eid.rs +0 -0
  548. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/is_valid_receive_library.rs +0 -0
  549. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/mod.rs +0 -0
  550. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/receive_library_timeout.rs +0 -0
  551. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/register_library.rs +0 -0
  552. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/registered_libraries_count.rs +0 -0
  553. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +0 -0
  554. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_registered.rs +0 -0
  555. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_send_lib_for_eid.rs +0 -0
  556. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/require_supported_eid.rs +0 -0
  557. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_config.rs +0 -0
  558. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +0 -0
  559. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_receive_library.rs +0 -0
  560. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_default_send_library.rs +0 -0
  561. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_receive_library.rs +0 -0
  562. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_receive_library_timeout.rs +0 -0
  563. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/set_send_library.rs +0 -0
  564. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/message_lib_manager/timeout.rs +0 -0
  565. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/burn.rs +0 -0
  566. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/clear_payload.rs +0 -0
  567. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound.rs +0 -0
  568. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound_nonce.rs +0 -0
  569. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/inbound_payload_hash.rs +0 -0
  570. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/insert_and_drain_pending_nonces.rs +0 -0
  571. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/mod.rs +0 -0
  572. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/next_guid.rs +0 -0
  573. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/nilify.rs +0 -0
  574. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/outbound.rs +0 -0
  575. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/outbound_nonce.rs +0 -0
  576. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/pending_inbound_nonces.rs +0 -0
  577. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_channel/skip.rs +0 -0
  578. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/clear_compose.rs +0 -0
  579. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/compose_queue.rs +0 -0
  580. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/lz_compose_alert.rs +0 -0
  581. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/mod.rs +0 -0
  582. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/messaging_composer/send_compose.rs +0 -0
  583. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/mock.rs +0 -0
  584. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/mod.rs +0 -0
  585. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/build_payload.rs +0 -0
  586. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/compute_guid.rs +0 -0
  587. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/keccak256.rs +0 -0
  588. /package/{contracts/endpoint-v2 → endpoint-v2}/src/tests/util/mod.rs +0 -0
  589. /package/{contracts/endpoint-v2 → endpoint-v2}/src/util.rs +0 -0
  590. /package/{contracts/layerzero-views → layerzero-views}/src/errors.rs +0 -0
  591. /package/{contracts/layerzero-views → layerzero-views}/src/layerzero_view.rs +0 -0
  592. /package/{contracts/layerzero-views → layerzero-views}/src/lib.rs +0 -0
  593. /package/{contracts/layerzero-views → layerzero-views}/src/storage.rs +0 -0
  594. /package/{contracts/layerzero-views → layerzero-views}/src/tests/layerzero_view_tests.rs +0 -0
  595. /package/{contracts/layerzero-views → layerzero-views}/src/tests/mod.rs +0 -0
  596. /package/{contracts/layerzero-views → layerzero-views}/src/tests/setup.rs +0 -0
  597. /package/{contracts/layerzero-views → layerzero-views}/src/tests/types_tests.rs +0 -0
  598. /package/{contracts/layerzero-views → layerzero-views}/src/types.rs +0 -0
  599. /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/lib.rs +0 -0
  600. /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/blocked_message_lib_tests.rs +0 -0
  601. /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/mod.rs +0 -0
  602. /package/{contracts/message-libs → message-libs}/blocked-message-lib/src/tests/setup.rs +0 -0
  603. /package/{contracts/message-libs → message-libs}/message-lib-common/src/errors.rs +0 -0
  604. /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/dvn.rs +0 -0
  605. /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/executor.rs +0 -0
  606. /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/mod.rs +0 -0
  607. /package/{contracts/message-libs → message-libs}/message-lib-common/src/interfaces/treasury.rs +0 -0
  608. /package/{contracts/message-libs → message-libs}/message-lib-common/src/lib.rs +0 -0
  609. /package/{contracts/message-libs → message-libs}/message-lib-common/src/packet_codec_v1.rs +0 -0
  610. /package/{contracts/message-libs → message-libs}/message-lib-common/src/testing_utils.rs +0 -0
  611. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/mod.rs +0 -0
  612. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +0 -0
  613. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/encode_packet.rs +0 -0
  614. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/encode_packet_header.rs +0 -0
  615. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/mod.rs +0 -0
  616. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/payload.rs +0 -0
  617. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/payload_hash.rs +0 -0
  618. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/packet_codec_v1/test_helper.rs +0 -0
  619. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_dvn_option.rs +0 -0
  620. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +0 -0
  621. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +0 -0
  622. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +0 -0
  623. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +0 -0
  624. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +0 -0
  625. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/mod.rs +0 -0
  626. /package/{contracts/message-libs → message-libs}/message-lib-common/src/tests/worker_options/split_worker_options.rs +0 -0
  627. /package/{contracts/message-libs → message-libs}/message-lib-common/src/worker_options.rs +0 -0
  628. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/errors.rs +0 -0
  629. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/lib.rs +0 -0
  630. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/simple_message_lib.rs +0 -0
  631. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/storage.rs +0 -0
  632. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/mod.rs +0 -0
  633. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/setup.rs +0 -0
  634. /package/{contracts/message-libs → message-libs}/simple-message-lib/src/tests/simple_message_lib_tests.rs +0 -0
  635. /package/{contracts/message-libs → message-libs}/treasury/src/errors.rs +0 -0
  636. /package/{contracts/message-libs → message-libs}/treasury/src/events.rs +0 -0
  637. /package/{contracts/message-libs → message-libs}/treasury/src/interfaces/mod.rs +0 -0
  638. /package/{contracts/message-libs → message-libs}/treasury/src/interfaces/zro_fee_lib.rs +0 -0
  639. /package/{contracts/message-libs → message-libs}/treasury/src/lib.rs +0 -0
  640. /package/{contracts/message-libs → message-libs}/treasury/src/storage.rs +0 -0
  641. /package/{contracts/message-libs → message-libs}/treasury/src/tests/mod.rs +0 -0
  642. /package/{contracts/message-libs → message-libs}/treasury/src/tests/setup.rs +0 -0
  643. /package/{contracts/message-libs → message-libs}/treasury/src/tests/treasury_tests.rs +0 -0
  644. /package/{contracts/message-libs → message-libs}/treasury/src/treasury.rs +0 -0
  645. /package/{contracts/message-libs → message-libs}/uln-302/src/errors.rs +0 -0
  646. /package/{contracts/message-libs → message-libs}/uln-302/src/events.rs +0 -0
  647. /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/mod.rs +0 -0
  648. /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/receive_uln.rs +0 -0
  649. /package/{contracts/message-libs → message-libs}/uln-302/src/interfaces/send_uln.rs +0 -0
  650. /package/{contracts/message-libs → message-libs}/uln-302/src/lib.rs +0 -0
  651. /package/{contracts/message-libs → message-libs}/uln-302/src/receive_uln.rs +0 -0
  652. /package/{contracts/message-libs → message-libs}/uln-302/src/send_uln.rs +0 -0
  653. /package/{contracts/message-libs → message-libs}/uln-302/src/storage.rs +0 -0
  654. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/mod.rs +0 -0
  655. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/oapp_uln_config.rs +0 -0
  656. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/config/uln_config.rs +0 -0
  657. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/mod.rs +0 -0
  658. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/commit_verification.rs +0 -0
  659. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/confirmations.rs +0 -0
  660. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +0 -0
  661. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/mod.rs +0 -0
  662. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +0 -0
  663. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/verifiable.rs +0 -0
  664. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/receive_uln302/verify.rs +0 -0
  665. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/effective_executor_config.rs +0 -0
  666. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +0 -0
  667. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/mod.rs +0 -0
  668. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/quote.rs +0 -0
  669. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/send.rs +0 -0
  670. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +0 -0
  671. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +0 -0
  672. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/setup.rs +0 -0
  673. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/testing_utils.rs +0 -0
  674. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_app_receive_uln_config.rs +0 -0
  675. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_app_send_uln_config.rs +0 -0
  676. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_config.rs +0 -0
  677. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/get_oapp_executor_config.rs +0 -0
  678. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/mod.rs +0 -0
  679. /package/{contracts/message-libs → message-libs}/uln-302/src/tests/uln302/set_config.rs +0 -0
  680. /package/{contracts/message-libs → message-libs}/uln-302/src/types.rs +0 -0
  681. /package/{contracts/message-libs → message-libs}/uln-302/src/uln302.rs +0 -0
  682. /package/{contracts/upgrader → upgrader}/src/lib.rs +0 -0
  683. /package/{contracts/upgrader → upgrader}/src/tests/mod.rs +0 -0
  684. /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  685. /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  686. /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract3.wasm +0 -0
  687. /package/{contracts/upgrader → upgrader}/src/tests/test_data/test_upgradeable_contract4.wasm +0 -0
  688. /package/{contracts/upgrader → upgrader}/src/tests/test_upgrader.rs +0 -0
  689. /package/{contracts/workers → workers}/dvn/src/auth.rs +0 -0
  690. /package/{contracts/workers → workers}/dvn/src/dvn.rs +0 -0
  691. /package/{contracts/workers → workers}/dvn/src/errors.rs +0 -0
  692. /package/{contracts/workers → workers}/dvn/src/events.rs +0 -0
  693. /package/{contracts/workers → workers}/dvn/src/interfaces/dvn.rs +0 -0
  694. /package/{contracts/workers → workers}/dvn/src/interfaces/mod.rs +0 -0
  695. /package/{contracts/workers → workers}/dvn/src/lib.rs +0 -0
  696. /package/{contracts/workers → workers}/dvn/src/storage.rs +0 -0
  697. /package/{contracts/workers → workers}/dvn/src/tests/auth.rs +0 -0
  698. /package/{contracts/workers → workers}/dvn/src/tests/dvn.rs +0 -0
  699. /package/{contracts/workers → workers}/dvn/src/tests/key_pair.rs +0 -0
  700. /package/{contracts/workers → workers}/dvn/src/tests/mod.rs +0 -0
  701. /package/{contracts/workers → workers}/dvn/src/tests/setup.rs +0 -0
  702. /package/{contracts/workers → workers}/dvn-fee-lib/src/dvn_fee_lib.rs +0 -0
  703. /package/{contracts/workers → workers}/dvn-fee-lib/src/errors.rs +0 -0
  704. /package/{contracts/workers → workers}/dvn-fee-lib/src/lib.rs +0 -0
  705. /package/{contracts/workers → workers}/dvn-fee-lib/src/tests/dvn_fee_lib.rs +0 -0
  706. /package/{contracts/workers → workers}/dvn-fee-lib/src/tests/mod.rs +0 -0
  707. /package/{contracts/workers → workers}/executor/src/auth.rs +0 -0
  708. /package/{contracts/workers → workers}/executor/src/errors.rs +0 -0
  709. /package/{contracts/workers → workers}/executor/src/events.rs +0 -0
  710. /package/{contracts/workers → workers}/executor/src/executor.rs +0 -0
  711. /package/{contracts/workers → workers}/executor/src/interfaces/executor.rs +0 -0
  712. /package/{contracts/workers → workers}/executor/src/interfaces/mod.rs +0 -0
  713. /package/{contracts/workers → workers}/executor/src/lib.rs +0 -0
  714. /package/{contracts/workers → workers}/executor/src/storage.rs +0 -0
  715. /package/{contracts/workers → workers}/executor/src/tests/auth.rs +0 -0
  716. /package/{contracts/workers → workers}/executor/src/tests/executor.rs +0 -0
  717. /package/{contracts/workers → workers}/executor/src/tests/mod.rs +0 -0
  718. /package/{contracts/workers → workers}/executor/src/tests/setup.rs +0 -0
  719. /package/{contracts/workers → workers}/executor-fee-lib/src/errors.rs +0 -0
  720. /package/{contracts/workers → workers}/executor-fee-lib/src/executor_fee_lib.rs +0 -0
  721. /package/{contracts/workers → workers}/executor-fee-lib/src/executor_option.rs +0 -0
  722. /package/{contracts/workers → workers}/executor-fee-lib/src/lib.rs +0 -0
  723. /package/{contracts/workers → workers}/executor-fee-lib/src/tests/executor_fee_lib.rs +0 -0
  724. /package/{contracts/workers → workers}/executor-fee-lib/src/tests/executor_option.rs +0 -0
  725. /package/{contracts/workers → workers}/executor-fee-lib/src/tests/mod.rs +0 -0
  726. /package/{contracts/workers → workers}/executor-fee-lib/src/tests/setup.rs +0 -0
  727. /package/{contracts/workers → workers}/executor-helper/src/executor_helper.rs +0 -0
  728. /package/{contracts/workers → workers}/executor-helper/src/lib.rs +0 -0
  729. /package/{contracts/workers → workers}/executor-helper/src/tests/executor_helper.rs +0 -0
  730. /package/{contracts/workers → workers}/executor-helper/src/tests/mod.rs +0 -0
  731. /package/{contracts/workers → workers}/executor-helper/src/tests/setup.rs +0 -0
  732. /package/{contracts/workers → workers}/fee-lib-interfaces/src/dvn_fee_lib.rs +0 -0
  733. /package/{contracts/workers → workers}/fee-lib-interfaces/src/executor_fee_lib.rs +0 -0
  734. /package/{contracts/workers → workers}/fee-lib-interfaces/src/lib.rs +0 -0
  735. /package/{contracts/workers → workers}/fee-lib-interfaces/src/price_feed.rs +0 -0
  736. /package/{contracts/workers → workers}/price-feed/src/errors.rs +0 -0
  737. /package/{contracts/workers → workers}/price-feed/src/events.rs +0 -0
  738. /package/{contracts/workers → workers}/price-feed/src/lib.rs +0 -0
  739. /package/{contracts/workers → workers}/price-feed/src/price_feed.rs +0 -0
  740. /package/{contracts/workers → workers}/price-feed/src/storage.rs +0 -0
  741. /package/{contracts/workers → workers}/price-feed/src/tests/mod.rs +0 -0
  742. /package/{contracts/workers → workers}/price-feed/src/tests/price_feed.rs +0 -0
  743. /package/{contracts/workers → workers}/price-feed/src/tests/setup.rs +0 -0
  744. /package/{contracts/workers → workers}/price-feed/src/types.rs +0 -0
  745. /package/{contracts/workers → workers}/worker/src/errors.rs +0 -0
  746. /package/{contracts/workers → workers}/worker/src/events.rs +0 -0
  747. /package/{contracts/workers → workers}/worker/src/lib.rs +0 -0
  748. /package/{contracts/workers → workers}/worker/src/storage.rs +0 -0
  749. /package/{contracts/workers → workers}/worker/src/tests/mod.rs +0 -0
  750. /package/{contracts/workers → workers}/worker/src/tests/setup.rs +0 -0
  751. /package/{contracts/workers → workers}/worker/src/tests/worker.rs +0 -0
  752. /package/{contracts/workers → workers}/worker/src/worker.rs +0 -0
@@ -1,438 +0,0 @@
1
- //! Role-Based Access Control (RBAC) for Soroban contracts.
2
- //!
3
- //! Combines OpenZeppelin-style role management with the Auth pattern.
4
- //! The authorizer (e.g. owner from Ownable, or contract from MultiSig) replaces Admin.
5
-
6
- use crate::{self as utils, auth::Auth, errors::RbacError, option_ext::OptionExt};
7
- use common_macros::{contract_trait, only_auth, storage};
8
- use soroban_sdk::{assert_with_error, contractevent, Address, Env, Symbol, Vec};
9
-
10
- // ===========================================================================
11
- // Constants
12
- // ===========================================================================
13
-
14
- /// Maximum number of roles that can exist simultaneously.
15
- pub const MAX_ROLES: u32 = 256;
16
-
17
- /// Role representing the contract's authorizer.
18
- pub const AUTHORIZER: &str = "AUTHORIZER";
19
-
20
- // ===========================================================================
21
- // Events
22
- // ===========================================================================
23
-
24
- /// Event emitted when a role is granted.
25
- #[contractevent]
26
- #[derive(Clone, Debug, Eq, PartialEq)]
27
- pub struct RoleGranted {
28
- #[topic]
29
- pub role: Symbol,
30
- #[topic]
31
- pub account: Address,
32
- pub caller: Address,
33
- }
34
-
35
- /// Event emitted when a role is revoked.
36
- #[contractevent]
37
- #[derive(Clone, Debug, Eq, PartialEq)]
38
- pub struct RoleRevoked {
39
- #[topic]
40
- pub role: Symbol,
41
- #[topic]
42
- pub account: Address,
43
- pub caller: Address,
44
- }
45
-
46
- /// Event emitted when a role admin is changed.
47
- #[contractevent]
48
- #[derive(Clone, Debug, Eq, PartialEq)]
49
- pub struct RoleAdminChanged {
50
- #[topic]
51
- pub role: Symbol,
52
- pub previous_admin_role: Option<Symbol>,
53
- pub new_admin_role: Option<Symbol>,
54
- }
55
-
56
- // ===========================================================================
57
- // Storage
58
- // ===========================================================================
59
-
60
- #[storage]
61
- pub enum RbacStorage {
62
- /// All roles that have at least one member
63
- #[persistent(Vec<Symbol>)]
64
- #[default(Vec::new(env))]
65
- ExistingRoles,
66
-
67
- /// (role, index) -> Address
68
- #[persistent(Address)]
69
- RoleIndexToAccount { role: Symbol, index: u32 },
70
-
71
- /// (role, account) -> index
72
- #[persistent(u32)]
73
- RoleAccountToIndex { role: Symbol, account: Address },
74
-
75
- /// role -> count of accounts
76
- #[persistent(u32)]
77
- #[default(0)]
78
- RoleAccountsCount { role: Symbol },
79
-
80
- /// role -> admin role (who can grant/revoke this role). Key removed when no admin.
81
- #[persistent(Symbol)]
82
- RoleAdmin { role: Symbol },
83
- }
84
-
85
- // ===========================================================================
86
- // Trait
87
- // ===========================================================================
88
-
89
- /// Trait for contracts with role-based access control.
90
- ///
91
- /// Extends `Auth` — the authorizer replaces the traditional admin and can grant/revoke
92
- /// any role. Each role can also have an admin role for hierarchical control.
93
- #[contract_trait]
94
- pub trait RoleBasedAccessControl: Auth {
95
- // ===========================================================================
96
- // State-changing
97
- // ===========================================================================
98
-
99
- /// Grants a role to an account. Caller must be owner or have the role's admin role.
100
- ///
101
- /// # Arguments
102
- /// * `account` - The account to grant the role to.
103
- /// * `role` - The role to grant.
104
- /// * `caller` - The account that is granting the role. Must be owner or have the role's admin role.
105
- fn grant_role(
106
- env: &soroban_sdk::Env,
107
- account: &soroban_sdk::Address,
108
- role: &soroban_sdk::Symbol,
109
- caller: &soroban_sdk::Address,
110
- ) {
111
- caller.require_auth();
112
- ensure_if_authorizer_or_role_admin::<Self>(env, role, caller);
113
- grant_role_no_auth(env, account, role, caller);
114
- }
115
-
116
- /// Revokes a role from an account. Caller must be owner or have the role's admin role.
117
- ///
118
- /// # Arguments
119
- /// * `account` - The account to revoke the role from.
120
- /// * `role` - The role to revoke.
121
- /// * `caller` - The account that is revoking the role. Must be owner or have the role's admin role.
122
- fn revoke_role(
123
- env: &soroban_sdk::Env,
124
- account: &soroban_sdk::Address,
125
- role: &soroban_sdk::Symbol,
126
- caller: &soroban_sdk::Address,
127
- ) {
128
- caller.require_auth();
129
- ensure_if_authorizer_or_role_admin::<Self>(env, role, caller);
130
- revoke_role_no_auth(env, account, role, caller);
131
- }
132
-
133
- /// Allows an account to renounce a role assigned to itself.
134
- /// Users can only renounce roles for their own account.
135
- ///
136
- /// # Arguments
137
- /// * `role` - The role to renounce.
138
- /// * `caller` - The account that is renouncing the role. Must be the account itself.
139
- fn renounce_role(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol, caller: &soroban_sdk::Address) {
140
- caller.require_auth();
141
- revoke_role_no_auth(env, caller, role, caller);
142
- }
143
-
144
- /// Sets `admin_role` as the admin role of `role`. Caller must be the authorizer.
145
- ///
146
- /// # Arguments
147
- /// * `role` - The role to set the admin for.
148
- /// * `admin_role` - The admin role to set for the role.
149
- ///
150
- /// # Notes
151
- ///
152
- /// The admin role can be any `Symbol`, including one with no members. If the admin
153
- /// role has no members, only the authorizer can grant/revoke the role.
154
- #[only_auth]
155
- fn set_role_admin(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol, admin_role: &soroban_sdk::Symbol) {
156
- set_role_admin_no_auth(env, role, admin_role);
157
- }
158
-
159
- /// Removes the admin role for a specified role. Caller must be the authorizer.
160
- ///
161
- /// # Arguments
162
- /// * `role` - The role to remove the admin for.
163
- ///
164
- /// # Errors
165
- /// * `RbacError::AdminRoleNotFound` - If no admin role is set for the role.
166
- #[only_auth]
167
- fn remove_role_admin(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol) {
168
- remove_role_admin_no_auth(env, role);
169
- }
170
-
171
- // ===========================================================================
172
- // View functions
173
- // ===========================================================================
174
-
175
- /// Returns `Some(index)` if the account has the specified role, where `index`
176
- /// is the index of the account in the role. Returns `None` if not.
177
- ///
178
- /// # Arguments
179
- /// * `account` - The account to check the role for.
180
- /// * `role` - The role to check the account for.
181
- fn has_role(env: &soroban_sdk::Env, account: &soroban_sdk::Address, role: &soroban_sdk::Symbol) -> Option<u32> {
182
- RbacStorage::role_account_to_index(env, role, account)
183
- }
184
-
185
- /// Returns the admin role for a specific role, or None if not set.
186
- ///
187
- /// # Arguments
188
- /// * `role` - The role to get the admin for.
189
- fn get_role_admin(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol) -> Option<soroban_sdk::Symbol> {
190
- RbacStorage::role_admin(env, role)
191
- }
192
-
193
- /// Returns the number of accounts that have the specified role.
194
- ///
195
- /// # Arguments
196
- /// * `role` - The role to get the member count for.
197
- fn get_role_member_count(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol) -> u32 {
198
- RbacStorage::role_accounts_count(env, role)
199
- }
200
-
201
- /// Returns the account at the specified index for a given role.
202
- ///
203
- /// # Arguments
204
- /// * `role` - The role to get the member for.
205
- /// * `index` - The index of the member to get.
206
- ///
207
- /// # Errors
208
- /// * `RbacError::IndexOutOfBounds` if the index is out of bounds.
209
- fn get_role_member(env: &soroban_sdk::Env, role: &soroban_sdk::Symbol, index: u32) -> soroban_sdk::Address {
210
- RbacStorage::role_index_to_account(env, role, index).unwrap_or_panic(env, RbacError::IndexOutOfBounds)
211
- }
212
-
213
- /// Returns all roles that currently have at least one member.
214
- /// Defaults to empty vector if no roles exist.
215
- ///
216
- /// # Notes
217
- ///
218
- /// This function returns all roles that currently have at least one member.
219
- /// The maximum number of roles is limited by [`MAX_ROLES`].
220
- fn get_existing_roles(env: &soroban_sdk::Env) -> soroban_sdk::Vec<soroban_sdk::Symbol> {
221
- RbacStorage::existing_roles(env)
222
- }
223
- }
224
-
225
- // ===========================================================================
226
- // Public helpers
227
- // ===========================================================================
228
-
229
- /// Ensures the caller has the specified role.
230
- ///
231
- /// When `role` matches [`AUTHORIZER`], verifies that `caller` is the contract's
232
- /// authorizer (via [`Auth::authorizer`]) instead of checking RBAC storage.
233
- ///
234
- /// # Arguments
235
- /// * `role` - The role to check the caller for.
236
- /// * `caller` - The account that is being checked. Must have the role.
237
- ///
238
- /// # Errors
239
- /// * `Unauthorized` - If the caller does not have the role (or is not the authorizer).
240
- pub fn ensure_role<T: RoleBasedAccessControl>(env: &Env, role: &Symbol, caller: &Address) {
241
- if *role == Symbol::new(env, AUTHORIZER) {
242
- assert_with_error!(env, T::authorizer(env).as_ref() == Some(caller), RbacError::Unauthorized);
243
- } else {
244
- assert_with_error!(env, T::has_role(env, caller, role).is_some(), RbacError::Unauthorized);
245
- }
246
- }
247
-
248
- /// Grants a role to an account without auth check.
249
- ///
250
- /// # Arguments
251
- /// * `account` - The account to grant the role to.
252
- /// * `role` - The role to grant.
253
- /// * `caller` - The account that is granting the role. Must be owner or have the role's admin role.
254
- ///
255
- /// # Security Warning
256
- ///
257
- /// **IMPORTANT**: This function bypasses authorization checks and should only
258
- /// be used:
259
- /// - During contract initialization/construction
260
- /// - In admin functions that implement their own authorization logic
261
- ///
262
- /// Using this function in public-facing methods creates significant security
263
- /// risks as it could allow unauthorized role assignments.
264
- pub fn grant_role_no_auth(env: &Env, account: &Address, role: &Symbol, caller: &Address) {
265
- if RbacStorage::has_role_account_to_index(env, role, account) {
266
- return;
267
- }
268
- add_to_role_enumeration(env, account, role);
269
- RoleGranted { role: role.clone(), account: account.clone(), caller: caller.clone() }.publish(env);
270
- }
271
-
272
- /// Revokes a role from an account without auth check.
273
- ///
274
- /// # Arguments
275
- /// * `account` - The account to revoke the role from.
276
- /// * `role` - The role to revoke.
277
- /// * `caller` - The account that is revoking the role. Must be owner or have the role's admin role.
278
- ///
279
- /// # Security Warning
280
- ///
281
- /// **IMPORTANT**: This function bypasses authorization checks and should only
282
- /// be used:
283
- /// - During contract initialization/construction
284
- /// - In admin functions that implement their own authorization logic
285
- ///
286
- /// Using this function in public-facing methods creates significant security
287
- /// risks as it could allow unauthorized role revocations.
288
- pub fn revoke_role_no_auth(env: &Env, account: &Address, role: &Symbol, caller: &Address) {
289
- assert_with_error!(env, RbacStorage::has_role_account_to_index(env, role, account), RbacError::RoleNotHeld);
290
- remove_from_role_enumeration(env, account, role);
291
- RoleRevoked { role: role.clone(), account: account.clone(), caller: caller.clone() }.publish(env);
292
- }
293
-
294
- /// Sets the admin role for a role without auth check. For constructor/init or when caller enforces own auth.
295
- ///
296
- /// # Arguments
297
- /// * `role` - The role to set the admin for.
298
- /// * `admin_role` - The admin role to set for the role.
299
- ///
300
- /// # Security Warning
301
- ///
302
- /// **IMPORTANT**: This function bypasses authorization checks and should only
303
- /// be used:
304
- /// - During contract initialization/construction
305
- /// - In admin functions that implement their own authorization logic
306
- ///
307
- /// Using this function in public-facing methods creates significant security
308
- /// risks as it could allow unauthorized admin role assignments.
309
- ///
310
- /// # Circular Admin Warning
311
- ///
312
- /// **CAUTION**: This function allows the creation of circular admin
313
- /// relationships between roles. For example, it's possible to assign MINT_ADMIN
314
- /// as the admin of MINT_ROLE while also making MINT_ROLE the admin of
315
- /// MINT_ADMIN. Such circular relationships can lead to unintended consequences,
316
- /// including:
317
- ///
318
- /// - Race conditions where each role can revoke the other
319
- /// - Potential security vulnerabilities in role management
320
- /// - Confusing governance structures that are difficult to reason about
321
- ///
322
- /// When designing your role hierarchy, carefully consider the relationships
323
- /// between roles and avoid creating circular dependencies.
324
- pub fn set_role_admin_no_auth(env: &Env, role: &Symbol, admin_role: &Symbol) {
325
- let previous = RbacStorage::role_admin(env, role);
326
- RbacStorage::set_role_admin(env, role, admin_role);
327
- RoleAdminChanged { role: role.clone(), previous_admin_role: previous, new_admin_role: Some(admin_role.clone()) }
328
- .publish(env);
329
- }
330
-
331
- /// Removes the admin role for a specified role without auth check.
332
- ///
333
- /// For use in admin functions that implement their own authorization logic,
334
- /// or when cleaning up unused roles.
335
- ///
336
- /// # Arguments
337
- /// * `role` - The role to remove the admin for.
338
- ///
339
- /// # Errors
340
- /// * `RbacError::AdminRoleNotFound` - If no admin role is set for the role.
341
- ///
342
- /// # Security Warning
343
- ///
344
- /// **IMPORTANT**: This function bypasses authorization checks and should only
345
- /// be used:
346
- /// - In admin functions that implement their own authorization logic
347
- /// - When cleaning up unused roles
348
- pub fn remove_role_admin_no_auth(env: &Env, role: &Symbol) {
349
- let previous = RbacStorage::role_admin(env, role);
350
- assert_with_error!(env, previous.is_some(), RbacError::AdminRoleNotFound);
351
- RbacStorage::remove_role_admin(env, role);
352
- RoleAdminChanged { role: role.clone(), previous_admin_role: previous, new_admin_role: None }.publish(env);
353
- }
354
-
355
- // ===========================================================================
356
- // Private helpers
357
- // ===========================================================================
358
-
359
- /// Ensures the caller is the authorizer or has the role's admin role.
360
- ///
361
- /// # Arguments
362
- /// * `role` - The role to check the caller for.
363
- /// * `caller` - The account that is being checked. Must be the authorizer or have the role's admin role.
364
- ///
365
- /// # Errors
366
- /// * `Unauthorized` - If the caller is neither the authorizer nor has the role's admin role.
367
- fn ensure_if_authorizer_or_role_admin<T: RoleBasedAccessControl>(env: &Env, role: &Symbol, caller: &Address) {
368
- assert_with_error!(
369
- env,
370
- T::get_role_admin(env, role).is_some_and(|admin_role| T::has_role(env, caller, &admin_role).is_some())
371
- || Some(caller) == T::authorizer(env).as_ref(),
372
- RbacError::Unauthorized
373
- );
374
- }
375
-
376
- /// Adds an account to the role enumeration.
377
- ///
378
- /// # Arguments
379
- /// * `account` - The account to add to the role enumeration.
380
- /// * `role` - The role to add the account to.
381
- fn add_to_role_enumeration(env: &Env, account: &Address, role: &Symbol) {
382
- let count = RbacStorage::role_accounts_count(env, role);
383
-
384
- // If the role has no accounts, add it to the existing roles
385
- if count == 0 {
386
- let mut existing = RbacStorage::existing_roles(env);
387
- assert_with_error!(env, existing.len() < MAX_ROLES, RbacError::MaxRolesExceeded);
388
- existing.push_back(role.clone());
389
- RbacStorage::set_existing_roles(env, &existing);
390
- }
391
-
392
- RbacStorage::set_role_index_to_account(env, role, count, account);
393
- RbacStorage::set_role_account_to_index(env, role, account, &count);
394
- RbacStorage::set_role_accounts_count(env, role, &(count + 1));
395
- }
396
-
397
- /// Removes an account from the role enumeration.
398
- ///
399
- /// # Arguments
400
- /// * `account` - The account to remove from the role enumeration.
401
- /// * `role` - The role to remove the account from.
402
- fn remove_from_role_enumeration(env: &Env, account: &Address, role: &Symbol) {
403
- let count = RbacStorage::role_accounts_count(env, role);
404
- assert_with_error!(env, count > 0, RbacError::RoleIsEmpty);
405
-
406
- // Get the index of the account to remove
407
- let to_remove_idx =
408
- RbacStorage::role_account_to_index(env, role, account).unwrap_or_panic(env, RbacError::RoleNotHeld);
409
-
410
- // Get the index of the last account for the role
411
- let last_idx = count - 1;
412
-
413
- // Remove the target account's mappings
414
- RbacStorage::remove_role_index_to_account(env, role, to_remove_idx);
415
- RbacStorage::remove_role_account_to_index(env, role, account);
416
-
417
- // If the removed account wasn't the last, move the last account into the vacated slot
418
- if to_remove_idx != last_idx {
419
- // Get the last account and remove the mapping from index to account
420
- let last_account =
421
- RbacStorage::role_index_to_account(env, role, last_idx).unwrap_or_panic(env, RbacError::IndexOutOfBounds);
422
- RbacStorage::remove_role_index_to_account(env, role, last_idx);
423
-
424
- // Move the last account into the vacated slot
425
- RbacStorage::set_role_index_to_account(env, role, to_remove_idx, &last_account);
426
- RbacStorage::set_role_account_to_index(env, role, &last_account, &to_remove_idx);
427
- }
428
-
429
- RbacStorage::set_role_accounts_count(env, role, &last_idx);
430
-
431
- // If this was the last account with this role, remove the role from the existing roles
432
- if last_idx == 0 {
433
- let mut existing = RbacStorage::existing_roles(env);
434
- let pos = existing.first_index_of(role).unwrap_or_panic(env, RbacError::RoleNotFound);
435
- existing.remove(pos);
436
- RbacStorage::set_existing_roles(env, &existing);
437
- }
438
- }
@@ -1,180 +0,0 @@
1
- use soroban_sdk::{testutils::Events, xdr, Address, Env, Event, TryFromVal, Val, Vec};
2
-
3
- /// Decodes a raw emitted contract event (XDR) into `(topics, data)`.
4
- ///
5
- /// Soroban testutils exposes events as [`ContractEvents`](soroban_sdk::testutils::ContractEvents),
6
- /// which internally stores XDR [`ContractEvent`](soroban_sdk::xdr::ContractEvent) values.
7
- /// This helper converts the XDR topics/data into `soroban_sdk::Val` so tests can inspect
8
- /// topics and data using normal Soroban conversions (`TryFromVal` / `IntoVal`).
9
- ///
10
- /// Returns `None` if any topic or the data payload can't be converted into `Val` for the
11
- /// provided `Env`.
12
- ///
13
- /// # Example
14
- /// ```ignore
15
- /// let events = env.events().all().filter_by_contract(&contract);
16
- /// for ev in events.events().iter() {
17
- /// let (topics, data) = utils::testing_utils::decode_event_topics_data(&env, ev).unwrap();
18
- /// // ... inspect topics/data ...
19
- /// }
20
- /// ```
21
- pub fn decode_event_topics_data(env: &Env, event: &xdr::ContractEvent) -> Option<(Vec<Val>, Val)> {
22
- // In the current Soroban SDK version this is always `V0`.
23
- // Using a single-variant match avoids "irrefutable let-else" warnings.
24
- let v0 = match &event.body {
25
- xdr::ContractEventBody::V0(v0) => v0,
26
- };
27
-
28
- let mut topics = Vec::<Val>::new(env);
29
- for t in v0.topics.iter() {
30
- topics.push_back(Val::try_from_val(env, t).ok()?);
31
- }
32
- let data = Val::try_from_val(env, &v0.data).ok()?;
33
- Some((topics, data))
34
- }
35
-
36
- /// Asserts that the environment emitted exactly one event: `expected`.
37
- ///
38
- /// This is a **strict equality** assertion over `env.events().all()`:
39
- /// the full event list must be exactly `[expected]` (no extra events).
40
- ///
41
- /// Uses the event struct's `.topics()` and `.data()` methods (generated by `#[contractevent]`)
42
- /// to compare against emitted events. No more hardcoding topic names or field keys!
43
- ///
44
- /// # Example
45
- /// ```ignore
46
- /// use crate::events::OwnershipTransferred;
47
- ///
48
- /// let expected = OwnershipTransferred {
49
- /// previous_owner: owner.clone(),
50
- /// new_owner: new_owner.clone(),
51
- /// };
52
- /// assert_eq_event(&env, &contract, expected);
53
- /// ```
54
- pub fn assert_eq_event<E: Event>(env: &Env, contract: &Address, expected: E) {
55
- // Compare against the emitted `xdr::ContractEvent` directly. This avoids the
56
- // `xdr -> Val` roundtrip and ensures we match exactly what was emitted.
57
- //
58
- // IMPORTANT: This asserts *equality* (not "contains").
59
- extern crate std;
60
-
61
- assert_eq!(
62
- env.events().all(),
63
- std::vec![expected.to_xdr(env, contract)],
64
- "Expected exactly one event. Expected topics: {:?}, data: {:?}",
65
- expected.topics(env),
66
- expected.data(env),
67
- );
68
- }
69
-
70
- /// Asserts that the contract emitted an event equal to `expected`.
71
- ///
72
- /// This is a **contains** assertion: after filtering events by `contract`,
73
- /// `expected` must appear at least once (order doesn't matter; extra events allowed).
74
- ///
75
- /// Uses the event struct's `.topics()` and `.data()` methods (generated by `#[contractevent]`)
76
- /// to compare against emitted events. No more hardcoding topic names or field keys!
77
- ///
78
- /// # Example
79
- /// ```ignore
80
- /// use crate::events::OwnershipTransferred;
81
- ///
82
- /// let expected = OwnershipTransferred {
83
- /// previous_owner: owner.clone(),
84
- /// new_owner: new_owner.clone(),
85
- /// };
86
- /// assert_eq_event(&env, &contract, expected);
87
- /// ```
88
- pub fn assert_contains_event<E: Event>(env: &Env, contract: &Address, expected: E) {
89
- // Compare against the emitted `xdr::ContractEvent` directly. This avoids the
90
- // `xdr -> Val` roundtrip and ensures we match exactly what was emitted.
91
- let expected_xdr = expected.to_xdr(env, contract);
92
-
93
- let events = env.events().all().filter_by_contract(contract);
94
- let mut found = false;
95
- for event in events.events().iter() {
96
- if *event == expected_xdr {
97
- found = true;
98
- break;
99
- }
100
- }
101
-
102
- assert!(
103
- found,
104
- "Expected event not found. Expected topics: {:?}, data: {:?}",
105
- expected.topics(env),
106
- expected.data(env)
107
- );
108
- }
109
-
110
- /// Asserts that the environment emitted events that match `expected_events` exactly.
111
- ///
112
- /// This is a **strict equality** assertion over `env.events().all()`:
113
- /// the full event list must match `expected_events` **in order** and **count**
114
- /// (no missing/extra events).
115
- ///
116
- /// # Example
117
- /// ```ignore
118
- /// assert_eq_events(env, &contract, &[
119
- /// &Event1 { ... },
120
- /// &Event2 { ... },
121
- /// ]);
122
- /// ```
123
-
124
- pub fn assert_eq_events(env: &Env, contract: &Address, expected_events: &[&dyn Event]) {
125
- // Note: this module is only compiled for tests / testutils usage, where `std` is available.
126
- extern crate std;
127
- let expected_xdrs: std::vec::Vec<xdr::ContractEvent> =
128
- expected_events.iter().map(|e| e.to_xdr(env, contract)).collect();
129
-
130
- assert_eq!(env.events().all(), expected_xdrs, "Expected events to match exactly");
131
- }
132
-
133
- /// Asserts that all `expected_events` were emitted by the contract (in any order).
134
- ///
135
- /// This is a **contains** assertion with multiset semantics: after filtering events by
136
- /// `contract`, every expected event must be present, and duplicates in `expected_events`
137
- /// require duplicate emissions. Extra emitted events are allowed.
138
- ///
139
- /// # Example
140
- /// ```ignore
141
- /// assert_eq_events(env, &contract, &[
142
- /// &Event1 { ... },
143
- /// &Event2 { ... },
144
- /// ]);
145
- /// ```
146
-
147
- pub fn assert_contains_events(env: &Env, contract: &Address, expected_events: &[&dyn Event]) {
148
- // Note: this module is only compiled for tests / testutils usage, where `std` is available.
149
- extern crate std;
150
- let events = env.events().all().filter_by_contract(contract);
151
- let raw_events = events.events();
152
- // Track which emitted events have already been matched so that duplicate expectations
153
- // require duplicate emissions (multiset semantics).
154
- // We use a `std::vec::Vec<bool>` as a "used" mask to implement multiset matching.
155
- let mut used: std::vec::Vec<bool> = std::vec![false; raw_events.len()];
156
-
157
- for (i, expected) in expected_events.iter().enumerate() {
158
- let expected_xdr = expected.to_xdr(env, contract);
159
-
160
- let mut found = false;
161
- for (idx, event) in raw_events.iter().enumerate() {
162
- if used[idx] {
163
- continue;
164
- }
165
- if *event == expected_xdr {
166
- used[idx] = true;
167
- found = true;
168
- break;
169
- }
170
- }
171
-
172
- assert!(
173
- found,
174
- "Expected event #{} not found. Expected topics: {:?}, data: {:?}",
175
- i,
176
- expected.topics(env),
177
- expected.data(env)
178
- );
179
- }
180
- }