@layerzerolabs/protocol-stellar-v2 0.2.13 → 0.2.15

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 (319) hide show
  1. package/.turbo/turbo-build.log +384 -278
  2. package/.turbo/turbo-lint.log +110 -78
  3. package/.turbo/turbo-test.log +1248 -1014
  4. package/Cargo.lock +130 -3
  5. package/Cargo.toml +2 -1
  6. package/contracts/common-macros/src/contract_impl.rs +6 -1
  7. package/contracts/common-macros/src/lib.rs +47 -8
  8. package/contracts/common-macros/src/ownable.rs +7 -25
  9. package/contracts/common-macros/src/storage.rs +1 -1
  10. package/contracts/common-macros/src/tests/contract_impl.rs +5 -0
  11. package/contracts/common-macros/src/tests/mod.rs +1 -0
  12. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap +23 -7
  13. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +5 -25
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__storage__snapshot_generated_storage_code.snap +48 -48
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +5 -25
  16. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +21 -0
  17. package/contracts/common-macros/src/tests/upgradeable.rs +31 -0
  18. package/contracts/common-macros/src/ttl_configurable.rs +14 -44
  19. package/contracts/common-macros/src/upgradeable.rs +76 -0
  20. package/contracts/endpoint-v2/src/endpoint_v2.rs +25 -1
  21. package/contracts/endpoint-v2/src/tests/endpoint_setup.rs +175 -8
  22. package/contracts/endpoint-v2/src/tests/endpoint_v2/build_outbound_packet.rs +76 -0
  23. package/contracts/endpoint-v2/src/tests/endpoint_v2/clear.rs +342 -159
  24. package/contracts/endpoint-v2/src/tests/endpoint_v2/delegate.rs +3 -15
  25. package/contracts/endpoint-v2/src/tests/endpoint_v2/initializable.rs +20 -31
  26. package/contracts/endpoint-v2/src/tests/endpoint_v2/lz_receive_alert.rs +126 -164
  27. package/contracts/endpoint-v2/src/tests/endpoint_v2/mod.rs +1 -0
  28. package/contracts/endpoint-v2/src/tests/endpoint_v2/native_token.rs +0 -1
  29. package/contracts/endpoint-v2/src/tests/endpoint_v2/owner.rs +0 -1
  30. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +311 -304
  31. package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +423 -96
  32. package/contracts/endpoint-v2/src/tests/endpoint_v2/recover_token.rs +1 -1
  33. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +47 -20
  34. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +373 -403
  35. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_delegate.rs +96 -22
  36. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +61 -9
  37. package/contracts/endpoint-v2/src/tests/endpoint_v2/transfer_ownership.rs +4 -4
  38. package/contracts/endpoint-v2/src/tests/endpoint_v2/ttl_config.rs +8 -11
  39. package/contracts/endpoint-v2/src/tests/endpoint_v2/verifiable.rs +81 -30
  40. package/contracts/endpoint-v2/src/tests/endpoint_v2/verify.rs +209 -76
  41. package/contracts/endpoint-v2/src/tests/endpoint_v2/zro.rs +0 -1
  42. package/contracts/endpoint-v2/src/tests/message_lib_manager/default_receive_library.rs +24 -0
  43. package/contracts/endpoint-v2/src/tests/message_lib_manager/default_receive_library_timeout.rs +40 -0
  44. package/contracts/endpoint-v2/src/tests/message_lib_manager/default_send_library.rs +24 -0
  45. package/contracts/endpoint-v2/src/tests/message_lib_manager/get_config.rs +108 -0
  46. package/contracts/endpoint-v2/src/tests/message_lib_manager/get_library_index.rs +52 -0
  47. package/contracts/endpoint-v2/src/tests/message_lib_manager/get_receive_library.rs +92 -0
  48. package/contracts/endpoint-v2/src/tests/message_lib_manager/get_registered_libraries.rs +74 -0
  49. package/contracts/endpoint-v2/src/tests/message_lib_manager/get_send_library.rs +83 -0
  50. package/contracts/endpoint-v2/src/tests/message_lib_manager/is_registered_library.rs +32 -0
  51. package/contracts/endpoint-v2/src/tests/message_lib_manager/is_supported_eid.rs +28 -0
  52. package/contracts/endpoint-v2/src/tests/message_lib_manager/is_valid_receive_library.rs +261 -0
  53. package/contracts/endpoint-v2/src/tests/message_lib_manager/mod.rs +16 -0
  54. package/contracts/endpoint-v2/src/tests/message_lib_manager/receive_library_timeout.rs +62 -0
  55. package/contracts/endpoint-v2/src/tests/message_lib_manager/register_library.rs +65 -43
  56. package/contracts/endpoint-v2/src/tests/message_lib_manager/registered_libraries_count.rs +42 -0
  57. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +61 -0
  58. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +3 -5
  59. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +59 -0
  60. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +15 -1
  61. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_config.rs +155 -51
  62. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +114 -92
  63. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +235 -132
  64. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_send_library.rs +93 -87
  65. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library.rs +346 -245
  66. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_receive_library_timeout.rs +406 -60
  67. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_send_library.rs +252 -78
  68. package/contracts/endpoint-v2/src/tests/message_lib_manager/timeout.rs +102 -0
  69. package/contracts/endpoint-v2/src/tests/messaging_channel/burn.rs +212 -273
  70. package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +203 -0
  71. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +94 -0
  72. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound_nonce.rs +78 -248
  73. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound_payload_hash.rs +7 -282
  74. package/contracts/endpoint-v2/src/tests/messaging_channel/lazy_inbound_nonce.rs +6 -274
  75. package/contracts/endpoint-v2/src/tests/messaging_channel/mod.rs +3 -2
  76. package/contracts/endpoint-v2/src/tests/messaging_channel/next_guid.rs +86 -178
  77. package/contracts/endpoint-v2/src/tests/messaging_channel/nilify.rs +328 -212
  78. package/contracts/endpoint-v2/src/tests/messaging_channel/outbound.rs +68 -0
  79. package/contracts/endpoint-v2/src/tests/messaging_channel/outbound_nonce.rs +6 -209
  80. package/contracts/endpoint-v2/src/tests/messaging_channel/skip.rs +207 -159
  81. package/contracts/endpoint-v2/src/tests/messaging_composer/clear_compose.rs +142 -153
  82. package/contracts/endpoint-v2/src/tests/messaging_composer/compose_queue.rs +6 -179
  83. package/contracts/endpoint-v2/src/tests/messaging_composer/lz_compose_alert.rs +163 -221
  84. package/contracts/endpoint-v2/src/tests/messaging_composer/send_compose.rs +90 -121
  85. package/contracts/endpoint-v2/src/tests/mock.rs +18 -4
  86. package/contracts/endpoint-v2/src/tests/util/build_payload.rs +4 -70
  87. package/contracts/endpoint-v2/src/tests/util/compute_guid.rs +2 -1
  88. package/contracts/endpoint-v2/src/tests/util/keccak256.rs +17 -106
  89. package/contracts/layerzero-views/Cargo.toml +35 -0
  90. package/contracts/layerzero-views/src/errors.rs +10 -0
  91. package/contracts/layerzero-views/src/layerzero_view.rs +229 -0
  92. package/contracts/layerzero-views/src/lib.rs +38 -0
  93. package/contracts/layerzero-views/src/storage.rs +18 -0
  94. package/contracts/layerzero-views/src/tests/layerzero_view_tests.rs +423 -0
  95. package/contracts/layerzero-views/src/tests/mod.rs +4 -0
  96. package/contracts/layerzero-views/src/tests/setup.rs +377 -0
  97. package/contracts/layerzero-views/src/types.rs +50 -0
  98. package/contracts/macro-integration-tests/Cargo.toml +30 -0
  99. package/contracts/macro-integration-tests/src/lib.rs +1 -0
  100. package/contracts/macro-integration-tests/tests/runtime/ownable/initialization.rs +62 -0
  101. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +22 -0
  102. package/contracts/macro-integration-tests/tests/runtime/ownable/only_owner_guard.rs +97 -0
  103. package/contracts/macro-integration-tests/tests/runtime/ownable/ownership_transfer.rs +101 -0
  104. package/contracts/macro-integration-tests/tests/runtime/storage/keyed_roundtrip.rs +225 -0
  105. package/contracts/macro-integration-tests/tests/runtime/storage/mod.rs +4 -0
  106. package/contracts/macro-integration-tests/tests/runtime/storage/name_override_runtime.rs +52 -0
  107. package/contracts/macro-integration-tests/tests/runtime/storage/ttl_extension.rs +261 -0
  108. package/contracts/macro-integration-tests/tests/runtime/storage/unkeyed_roundtrip.rs +137 -0
  109. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +113 -0
  110. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +50 -0
  111. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +139 -0
  112. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +3 -0
  113. package/contracts/macro-integration-tests/tests/runtime.rs +5 -0
  114. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.rs +12 -0
  115. package/contracts/macro-integration-tests/tests/ui/error/fail/attr_not_empty.stderr +7 -0
  116. package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.rs +12 -0
  117. package/contracts/macro-integration-tests/tests/ui/error/fail/decreasing_discriminant.stderr +7 -0
  118. package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.rs +21 -0
  119. package/contracts/macro-integration-tests/tests/ui/error/fail/non_int_discriminant.stderr +7 -0
  120. package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.rs +13 -0
  121. package/contracts/macro-integration-tests/tests/ui/error/fail/non_unit_variant.stderr +7 -0
  122. package/contracts/macro-integration-tests/tests/ui/error/pass/attr_on_variant_allowed.rs +20 -0
  123. package/contracts/macro-integration-tests/tests/ui/error/pass/basic_auto_discriminants.rs +15 -0
  124. package/contracts/macro-integration-tests/tests/ui/error/pass/mixed_discriminants.rs +16 -0
  125. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_owner_missing_env.rs +22 -0
  126. package/contracts/macro-integration-tests/tests/ui/ownable/fail/only_owner_missing_env.stderr +16 -0
  127. package/contracts/macro-integration-tests/tests/ui/ownable/pass/minimal_contract.rs +26 -0
  128. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +22 -0
  129. package/contracts/macro-integration-tests/tests/ui/ownable/pass/only_owner_env_param_variants.rs +46 -0
  130. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.rs +13 -0
  131. package/contracts/macro-integration-tests/tests/ui/storage/fail/invalid_storage_type_param.stderr +7 -0
  132. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.rs +13 -0
  133. package/contracts/macro-integration-tests/tests/ui/storage/fail/missing_storage_type_param.stderr +7 -0
  134. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.rs +10 -0
  135. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_storage_kinds.stderr +7 -0
  136. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.rs +12 -0
  137. package/contracts/macro-integration-tests/tests/ui/storage/fail/multiple_type_params.stderr +7 -0
  138. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.rs +10 -0
  139. package/contracts/macro-integration-tests/tests/ui/storage/fail/no_ttl_extension_on_non_persistent.stderr +7 -0
  140. package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.rs +10 -0
  141. package/contracts/macro-integration-tests/tests/ui/storage/fail/non_enum_input.stderr +7 -0
  142. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.rs +12 -0
  143. package/contracts/macro-integration-tests/tests/ui/storage/fail/storage_attr_rejects_args.stderr +7 -0
  144. package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.rs +13 -0
  145. package/contracts/macro-integration-tests/tests/ui/storage/fail/tuple_variant_rejected.stderr +7 -0
  146. package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.rs +13 -0
  147. package/contracts/macro-integration-tests/tests/ui/storage/fail/unknown_variant_attr.stderr +7 -0
  148. package/contracts/macro-integration-tests/tests/ui/storage/pass/default_value_on_variant.rs +14 -0
  149. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_instance_unit_basic.rs +14 -0
  150. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_persistent_named_fields_keyed.rs +16 -0
  151. package/contracts/macro-integration-tests/tests/ui/storage/pass/enum_temporary_unit_option.rs +15 -0
  152. package/contracts/macro-integration-tests/tests/ui/storage/pass/name_override.rs +14 -0
  153. package/contracts/macro-integration-tests/tests/ui/storage/pass/no_auto_ttl_extension.rs +19 -0
  154. package/contracts/macro-integration-tests/tests/ui/storage/pass/ttl_provider_basic.rs +15 -0
  155. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +44 -0
  156. package/contracts/macro-integration-tests/tests/ui_error.rs +11 -0
  157. package/contracts/macro-integration-tests/tests/ui_ownable.rs +11 -0
  158. package/contracts/macro-integration-tests/tests/ui_storage.rs +11 -0
  159. package/contracts/macro-integration-tests/tests/ui_ttl_configurable.rs +12 -0
  160. package/contracts/message-libs/blocked-message-lib/src/lib.rs +17 -17
  161. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +64 -0
  162. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/encode_packet.rs +58 -0
  163. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/encode_packet_header.rs +138 -0
  164. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/mod.rs +6 -0
  165. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/payload.rs +30 -0
  166. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/payload_hash.rs +15 -0
  167. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/test_helper.rs +39 -0
  168. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_dvn_option.rs +57 -0
  169. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +50 -0
  170. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +74 -0
  171. package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +280 -0
  172. package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +126 -0
  173. package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +48 -0
  174. package/contracts/message-libs/message-lib-common/src/tests/worker_options/mod.rs +7 -0
  175. package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +139 -0
  176. package/contracts/message-libs/message-lib-common/src/worker_options.rs +31 -1
  177. package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +2 -2
  178. package/contracts/message-libs/treasury/src/errors.rs +0 -1
  179. package/contracts/message-libs/treasury/src/lib.rs +3 -3
  180. package/contracts/message-libs/treasury/src/storage.rs +2 -0
  181. package/contracts/message-libs/treasury/src/treasury.rs +12 -13
  182. package/contracts/message-libs/uln-302/Cargo.toml +1 -1
  183. package/contracts/message-libs/uln-302/src/errors.rs +0 -5
  184. package/contracts/message-libs/uln-302/src/events.rs +5 -6
  185. package/contracts/message-libs/uln-302/src/receive_uln.rs +24 -54
  186. package/contracts/message-libs/uln-302/src/send_uln.rs +89 -135
  187. package/contracts/message-libs/uln-302/src/storage.rs +5 -5
  188. package/contracts/message-libs/uln-302/src/tests/receive_uln302/effective_receive_uln_config.rs +5 -7
  189. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +3 -3
  190. package/contracts/message-libs/uln-302/src/tests/send_uln302/effective_send_uln_config.rs +6 -9
  191. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_executor_configs.rs +2 -2
  192. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +3 -3
  193. package/contracts/message-libs/uln-302/src/tests/setup.rs +9 -0
  194. package/contracts/message-libs/uln-302/src/tests/testing_utils.rs +5 -0
  195. package/contracts/message-libs/uln-302/src/tests/uln302/get_app_receive_uln_config.rs +1 -2
  196. package/contracts/message-libs/uln-302/src/tests/uln302/get_app_send_uln_config.rs +1 -2
  197. package/contracts/message-libs/uln-302/src/tests/uln302/set_config.rs +37 -55
  198. package/contracts/message-libs/uln-302/src/uln302.rs +8 -5
  199. package/contracts/oapps/counter/src/counter.rs +0 -1
  200. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +306 -224
  201. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +0 -1
  202. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +0 -1
  203. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +0 -1
  204. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +0 -1
  205. package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_core.rs +1 -0
  206. package/contracts/oapps/oft/integration-tests/setup.rs +10 -3
  207. package/contracts/oapps/oft/integration-tests/utils.rs +1 -1
  208. package/contracts/oapps/oft/src/default_oft_impl.rs +9 -3
  209. package/contracts/oapps/oft/src/extensions/oft_fee.rs +5 -5
  210. package/contracts/oapps/oft/src/extensions/pausable.rs +1 -1
  211. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +18 -18
  212. package/contracts/oapps/oft/src/oft.rs +9 -9
  213. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -1
  214. package/contracts/oapps/oft/src/tests/extensions/setup.rs +26 -11
  215. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +1 -1
  216. package/contracts/oapps/oft/src/tests/test_send.rs +4 -4
  217. package/contracts/oapps/oft/src/tests/test_utils.rs +93 -74
  218. package/contracts/oapps/oft-std/Cargo.toml +6 -0
  219. package/contracts/oapps/oft-std/integration-tests/extensions/mod.rs +3 -0
  220. package/contracts/oapps/oft-std/integration-tests/extensions/test_oft_fee.rs +157 -0
  221. package/contracts/oapps/oft-std/integration-tests/extensions/test_pausable.rs +162 -0
  222. package/contracts/oapps/oft-std/integration-tests/extensions/test_rate_limiter.rs +186 -0
  223. package/contracts/oapps/oft-std/integration-tests/mod.rs +3 -0
  224. package/contracts/oapps/oft-std/integration-tests/setup.rs +245 -0
  225. package/contracts/oapps/oft-std/integration-tests/utils.rs +427 -0
  226. package/contracts/oapps/oft-std/src/lib.rs +12 -1
  227. package/contracts/oapps/oft-std/src/oft.rs +122 -25
  228. package/contracts/upgrader/Cargo.toml +19 -0
  229. package/contracts/upgrader/src/lib.rs +96 -0
  230. package/contracts/upgrader/src/tests/mod.rs +1 -0
  231. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  232. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  233. package/contracts/upgrader/src/tests/test_upgrader.rs +120 -0
  234. package/contracts/utils/src/errors.rs +6 -1
  235. package/contracts/utils/src/lib.rs +2 -1
  236. package/contracts/utils/src/ownable.rs +49 -61
  237. package/contracts/utils/src/tests/mod.rs +3 -1
  238. package/contracts/utils/src/tests/option_ext.rs +21 -0
  239. package/contracts/utils/src/tests/ownable.rs +10 -69
  240. package/contracts/utils/src/tests/ttl_configurable.rs +596 -0
  241. package/contracts/utils/src/tests/upgradeable.rs +288 -0
  242. package/contracts/utils/src/{ttl.rs → ttl_configurable.rs} +67 -52
  243. package/contracts/utils/src/upgradeable.rs +54 -0
  244. package/contracts/workers/dvn/Cargo.toml +1 -1
  245. package/contracts/workers/dvn/src/auth.rs +21 -32
  246. package/contracts/workers/dvn/src/dvn.rs +40 -3
  247. package/contracts/workers/dvn/src/errors.rs +1 -0
  248. package/contracts/workers/dvn/src/multisig.rs +10 -6
  249. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -2
  250. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +4 -4
  251. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -2
  252. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +46 -14
  253. package/contracts/workers/dvn-fee-lib/src/errors.rs +3 -2
  254. package/contracts/workers/dvn-fee-lib/src/lib.rs +5 -11
  255. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +30 -16
  256. package/contracts/workers/executor/src/executor.rs +16 -2
  257. package/contracts/workers/executor-fee-lib/src/errors.rs +9 -7
  258. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +154 -119
  259. package/contracts/workers/executor-helper/Cargo.toml +0 -5
  260. package/contracts/workers/executor-helper/src/lib.rs +1 -7
  261. package/contracts/workers/price-feed/Cargo.toml +0 -1
  262. package/contracts/workers/price-feed/src/errors.rs +3 -2
  263. package/contracts/workers/price-feed/src/lib.rs +5 -6
  264. package/contracts/workers/price-feed/src/price_feed.rs +39 -17
  265. package/contracts/workers/worker/Cargo.toml +4 -0
  266. package/contracts/workers/worker/src/interfaces/price_feed.rs +3 -3
  267. package/contracts/workers/worker/src/lib.rs +2 -2
  268. package/contracts/workers/worker/src/tests/mod.rs +4 -0
  269. package/contracts/workers/worker/src/tests/setup.rs +147 -0
  270. package/contracts/workers/worker/src/tests/worker.rs +501 -0
  271. package/contracts/workers/worker/src/worker.rs +10 -16
  272. package/package.json +3 -3
  273. package/sdk/dist/generated/bml.d.ts +40 -30
  274. package/sdk/dist/generated/bml.js +16 -11
  275. package/sdk/dist/generated/counter.d.ts +168 -134
  276. package/sdk/dist/generated/counter.js +26 -21
  277. package/sdk/dist/generated/dvn.d.ts +1932 -0
  278. package/sdk/dist/generated/dvn.js +288 -0
  279. package/sdk/dist/generated/dvn_fee_lib.d.ts +615 -0
  280. package/sdk/dist/generated/dvn_fee_lib.js +123 -0
  281. package/sdk/dist/generated/endpoint.d.ts +75 -41
  282. package/sdk/dist/generated/endpoint.js +22 -17
  283. package/sdk/dist/generated/executor.d.ts +1809 -0
  284. package/sdk/dist/generated/executor.js +269 -0
  285. package/sdk/dist/generated/executor_fee_lib.d.ts +999 -0
  286. package/sdk/dist/generated/executor_fee_lib.js +208 -0
  287. package/sdk/dist/generated/executor_helper.d.ts +869 -0
  288. package/sdk/dist/generated/executor_helper.js +187 -0
  289. package/sdk/dist/generated/oft_std.d.ts +1544 -0
  290. package/sdk/dist/generated/oft_std.js +271 -0
  291. package/sdk/dist/generated/price_feed.d.ts +1002 -0
  292. package/sdk/dist/generated/price_feed.js +170 -0
  293. package/sdk/dist/generated/sml.d.ts +75 -41
  294. package/sdk/dist/generated/sml.js +22 -17
  295. package/sdk/dist/generated/uln302.d.ts +79 -60
  296. package/sdk/dist/generated/uln302.js +37 -37
  297. package/sdk/dist/generated/upgrader.d.ts +70 -0
  298. package/sdk/dist/generated/upgrader.js +19 -0
  299. package/sdk/dist/index.d.ts +8 -0
  300. package/sdk/dist/index.js +11 -0
  301. package/sdk/package.json +4 -3
  302. package/sdk/src/index.ts +13 -0
  303. package/sdk/test/index.test.ts +0 -1
  304. package/sdk/test/oft.test.ts +12 -23
  305. package/sdk/test/suites/testUpgradeable.ts +169 -0
  306. package/sdk/test/upgrader.test.ts +309 -0
  307. package/tools/ts-bindings-gen/src/main.rs +11 -1
  308. package/contracts/endpoint-v2/src/tests/messaging_channel/clear.rs +0 -316
  309. package/contracts/endpoint-v2/src/tests/messaging_channel/internal.rs +0 -388
  310. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1.rs +0 -162
  311. package/contracts/message-libs/message-lib-common/src/tests/worker_options.rs +0 -319
  312. package/contracts/utils/src/tests/ttl.rs +0 -421
  313. /package/contracts/{oapp-macros → oapps/oapp-macros}/Cargo.toml +0 -0
  314. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/lib.rs +0 -0
  315. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_full.rs +0 -0
  316. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_options_type3.rs +0 -0
  317. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_receiver.rs +0 -0
  318. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/oapp_sender.rs +0 -0
  319. /package/contracts/{oapp-macros → oapps/oapp-macros}/src/util.rs +0 -0
