@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,239 +1,147 @@
1
1
  use soroban_sdk::{testutils::Address as _, Address, BytesN};
2
2
 
3
- use crate::{storage, tests::endpoint_setup::setup, util};
3
+ use crate::{storage, tests::endpoint_setup::setup, tests::endpoint_setup::TestSetup, util};
4
4
 
5
+ // Helpers
6
+ fn set_outbound_nonce(context: &TestSetup, sender: &Address, dst_eid: u32, receiver: &BytesN<32>, nonce: u64) {
7
+ let env = &context.env;
8
+ let endpoint_client = &context.endpoint_client;
9
+ env.as_contract(&endpoint_client.address, || {
10
+ storage::EndpointStorage::set_outbound_nonce(env, sender, dst_eid, receiver, &nonce)
11
+ });
12
+ }
13
+
14
+ fn expected_guid(context: &TestSetup, nonce: u64, sender: &Address, dst_eid: u32, receiver: &BytesN<32>) -> BytesN<32> {
15
+ let env = &context.env;
16
+ let endpoint_client = &context.endpoint_client;
17
+ env.as_contract(&endpoint_client.address, || util::compute_guid(env, nonce, context.eid, sender, dst_eid, receiver))
18
+ }
19
+
20
+ // The next_guid uses (outbound_nonce + 1) and does not mutate state
5
21
  #[test]
6
22
  fn test_next_guid_basic() {
7
- let test_setup = setup();
8
- let env = &test_setup.env;
9
- let endpoint_client = &test_setup.endpoint_client;
23
+ let context = setup();
24
+ let env = &context.env;
25
+ let endpoint_client = &context.endpoint_client;
10
26
 
11
27
  let sender = Address::generate(env);
12
28
  let dst_eid = 2;
13
29
  let receiver = BytesN::from_array(env, &[1u8; 32]);
14
30
 
15
- // Initially outbound nonce should be 0, so next_guid should use nonce 1
16
- let initial_outbound_nonce = endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver);
17
- assert_eq!(initial_outbound_nonce, 0);
31
+ // Initially outbound nonce should be 0, so next_guid should use nonce 1.
32
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), 0);
18
33
 
19
- // Get next GUID
20
34
  let guid = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
35
+ assert_eq!(guid, expected_guid(&context, 1, &sender, dst_eid, &receiver));
21
36
 
22
- // Verify GUID is computed correctly using nonce 1
23
- let expected_guid = env.as_contract(&endpoint_client.address, || {
24
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid, &receiver)
25
- });
26
- assert_eq!(guid, expected_guid);
27
-
28
- // Verify outbound nonce hasn't changed (next_guid is a view function)
29
- let after_outbound_nonce = endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver);
30
- assert_eq!(after_outbound_nonce, 0);
37
+ // next_guid is a view function: it should not mutate outbound_nonce.
38
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), 0);
31
39
  }
32
40
 
33
41
  #[test]
34
42
  fn test_next_guid_with_existing_nonce() {
35
- let test_setup = setup();
36
- let env = &test_setup.env;
37
- let endpoint_client = &test_setup.endpoint_client;
43
+ let context = setup();
44
+ let env = &context.env;
45
+ let endpoint_client = &context.endpoint_client;
38
46
 
39
47
  let sender = Address::generate(env);
40
48
  let dst_eid = 2;
41
49
  let receiver = BytesN::from_array(env, &[1u8; 32]);
42
50
 
43
- // Set outbound nonce to 5
44
- env.as_contract(&endpoint_client.address, || {
45
- storage::EndpointStorage::set_outbound_nonce(env, &sender, dst_eid, &receiver, &5)
46
- });
47
-
48
- // Verify outbound nonce is 5
49
- let current_outbound_nonce = endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver);
50
- assert_eq!(current_outbound_nonce, 5);
51
+ // Set outbound nonce to 5, so next_guid should use nonce 6.
52
+ set_outbound_nonce(&context, &sender, dst_eid, &receiver, 5);
53
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), 5);
51
54
 
52
- // Get next GUID (should use nonce 6)
53
55
  let guid = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
