@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
@@ -1,17 +1,17 @@
1
1
  #![no_std]
2
2
 
3
+ mod errors;
4
+ pub mod events;
3
5
  mod interfaces;
4
6
 
7
+ pub use errors::*;
5
8
  pub use interfaces::*;
6
9
 
7
10
  cfg_if::cfg_if! {
8
11
  // Include implementation when NOT in library mode, OR when testutils is enabled (for tests)
9
12
  if #[cfg(any(not(feature = "library"), feature = "testutils"))] {
10
- mod errors;
11
- mod events;
12
13
  mod storage;
13
14
  mod treasury;
14
-
15
15
  pub use treasury::{Treasury, TreasuryClient};
16
16
  }
17
17
  }
@@ -5,10 +5,12 @@ use soroban_sdk::Address;
5
5
  pub enum TreasuryStorage {
6
6
  /// Native fee in basis points (0-10000, where 10000 = 100%)
7
7
  #[instance(u32)]
8
+ #[default(0)]
8
9
  NativeFeeBp,
9
10
 
10
11
  /// Global toggle for all fee collection
11
12
  #[instance(bool)]
13
+ #[default(false)]
12
14
  FeeEnabled,
13
15
 
14
16
  /// Address of the ZRO token fee library contract for custom fee calculations
@@ -4,7 +4,7 @@ use crate::{
4
4
  interfaces::ZROFeeLibClient,
5
5
  storage::TreasuryStorage,
6
6
  };
7
- use common_macros::{contract_impl, only_owner, ttl_configurable};
7
+ use common_macros::{contract_impl, only_owner, ownable, ttl_configurable};
8
8
  use message_lib_common::interfaces::ILayerZeroTreasury;
9
9
  use soroban_sdk::{assert_with_error, contract, token::Client, Address, Env};
10
10
  use utils::option_ext::OptionExt;
@@ -14,6 +14,7 @@ const BPS_DENOMINATOR: u32 = 10000;
14
14
 
15
15
  #[contract]
16
16
  #[ttl_configurable]
17
+ #[ownable]
17
18
  pub struct Treasury;
18
19
 
19
20
  #[contract_impl]
@@ -67,9 +68,7 @@ impl Treasury {
67
68
  /// * `amount` - The amount to withdraw (must be positive)
68
69
  #[only_owner]
69
70
  pub fn withdraw_token(env: &Env, token: &Address, to: &Address, amount: i128) {
70
- let token_client = Client::new(env, token);
71
- token_client.transfer(&env.current_contract_address(), to, &amount);
72
-
71
+ Client::new(env, token).transfer(&env.current_contract_address(), to, &amount);
73
72
  TokenWithdrawn { token: token.clone(), to: to.clone(), amount }.publish(env);
74
73
  }
75
74
 
@@ -79,12 +78,12 @@ impl Treasury {
79
78
 
80
79
  /// Returns the native fee percentage in basis points.
81
80
  pub fn native_fee_bp(env: &Env) -> u32 {
82
- TreasuryStorage::native_fee_bp(env).unwrap_or(0)
81
+ TreasuryStorage::native_fee_bp(env)
83
82
  }
84
83
 
85
84
  /// Returns whether fee collection is enabled.
86
85
  pub fn fee_enabled(env: &Env) -> bool {
87
- TreasuryStorage::fee_enabled(env).unwrap_or(false)
86
+ TreasuryStorage::fee_enabled(env)
88
87
  }
89
88
 
90
89
  /// Returns the ZRO fee library address if set.
@@ -125,13 +124,13 @@ impl ILayerZeroTreasury for Treasury {
125
124
  }
126
125
 
127
126
  let native_treasury_fee = Self::calculate_native_fee(env, total_native_fee);
128
- if pay_in_zro {
129
- let zro_fee =
130
- Self::expect_zro_fee_lib_client(env).get_fee(sender, &dst_eid, &total_native_fee, &native_treasury_fee);
131
- assert_with_error!(env, zro_fee >= 0, TreasuryError::InvalidZROFee);
132
- zro_fee
133
- } else {
134
- native_treasury_fee
127
+ if !pay_in_zro {
128
+ return native_treasury_fee;
135
129
  }
130
+
131
+ let zro_fee =
132
+ Self::expect_zro_fee_lib_client(env).get_fee(sender, &dst_eid, &total_native_fee, &native_treasury_fee);
133
+ assert_with_error!(env, zro_fee >= 0, TreasuryError::InvalidZROFee);
134
+ zro_fee
136
135
  }
137
136
  }
@@ -6,7 +6,7 @@ license.workspace = true
6
6
  publish = false
7
7
 
8
8
  [lib]
9
- crate-type = ["cdylib"]
9
+ crate-type = ["cdylib", "rlib"]
10
10
  doctest = false
11
11
 
12
12
  [features]
@@ -15,13 +15,8 @@ pub enum Uln302Error {
15
15
  InvalidOptionalDVNCount,
16
16
  InvalidOptionalDVNs,
17
17
  InvalidOptionalDVNThreshold,
18
- InvalidPacketHeader,
19
18
  InvalidRequiredDVNCount,
20
19
  InvalidRequiredDVNs,
21
- OAppExecutorConfigNotFound,
22
- OAppReceiveUlnConfigNotFound,
23
- OAppSendUlnConfigNotFound,
24
- OnlyEndpoint,
25
20
  UlnAtLeastOneDVN,
26
21
  UnsupportedEid,
27
22
  Verifying,
@@ -17,7 +17,7 @@ pub struct ExecutorConfigSet {
17
17
 
18
18
  #[contractevent]
19
19
  #[derive(Clone, Debug, Eq, PartialEq)]
20
- pub struct UlnSendConfigSet {
20
+ pub struct SendUlnConfigSet {
21
21
  #[topic]
22
22
  pub sender: Address,
23
23
  #[topic]
@@ -27,7 +27,7 @@ pub struct UlnSendConfigSet {
27
27
 
28
28
  #[contractevent]
29
29
  #[derive(Clone, Debug, Eq, PartialEq)]
30
- pub struct UlnReceiveConfigSet {
30
+ pub struct ReceiveUlnConfigSet {
31
31
  #[topic]
32
32
  pub receiver: Address,
33
33
  #[topic]
@@ -37,19 +37,19 @@ pub struct UlnReceiveConfigSet {
37
37
 
38
38
  #[contractevent]
39
39
  #[derive(Clone, Debug, Eq, PartialEq)]
40
- pub struct DefaultExecutorConfigSet {
40
+ pub struct DefaultExecutorConfigsSet {
41
41
  pub params: Vec<SetDefaultExecutorConfigParam>,
42
42
  }
43
43
 
44
44
  #[contractevent]
45
45
  #[derive(Clone, Debug, Eq, PartialEq)]
46
- pub struct DefaultUlnSendConfigSet {
46
+ pub struct DefaultSendUlnConfigsSet {
47
47
  pub params: Vec<SetDefaultUlnConfigParam>,
48
48
  }
49
49
 
50
50
  #[contractevent]
51
51
  #[derive(Clone, Debug, Eq, PartialEq)]
52
- pub struct DefaultUlnReceiveConfigSet {
52
+ pub struct DefaultReceiveUlnConfigsSet {
53
53
  pub params: Vec<SetDefaultUlnConfigParam>,
54
54
  }
55
55
 
@@ -64,7 +64,6 @@ pub struct ExecutorFeePaid {
64
64
  #[contractevent]
65
65
  #[derive(Clone, Debug, Eq, PartialEq)]
66
66
  pub struct DVNFeePaid {
67
- #[topic]
68
67
  pub dvns: Vec<Address>,
69
68
  pub fees: Vec<FeeRecipient>,
70
69
  }
@@ -30,7 +30,8 @@ impl IReceiveUln302 for Uln302 {
30
30
  /// (all required DVNs + optional DVN threshold). Once verified, cleans up DVN confirmation
31
31
  /// storage and calls the endpoint to mark the message as verified and executable.
32
32
  fn commit_verification(env: &Env, packet_header: &Bytes, payload_hash: &BytesN<32>) {
33
- let (header, header_hash, uln_config) = Self::validate_and_extract_param(env, packet_header);
33
+ let (header, uln_config) = Self::decode_packet_header_with_config(env, packet_header);
34
+ let header_hash = util::keccak256(env, packet_header);
34
35
 
35
36
  // check if the message is verifiable
36
37
  assert_with_error!(
@@ -45,10 +46,12 @@ impl IReceiveUln302 for Uln302 {
45
46
  });
46
47
 
47
48
  // commit verification to the endpoint
48
- let send_lib = env.current_contract_address();
49
- let origin = Origin { src_eid: header.src_eid, sender: header.sender, nonce: header.nonce };
50
- let receiver = Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver));
51
- LayerZeroEndpointV2Client::new(env, &Self::endpoint(env)).verify(&send_lib, &origin, &receiver, payload_hash);
49
+ LayerZeroEndpointV2Client::new(env, &Self::endpoint(env)).verify(
50
+ &env.current_contract_address(),
51
+ &Origin { src_eid: header.src_eid, sender: header.sender, nonce: header.nonce },
52
+ &Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver)),
53
+ payload_hash,
54
+ );
52
55
  }
53
56
 
54
57
  // ============================================================================================
@@ -64,8 +67,7 @@ impl IReceiveUln302 for Uln302 {
64
67
  param.config.validate_default_config(env);
65
68
  UlnStorage::set_default_receive_uln_configs(env, param.eid, &param.config);
66
69
  }
67
-
68
- DefaultUlnReceiveConfigSet { params: params.clone() }.publish(env);
70
+ DefaultReceiveUlnConfigsSet { params: params.clone() }.publish(env);
69
71
  }
70
72
 
71
73
  // ============================================================================================
@@ -79,8 +81,8 @@ impl IReceiveUln302 for Uln302 {
79
81
 
80
82
  /// Checks if a message has been sufficiently verified by DVNs and is ready to commit.
81
83
  fn verifiable(env: &Env, packet_header: &Bytes, payload_hash: &BytesN<32>) -> bool {
82
- let (_, header_hash, uln_config) = Self::validate_and_extract_param(env, packet_header);
83
- Self::verifiable_internal(env, &uln_config, &header_hash, payload_hash)
84
+ let (_, uln_config) = Self::decode_packet_header_with_config(env, packet_header);
85
+ Self::verifiable_internal(env, &uln_config, &util::keccak256(env, packet_header), payload_hash)
84
86
  }
85
87
 
86
88
  /// Returns the default receive ULN configuration for a source endpoint.
@@ -95,13 +97,14 @@ impl IReceiveUln302 for Uln302 {
95
97
 
96
98
  /// Returns the effective receive ULN configuration by merging OApp config with defaults.
97
99
  fn effective_receive_uln_config(env: &Env, receiver: &Address, src_eid: u32) -> UlnConfig {
98
- let default_config = Self::expect_default_receive_uln_config(env, src_eid);
100
+ let default_config = Self::default_receive_uln_config(env, src_eid)
101
+ .unwrap_or_panic(env, Uln302Error::DefaultReceiveUlnConfigNotFound);
99
102
  let oapp_config = Self::oapp_receive_uln_config(env, receiver, src_eid).unwrap_or(OAppUlnConfig::default(env));
100
103
 
101
- let config = oapp_config.apply_default_config(&default_config);
102
- config.validate_at_least_one_dvn(env); // validate the final config
104
+ let effective_config = oapp_config.apply_default_config(&default_config);
105
+ effective_config.validate_at_least_one_dvn(env); // validate the final config
103
106
 
104
- config
107
+ effective_config
105
108
  }
106
109
  }
107
110
 
@@ -112,12 +115,6 @@ impl IReceiveUln302 for Uln302 {
112
115
  impl Uln302 {
113
116
  /// Sets OApp-specific receive ULN config.
114
117
  ///
115
- /// # Arguments
116
- /// * `receiver` - The receiver OApp address
117
- /// * `src_eid` - The source endpoint ID
118
- /// * `config` - The OApp-specific receive ULN configuration
119
- ///
120
- /// # Panics
121
118
  /// Panics if the final effective config is invalid.
122
119
  pub(super) fn set_receive_uln_config(env: &Env, receiver: &Address, src_eid: u32, config: &OAppUlnConfig) {
123
120
  config.validate_oapp_config(env);
@@ -126,15 +123,15 @@ impl Uln302 {
126
123
  // validate the config by getting the effective config
127
124
  let _ = Self::effective_receive_uln_config(env, receiver, src_eid);
128
125
 
129
- UlnReceiveConfigSet { receiver: receiver.clone(), src_eid, config: config.clone() }.publish(env);
126
+ ReceiveUlnConfigSet { receiver: receiver.clone(), src_eid, config: config.clone() }.publish(env);
130
127
  }
131
128
 
132
129
  // ============================================================================================
133
130
  // Verification Helpers Functions
134
131
  // ============================================================================================
135
132
 
136
- /// Validates packet header and extracts header, header hash, and effective ULN config.
137
- fn validate_and_extract_param(env: &Env, packet_header: &Bytes) -> (PacketHeader, BytesN<32>, UlnConfig) {
133
+ /// Decodes packet header and returns header and effective ULN config.
134
+ fn decode_packet_header_with_config(env: &Env, packet_header: &Bytes) -> (PacketHeader, UlnConfig) {
138
135
  let header = packet_codec_v1::decode_packet_header(env, packet_header);
139
136
  assert_with_error!(
140
137
  env,
@@ -142,25 +139,15 @@ impl Uln302 {
142
139
  Uln302Error::InvalidEID
143
140
  );
144
141
 
145
- let header_hash = util::keccak256(env, packet_header);
146
- let uln_config = Self::effective_receive_uln_config(
147
- env,
148
- &Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver.clone())),
149
- header.src_eid,
150
- );
142
+ let receiver = Address::from_payload(env, AddressPayload::ContractIdHash(header.receiver.clone()));
143
+ let uln_config = Self::effective_receive_uln_config(env, &receiver, header.src_eid);
151
144
 
152
- (header, header_hash, uln_config)
145
+ (header, uln_config)
153
146
  }
154
147
 
155
148
  /// Checks if all required DVNs verified and optional DVN threshold is met.
156
149
  ///
157
- /// # Arguments
158
- /// * `uln_config` - The effective ULN configuration
159
- /// * `header_hash` - The hash of the packet header
160
- /// * `payload_hash` - The hash of the message payload
161
- ///
162
- /// # Returns
163
- /// True if the message has been verified by enough DVNs to be committed, false otherwise
150
+ /// Returns true if the message has been verified by enough DVNs to be committed, false otherwise
164
151
  fn verifiable_internal(
165
152
  env: &Env,
166
153
  uln_config: &UlnConfig,
@@ -177,14 +164,7 @@ impl Uln302 {
177
164
 
178
165
  /// Checks if a DVN has submitted enough confirmations for the message.
179
166
  ///
180
- /// # Arguments
181
- /// * `dvn` - The DVN address
182
- /// * `header_hash` - The hash of the packet header
183
- /// * `payload_hash` - The hash of the message payload
184
- /// * `confirmations` - The number of block confirmations the DVN has observed
185
- ///
186
- /// # Returns
187
- /// True if the DVN has submitted enough confirmations for the message, false otherwise
167
+ /// Returns true if the DVN has submitted enough confirmations for the message, false otherwise
188
168
  fn verified(
189
169
  env: &Env,
190
170
  dvn: &Address,
@@ -194,14 +174,4 @@ impl Uln302 {
194
174
  ) -> bool {
195
175
  Self::confirmations(env, dvn, header_hash, payload_hash).map(|c| c >= confirmations).unwrap_or(false)
196
176
  }
197
-
198
- // ============================================================================================
199
- // Helper Functions
200
- // ============================================================================================
201
-
202
- /// Returns default receive ULN config or panics if not found.
203
- fn expect_default_receive_uln_config(env: &Env, src_eid: u32) -> UlnConfig {
204
- Self::default_receive_uln_config(env, src_eid)
205
- .unwrap_or_panic(env, Uln302Error::DefaultReceiveUlnConfigNotFound)
206
- }
207
177
  }