@@ -55,8 +55,7 @@ fn test_set_config_invalid_type_should_fail() {
55
55
  let eid = 100;
56
56
 
57
57
  // Set up configs for the EID to make it supported
58
- setup.set_default_send_uln_config(eid, default_config.clone());
59
- setup.set_default_receive_uln_config(eid, default_config.clone());
58
+ setup.set_default_configs(eid, default_config.clone());
60
59
 
61
60
  let TestSetup { env, uln302, endpoint, .. } = setup;
62
61
  let oapp = Address::generate(&env);
@@ -91,8 +90,7 @@ fn test_set_send_config_invalid_confirmations_use_default_but_nonzero() {
91
90
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
92
91
  let eid = 100;
93
92
 
94
- setup.set_default_send_uln_config(eid, default_config.clone());
95
- setup.set_default_receive_uln_config(eid, default_config.clone());
93
+ setup.set_default_configs(eid, default_config.clone());
96
94
 
97
95
  let TestSetup { env, uln302, endpoint, .. } = setup;
98
96
  let oapp = Address::generate(&env);
@@ -122,8 +120,7 @@ fn test_set_receive_config_invalid_confirmations_use_default_but_nonzero() {
122
120
  let default_config = UlnConfig::generate(&setup.env, 15, 1, 2, 1);
123
121
  let eid = 101;
124
122
 
125
- setup.set_default_send_uln_config(eid, default_config.clone());
126
- setup.set_default_receive_uln_config(eid, default_config.clone());
123
+ setup.set_default_configs(eid, default_config.clone());
127
124
 
128
125
  let TestSetup { env, uln302, endpoint, .. } = setup;
129
126
  let oapp = Address::generate(&env);
@@ -153,8 +150,7 @@ fn test_set_send_config_valid_confirmations_use_default_with_zero() {
153
150
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
154
151
  let eid = 100;
155
152
 
156
- setup.set_default_send_uln_config(eid, default_config.clone());
157
- setup.set_default_receive_uln_config(eid, default_config.clone());
153
+ setup.set_default_configs(eid, default_config.clone());
158
154
 
159
155
  let TestSetup { env, uln302, endpoint, .. } = setup;
160
156
  let oapp = Address::generate(&env);
@@ -187,8 +183,7 @@ fn test_set_send_config_valid_confirmations_custom_with_any_value() {
187
183
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
188
184
  let eid = 100;
189
185
 
190
- setup.set_default_send_uln_config(eid, default_config.clone());
191
- setup.set_default_receive_uln_config(eid, default_config.clone());
186
+ setup.set_default_configs(eid, default_config.clone());
192
187
 
193
188
  let TestSetup { env, uln302, endpoint, .. } = setup;
194
189
  let oapp = Address::generate(&env);
@@ -223,8 +218,7 @@ fn test_set_send_config_invalid_required_dvns_use_default_but_not_empty() {
223
218
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
224
219
  let eid = 100;
225
220
 
226
- setup.set_default_send_uln_config(eid, default_config.clone());
227
- setup.set_default_receive_uln_config(eid, default_config.clone());
221
+ setup.set_default_configs(eid, default_config.clone());
228
222
 
229
223
  let TestSetup { env, uln302, endpoint, .. } = setup;
230
224
  let oapp = Address::generate(&env);
@@ -254,8 +248,7 @@ fn test_set_receive_config_invalid_required_dvns_use_default_but_not_empty() {
254
248
  let default_config = UlnConfig::generate(&setup.env, 15, 1, 2, 1);
255
249
  let eid = 101;
256
250
 
257
- setup.set_default_send_uln_config(eid, default_config.clone());
258
- setup.set_default_receive_uln_config(eid, default_config.clone());
251
+ setup.set_default_configs(eid, default_config.clone());
259
252
 
260
253
  let TestSetup { env, uln302, endpoint, .. } = setup;
261
254
  let oapp = Address::generate(&env);
@@ -285,8 +278,7 @@ fn test_set_send_config_valid_required_dvns_use_default_with_empty() {
285
278
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
286
279
  let eid = 100;
287
280
 
288
- setup.set_default_send_uln_config(eid, default_config.clone());
289
- setup.set_default_receive_uln_config(eid, default_config.clone());
281
+ setup.set_default_configs(eid, default_config.clone());
290
282
 
291
283
  let TestSetup { env, uln302, endpoint, .. } = setup;
292
284
  let oapp = Address::generate(&env);
@@ -319,8 +311,7 @@ fn test_set_send_config_invalid_required_dvns_duplicates() {
319
311
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
320
312
  let eid = 100;
321
313
 
322
- setup.set_default_send_uln_config(eid, default_config.clone());
323
- setup.set_default_receive_uln_config(eid, default_config.clone());
314
+ setup.set_default_configs(eid, default_config.clone());
324
315
 
325
316
  let TestSetup { env, uln302, endpoint, .. } = setup;
326
317
  let oapp = Address::generate(&env);
@@ -352,8 +343,7 @@ fn test_set_send_config_invalid_required_dvns_too_many() {
352
343
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
353
344
  let eid = 100;
354
345
 
355
- setup.set_default_send_uln_config(eid, default_config.clone());
356
- setup.set_default_receive_uln_config(eid, default_config.clone());
346
+ setup.set_default_configs(eid, default_config.clone());
357
347
 
358
348
  let TestSetup { env, uln302, endpoint, .. } = setup;
359
349
  let oapp = Address::generate(&env);
@@ -389,8 +379,7 @@ fn test_set_send_config_valid_required_dvns_custom() {
389
379
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
390
380
  let eid = 100;
391
381
 
392
- setup.set_default_send_uln_config(eid, default_config.clone());
393
- setup.set_default_receive_uln_config(eid, default_config.clone());
382
+ setup.set_default_configs(eid, default_config.clone());
394
383
 
395
384
  let TestSetup { env, uln302, endpoint, .. } = setup;
396
385
  let oapp = Address::generate(&env);
@@ -425,8 +414,7 @@ fn test_set_send_config_invalid_optional_dvns_use_default_but_threshold_nonzero(
425
414
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
426
415
  let eid = 100;
427
416
 
428
- setup.set_default_send_uln_config(eid, default_config.clone());
429
- setup.set_default_receive_uln_config(eid, default_config.clone());
417
+ setup.set_default_configs(eid, default_config.clone());
430
418
 
431
419
  let TestSetup { env, uln302, endpoint, .. } = setup;
432
420
  let oapp = Address::generate(&env);
@@ -456,8 +444,7 @@ fn test_set_send_config_invalid_optional_dvns_use_default_but_dvns_not_empty() {
456
444
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
457
445
  let eid = 100;
458
446
 
459
- setup.set_default_send_uln_config(eid, default_config.clone());
460
- setup.set_default_receive_uln_config(eid, default_config.clone());
447
+ setup.set_default_configs(eid, default_config.clone());
461
448
 
462
449
  let TestSetup { env, uln302, endpoint, .. } = setup;
463
450
  let oapp = Address::generate(&env);
@@ -487,8 +474,7 @@ fn test_set_receive_config_invalid_optional_dvns_use_default_but_threshold_nonze
487
474
  let default_config = UlnConfig::generate(&setup.env, 15, 1, 2, 1);
488
475
  let eid = 101;
489
476
 
490
- setup.set_default_send_uln_config(eid, default_config.clone());
491
- setup.set_default_receive_uln_config(eid, default_config.clone());
477
+ setup.set_default_configs(eid, default_config.clone());
492
478
 
493
479
  let TestSetup { env, uln302, endpoint, .. } = setup;
494
480
  let oapp = Address::generate(&env);
@@ -518,8 +504,7 @@ fn test_set_send_config_valid_optional_dvns_use_default() {
518
504
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
519
505
  let eid = 100;
520
506
 
521
- setup.set_default_send_uln_config(eid, default_config.clone());
522
- setup.set_default_receive_uln_config(eid, default_config.clone());
507
+ setup.set_default_configs(eid, default_config.clone());
523
508
 
524
509
  let TestSetup { env, uln302, endpoint, .. } = setup;
525
510
  let oapp = Address::generate(&env);
@@ -552,8 +537,7 @@ fn test_set_send_config_invalid_optional_dvns_duplicates() {
552
537
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
553
538
  let eid = 100;
554
539
 
555
- setup.set_default_send_uln_config(eid, default_config.clone());
556
- setup.set_default_receive_uln_config(eid, default_config.clone());
540
+ setup.set_default_configs(eid, default_config.clone());
557
541
 
558
542
  let TestSetup { env, uln302, endpoint, .. } = setup;
559
543
  let oapp = Address::generate(&env);
@@ -585,8 +569,7 @@ fn test_set_send_config_invalid_optional_dvns_too_many() {
585
569
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
586
570
  let eid = 100;
587
571
 
588
- setup.set_default_send_uln_config(eid, default_config.clone());
589
- setup.set_default_receive_uln_config(eid, default_config.clone());
572
+ setup.set_default_configs(eid, default_config.clone());
590
573
 
591
574
  let TestSetup { env, uln302, endpoint, .. } = setup;
592
575
  let oapp = Address::generate(&env);
@@ -622,8 +605,7 @@ fn test_set_send_config_invalid_optional_dvns_threshold_zero_with_dvns() {
622
605
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
623
606
  let eid = 100;
624
607
 
625
- setup.set_default_send_uln_config(eid, default_config.clone());
626
- setup.set_default_receive_uln_config(eid, default_config.clone());
608
+ setup.set_default_configs(eid, default_config.clone());
627
609
 
628
610
  let TestSetup { env, uln302, endpoint, .. } = setup;
629
611
  let oapp = Address::generate(&env);
@@ -653,8 +635,7 @@ fn test_set_send_config_invalid_optional_dvns_threshold_greater_than_dvns() {
653
635
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
654
636
  let eid = 100;
655
637
 
656
- setup.set_default_send_uln_config(eid, default_config.clone());
657
- setup.set_default_receive_uln_config(eid, default_config.clone());
638
+ setup.set_default_configs(eid, default_config.clone());
658
639
 
659
640
  let TestSetup { env, uln302, endpoint, .. } = setup;
660
641
  let oapp = Address::generate(&env);
@@ -684,8 +665,7 @@ fn test_set_send_config_valid_optional_dvns_custom() {
684
665
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
685
666
  let eid = 100;
686
667
 
687
- setup.set_default_send_uln_config(eid, default_config.clone());
688
- setup.set_default_receive_uln_config(eid, default_config.clone());
668
+ setup.set_default_configs(eid, default_config.clone());
689
669
 
690
670
  let TestSetup { env, uln302, endpoint, .. } = setup;
691
671
  let oapp = Address::generate(&env);
@@ -718,8 +698,7 @@ fn test_set_send_config_valid_optional_dvns_custom_empty() {
718
698
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
719
699
  let eid = 100;
720
700
 
721
- setup.set_default_send_uln_config(eid, default_config.clone());
722
- setup.set_default_receive_uln_config(eid, default_config.clone());
701
+ setup.set_default_configs(eid, default_config.clone());
723
702
 
724
703
  let TestSetup { env, uln302, endpoint, .. } = setup;
725
704
  let oapp = Address::generate(&env);
@@ -754,8 +733,7 @@ fn test_set_send_config_valid_all_custom() {
754
733
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
755
734
  let eid = 100;
756
735
 
757
- setup.set_default_send_uln_config(eid, default_config.clone());
758
- setup.set_default_receive_uln_config(eid, default_config.clone());
736
+ setup.set_default_configs(eid, default_config.clone());
759
737
 
760
738
  let TestSetup { env, uln302, endpoint, .. } = setup;
761
739
  let oapp = Address::generate(&env);
@@ -788,8 +766,7 @@ fn test_set_receive_config_valid_all_custom() {
788
766
  let default_config = UlnConfig::generate(&setup.env, 15, 1, 2, 1);
789
767
  let eid = 101;
790
768
 
791
- setup.set_default_send_uln_config(eid, default_config.clone());
792
- setup.set_default_receive_uln_config(eid, default_config.clone());
769
+ setup.set_default_configs(eid, default_config.clone());
793
770
 
794
771
  let TestSetup { env, uln302, endpoint, .. } = setup;
795
772
  let oapp = Address::generate(&env);
@@ -822,8 +799,7 @@ fn test_set_send_config_invalid_multiple_errors_confirmations_first() {
822
799
  let default_config = UlnConfig::generate(&setup.env, 10, 2, 3, 2);
823
800
  let eid = 100;
824
801
 
825
- setup.set_default_send_uln_config(eid, default_config.clone());
826
- setup.set_default_receive_uln_config(eid, default_config.clone());
802
+ setup.set_default_configs(eid, default_config.clone());
827
803
 
828
804
  let TestSetup { env, uln302, endpoint, .. } = setup;
829
805
  let oapp = Address::generate(&env);
@@ -883,14 +859,13 @@ fn test_is_supported_eid_initially_false() {
883
859
  #[test]
884
860
  fn test_is_supported_eid_true_after_configs() {
885
861
  // Sui equivalent: test_version_and_utility (is_supported_eid after configs)
886
- // Tests that is_supported_eid returns true after both send and receive configs are set
862
+ // Tests that is_supported_eid returns true after all default configs are set
887
863
  let setup = setup();
888
864
  let eid = 100u32;
889
865
 
890
- // Set both send and receive configs
866
+ // Set all default configs (executor, send, and receive)
891
867
  let config = UlnConfig::generate(&setup.env, 15, 2, 3, 2);
892
- setup.set_default_send_uln_config(eid, config.clone());
893
- setup.set_default_receive_uln_config(eid, config);
868
+ setup.set_default_configs(eid, config);
894
869
 
895
870
  let TestSetup { env, uln302, .. } = setup;
896
871
  let uln302_client = Uln302Client::new(&env, &uln302.address);
@@ -939,9 +914,9 @@ fn test_supported_eid_combinations_only_receive_config() {
939
914
  }
940
915
 
941
916
  #[test]
942
- fn test_supported_eid_combinations_both_configs() {
917
+ fn test_supported_eid_combinations_all_configs() {
943
918
  // Sui equivalent: test_supported_eid_combinations
944
- // Tests that EID is supported only when both send AND receive configs are set
919
+ // Tests that EID is supported only when all configs (executor, send, receive) are set
945
920
  let setup = setup();
946
921
  let eid = 100u32;
947
922
 
@@ -950,12 +925,19 @@ fn test_supported_eid_combinations_both_configs() {
950
925
  // First set only send config
951
926
  setup.set_default_send_uln_config(eid, config.clone());
952
927
 
953
- // Still not supported
928
+ // Still not supported (missing executor and receive)
954
929
  assert!(!setup.uln302.is_supported_eid(&eid));
955
930
 
956
931
  // Now set receive config too
957
932
  setup.set_default_receive_uln_config(eid, config);
958
933
 
934
+ // Still not supported (missing executor)
935
+ assert!(!setup.uln302.is_supported_eid(&eid));
936
+
937
+ // Now set executor config
938
+ let executor_config = ExecutorConfig::generate(&setup.env, 10000);
939
+ setup.set_default_executor_config(eid, executor_config);
940
+
959
941
  // Now fully supported
960
942
  assert!(setup.uln302.is_supported_eid(&eid));
961
943
  }
@@ -1,8 +1,8 @@
1
1
  use crate::{
2
2
  errors::Uln302Error,
3
3
  events::{
4
- DVNFeePaid, DefaultExecutorConfigSet, DefaultUlnReceiveConfigSet, DefaultUlnSendConfigSet, ExecutorConfigSet,
5
- ExecutorFeePaid, PayloadVerified, UlnReceiveConfigSet, UlnSendConfigSet,
4
+ DVNFeePaid, DefaultExecutorConfigsSet, DefaultReceiveUlnConfigsSet, DefaultSendUlnConfigsSet,
5
+ ExecutorConfigSet, ExecutorFeePaid, PayloadVerified, ReceiveUlnConfigSet, SendUlnConfigSet,
6
6
  },
7
7
  interfaces::{
8
8
  ExecutorConfig, IReceiveUln302, ISendUln302, OAppExecutorConfig, OAppUlnConfig, SetDefaultExecutorConfigParam,
@@ -10,7 +10,7 @@ use crate::{
10
10
  },
11
11
  storage::UlnStorage,
12
12
  };
13
- use common_macros::{contract_impl, only_owner, ttl_configurable};
13
+ use common_macros::{contract_impl, only_owner, ownable, ttl_configurable};
14
14
  use endpoint_v2::{
15
15
  util, FeeRecipient, FeesAndPacket, IMessageLib, ISendLib, LayerZeroEndpointV2Client, MessageLibType,
16
16
  MessageLibVersion, MessagingFee, Origin, OutboundPacket, SetConfigParam,
@@ -34,6 +34,7 @@ pub const CONFIG_TYPE_RECEIVE_ULN: u32 = 3;
34
34
 
35
35
  #[contract]
36
36
  #[ttl_configurable]
37
+ #[ownable]
37
38
  pub struct Uln302;
38
39
 
39
40
  #[contract_impl]
@@ -91,9 +92,11 @@ impl IMessageLib for Uln302 {
91
92
  }
92
93
  }
93
94
 
94
- /// Returns true if the message library has default send and receive ULN configurations for the endpoint ID.
95
+ /// Returns true if the message library has full default configurations for the endpoint ID.
95
96
  fn is_supported_eid(env: &Env, eid: u32) -> bool {
96
- UlnStorage::has_default_send_uln_configs(env, eid) && UlnStorage::has_default_receive_uln_configs(env, eid)
97
+ UlnStorage::has_default_executor_configs(env, eid)
98
+ && UlnStorage::has_default_send_uln_configs(env, eid)
99
+ && UlnStorage::has_default_receive_uln_configs(env, eid)
97
100
  }
98
101
 
99
102
  /// Returns the version of the message library.
@@ -16,7 +16,6 @@ use oapp::{
16
16
  };
17
17
  use oapp_macros::{oapp, oapp_manual_impl};
18
18
  use soroban_sdk::{assert_with_error, panic_with_error, token::TokenClient, Address, Bytes, BytesN, Env};
19
- use utils::ownable::Ownable;
20
19
 
21
20
  #[oapp]
22
21
  #[oapp_manual_impl(receiver)]