56
+ assert_eq!(guid, expected_guid(&context, 6, &sender, dst_eid, &receiver));
54
57
 
55
- // Verify GUID is computed correctly using nonce 6
56
- let expected_guid = env.as_contract(&endpoint_client.address, || {
57
- util::compute_guid(env, 6, test_setup.eid, &sender, dst_eid, &receiver)
58
- });
59
- assert_eq!(guid, expected_guid);
60
-
61
- // Verify outbound nonce hasn't changed
62
- let after_outbound_nonce = endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver);
63
- assert_eq!(after_outbound_nonce, 5);
58
+ // next_guid is a view function: it should not mutate outbound_nonce.
59
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), 5);
64
60
  }
65
61
 
62
+ // Path isolation (sender/dst_eid/receiver are isolated)
66
63
  #[test]
67
- fn test_next_guid_different_senders() {
68
- let test_setup = setup();
69
- let env = &test_setup.env;
70
- let endpoint_client = &test_setup.endpoint_client;
64
+ fn test_next_guid_isolated_by_sender_dst_eid_and_receiver() {
65
+ let context = setup();
66
+ let env = &context.env;
67
+ let endpoint_client = &context.endpoint_client;
71
68
 
72
69
  let sender1 = Address::generate(env);
73
70
  let sender2 = Address::generate(env);
74
71
  let dst_eid = 2;
72
+ let dst_eid_other = 3;
75
73
  let receiver = BytesN::from_array(env, &[1u8; 32]);
76
-
77
- // Get GUIDs for different senders
78
- let guid1 = endpoint_client.next_guid(&sender1, &dst_eid, &receiver);
79
- let guid2 = endpoint_client.next_guid(&sender2, &dst_eid, &receiver);
80
-
81
- // Verify GUIDs are different (different senders should produce different GUIDs)
82
- assert_ne!(guid1, guid2);
83
-
84
- // Verify both use nonce 1 (independent nonce counters)
85
- let expected_guid1 = env.as_contract(&endpoint_client.address, || {
86
- util::compute_guid(env, 1, test_setup.eid, &sender1, dst_eid, &receiver)
87
- });
88
- let expected_guid2 = env.as_contract(&endpoint_client.address, || {
89
- util::compute_guid(env, 1, test_setup.eid, &sender2, dst_eid, &receiver)
90
- });
91
-
92
- assert_eq!(guid1, expected_guid1);
93
- assert_eq!(guid2, expected_guid2);
94
- }
95
-
96
- #[test]
97
- fn test_next_guid_different_dst_eids() {
98
- let test_setup = setup();
99
- let env = &test_setup.env;
100
- let endpoint_client = &test_setup.endpoint_client;
101
-
102
- let sender = Address::generate(env);
103
- let dst_eid1 = 2;
104
- let dst_eid2 = 3;
105
- let receiver = BytesN::from_array(env, &[1u8; 32]);
106
-
107
- // Get GUIDs for different destination EIDs
108
- let guid1 = endpoint_client.next_guid(&sender, &dst_eid1, &receiver);
109
- let guid2 = endpoint_client.next_guid(&sender, &dst_eid2, &receiver);
110
-
111
- // Verify GUIDs are different (different dst_eids should produce different GUIDs)
112
- assert_ne!(guid1, guid2);
113
-
114
- // Verify both use nonce 1 (independent nonce counters per dst_eid)
115
- let expected_guid1 = env.as_contract(&endpoint_client.address, || {
116
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid1, &receiver)
117
- });
118
- let expected_guid2 = env.as_contract(&endpoint_client.address, || {
119
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid2, &receiver)
120
- });
121
-
122
- assert_eq!(guid1, expected_guid1);
123
- assert_eq!(guid2, expected_guid2);
124
- }
125
-
126
- #[test]
127
- fn test_next_guid_different_receivers() {
128
- let test_setup = setup();
129
- let env = &test_setup.env;
130
- let endpoint_client = &test_setup.endpoint_client;
131
-
132
- let sender = Address::generate(env);
133
- let dst_eid = 2;
134
- let receiver1 = BytesN::from_array(env, &[1u8; 32]);
135
- let receiver2 = BytesN::from_array(env, &[2u8; 32]);
136
-
137
- // Get GUIDs for different receivers
138
- let guid1 = endpoint_client.next_guid(&sender, &dst_eid, &receiver1);
139
- let guid2 = endpoint_client.next_guid(&sender, &dst_eid, &receiver2);
140
-
141
- // Verify GUIDs are different (different receivers should produce different GUIDs)
142
- assert_ne!(guid1, guid2);
143
-
144
- // Verify both use nonce 1 (independent nonce counters per receiver)
145
- let expected_guid1 = env.as_contract(&endpoint_client.address, || {
146
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid, &receiver1)
147
- });
148
- let expected_guid2 = env.as_contract(&endpoint_client.address, || {
149
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid, &receiver2)
150
- });
151
-
152
- assert_eq!(guid1, expected_guid1);
153
- assert_eq!(guid2, expected_guid2);
154
- }
155
-
156
- #[test]
157
- fn test_next_guid_sequential_calls() {
158
- let test_setup = setup();
159
- let env = &test_setup.env;
160
- let endpoint_client = &test_setup.endpoint_client;
161
-
162
- let sender = Address::generate(env);
163
- let dst_eid = 2;
164
- let receiver = BytesN::from_array(env, &[1u8; 32]);
165
-
166
- // Multiple calls to next_guid should return the same GUID (view function)
167
- let guid1 = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
168
- let guid2 = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
169
- let guid3 = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
170
-
171
- // All GUIDs should be the same since outbound nonce hasn't changed
172
- assert_eq!(guid1, guid2);
173
- assert_eq!(guid2, guid3);
174
-
175
- // All should use nonce 1
176
- let expected_guid = env.as_contract(&endpoint_client.address, || {
177
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid, &receiver)
178
- });
179
- assert_eq!(guid1, expected_guid);
74
+ let receiver_other = BytesN::from_array(env, &[2u8; 32]);
75
+
76
+ // Different senders should produce different GUIDs (even with the same nonce).
77
+ let guid_sender1 = endpoint_client.next_guid(&sender1, &dst_eid, &receiver);
78
+ let guid_sender2 = endpoint_client.next_guid(&sender2, &dst_eid, &receiver);
79
+ assert_ne!(guid_sender1, guid_sender2);
80
+ assert_eq!(guid_sender1, expected_guid(&context, 1, &sender1, dst_eid, &receiver));
81
+ assert_eq!(guid_sender2, expected_guid(&context, 1, &sender2, dst_eid, &receiver));
82
+
83
+ // Different dst_eids should produce different GUIDs.
84
+ let guid_dst1 = endpoint_client.next_guid(&sender1, &dst_eid, &receiver);
85
+ let guid_dst2 = endpoint_client.next_guid(&sender1, &dst_eid_other, &receiver);
86
+ assert_ne!(guid_dst1, guid_dst2);
87
+ assert_eq!(guid_dst1, expected_guid(&context, 1, &sender1, dst_eid, &receiver));
88
+ assert_eq!(guid_dst2, expected_guid(&context, 1, &sender1, dst_eid_other, &receiver));
89
+
90
+ // Different receivers should produce different GUIDs.
91
+ let guid_recv1 = endpoint_client.next_guid(&sender1, &dst_eid, &receiver);
92
+ let guid_recv2 = endpoint_client.next_guid(&sender1, &dst_eid, &receiver_other);
93
+ assert_ne!(guid_recv1, guid_recv2);
94
+ assert_eq!(guid_recv1, expected_guid(&context, 1, &sender1, dst_eid, &receiver));
95
+ assert_eq!(guid_recv2, expected_guid(&context, 1, &sender1, dst_eid, &receiver_other));
180
96
  }
181
-
97
+ // The next_guid reflects outbound_nonce changes, but does not update outbound_nonce itself
182
98
  #[test]
183
99
  fn test_next_guid_after_outbound_increment() {
184
- let test_setup = setup();
185
- let env = &test_setup.env;
186
- let endpoint_client = &test_setup.endpoint_client;
100
+ let context = setup();
101
+ let env = &context.env;
102
+ let endpoint_client = &context.endpoint_client;
187
103
 
188
104
  let sender = Address::generate(env);
189
105
  let dst_eid = 2;
190
106
  let receiver = BytesN::from_array(env, &[1u8; 32]);
191
107
 
192
- // Get initial GUID (should use nonce 1)
108
+ // Get initial GUID (should use nonce 1).
193
109
  let guid1 = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
194
- let expected_guid1 = env.as_contract(&endpoint_client.address, || {
195
- util::compute_guid(env, 1, test_setup.eid, &sender, dst_eid, &receiver)
196
- });
197
- assert_eq!(guid1, expected_guid1);
110
+ assert_eq!(guid1, expected_guid(&context, 1, &sender, dst_eid, &receiver));
198
111
 
199
- // Simulate incrementing outbound nonce (as would happen in actual send)
200
- env.as_contract(&endpoint_client.address, || {
201
- storage::EndpointStorage::set_outbound_nonce(env, &sender, dst_eid, &receiver, &1)
202
- });
112
+ // Simulate incrementing outbound nonce (as would happen in actual send).
113
+ set_outbound_nonce(&context, &sender, dst_eid, &receiver, 1);
203
114
 
204
- // Get next GUID (should now use nonce 2)
115
+ // Get next GUID (should now use nonce 2).
205
116
  let guid2 = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
206
- let expected_guid2 = env.as_contract(&endpoint_client.address, || {
207
- util::compute_guid(env, 2, test_setup.eid, &sender, dst_eid, &receiver)
208
- });
209
- assert_eq!(guid2, expected_guid2);
117
+ assert_eq!(guid2, expected_guid(&context, 2, &sender, dst_eid, &receiver));
210
118
 
211
- // Verify GUIDs are different
119
+ // Verify GUIDs are different.
212
120
  assert_ne!(guid1, guid2);
213
121
  }
214
122
 
123
+ // Large nonce does not overflow when computing the next GUID
215
124
  #[test]
216
125
  fn test_next_guid_large_nonce() {
217
- let test_setup = setup();
218
- let env = &test_setup.env;
219
- let endpoint_client = &test_setup.endpoint_client;
126
+ let context = setup();
127
+ let env = &context.env;
128
+ let endpoint_client = &context.endpoint_client;
220
129
 
221
130
  let sender = Address::generate(env);
222
131
  let dst_eid = 2;
223
132
  let receiver = BytesN::from_array(env, &[1u8; 32]);
224
133
  let large_nonce = u64::MAX - 1;
225
134
 
226
- // Set outbound nonce to a large value
227
- env.as_contract(&endpoint_client.address, || {
228
- storage::EndpointStorage::set_outbound_nonce(env, &sender, dst_eid, &receiver, &large_nonce)
229
- });
135
+ // Set outbound nonce to a large value so next_guid should use u64::MAX.
136
+ set_outbound_nonce(&context, &sender, dst_eid, &receiver, large_nonce);
137
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), large_nonce);
230
138
 
231
- // Get next GUID (should use nonce u64::MAX)
139
+ // Get next GUID (should use nonce u64::MAX).
232
140
  let guid = endpoint_client.next_guid(&sender, &dst_eid, &receiver);
233
141
 
234
- // Verify GUID is computed correctly with large nonce
235
- let expected_guid = env.as_contract(&endpoint_client.address, || {
236
- util::compute_guid(env, u64::MAX, test_setup.eid, &sender, dst_eid, &receiver)
237
- });
238
- assert_eq!(guid, expected_guid);
142
+ // Verify GUID is computed correctly with the large nonce.
143
+ assert_eq!(guid, expected_guid(&context, u64::MAX, &sender, dst_eid, &receiver));
144
+
145
+ // next_guid is a view function: it should not mutate outbound_nonce.
146
+ assert_eq!(endpoint_client.outbound_nonce(&sender, &dst_eid, &receiver), large_nonce);
239
147
  }