@layerzerolabs/protocol-stellar-v2 0.2.15 → 0.2.18

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 (257) hide show
  1. package/.turbo/turbo-build.log +350 -309
  2. package/.turbo/turbo-lint.log +146 -108
  3. package/.turbo/turbo-test.log +1423 -1238
  4. package/Cargo.lock +12 -0
  5. package/Cargo.toml +3 -0
  6. package/contracts/ERROR_SPEC.md +44 -0
  7. package/contracts/common-macros/src/auth.rs +113 -0
  8. package/contracts/common-macros/src/contract_ttl.rs +84 -0
  9. package/contracts/common-macros/src/lib.rs +181 -30
  10. package/contracts/common-macros/src/lz_contract.rs +83 -0
  11. package/contracts/common-macros/src/tests/{ownable.rs → auth.rs} +48 -15
  12. package/contracts/common-macros/src/tests/contract_ttl.rs +662 -0
  13. package/contracts/common-macros/src/tests/mod.rs +2 -2
  14. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_multisig_code.snap +20 -0
  15. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__auth__snapshot_generated_ownable_code.snap +24 -0
  16. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__ownable__snapshot_only_owner_preserves_function_signature.snap → common_macros__tests__auth__snapshot_only_auth_preserves_function_signature.snap} +4 -4
  17. package/contracts/common-macros/src/tests/snapshots/{common_macros__tests__contract_impl__snapshot_generated_contract_impl_code.snap → common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap} +3 -3
  18. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contracttrait_code.snap +69 -0
  19. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ttl_configurable__snapshot_generated_ttl_configurable_code.snap +7 -21
  20. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +2 -2
  21. package/contracts/common-macros/src/ttl_configurable.rs +19 -34
  22. package/contracts/common-macros/src/ttl_extendable.rs +36 -0
  23. package/contracts/common-macros/src/upgradeable.rs +5 -5
  24. package/contracts/common-macros/src/utils.rs +9 -0
  25. package/contracts/endpoint-v2/src/constants.rs +4 -4
  26. package/contracts/endpoint-v2/src/endpoint_v2.rs +38 -40
  27. package/contracts/endpoint-v2/src/errors.rs +4 -3
  28. package/contracts/endpoint-v2/src/events.rs +1 -1
  29. package/contracts/endpoint-v2/src/message_lib_manager.rs +18 -5
  30. package/contracts/endpoint-v2/src/messaging_channel.rs +11 -1
  31. package/contracts/endpoint-v2/src/messaging_composer.rs +11 -1
  32. package/contracts/endpoint-v2/src/storage.rs +1 -1
  33. package/contracts/endpoint-v2/src/tests/endpoint_v2/pay_messaging_fees.rs +3 -3
  34. package/contracts/endpoint-v2/src/tests/endpoint_v2/quote.rs +1 -1
  35. package/contracts/endpoint-v2/src/tests/endpoint_v2/require_oapp_auth.rs +2 -2
  36. package/contracts/endpoint-v2/src/tests/endpoint_v2/send.rs +3 -3
  37. package/contracts/endpoint-v2/src/tests/endpoint_v2/set_zro.rs +4 -4
  38. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_receive_lib_for_eid.rs +3 -3
  39. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_registered.rs +1 -1
  40. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_send_lib_for_eid.rs +3 -3
  41. package/contracts/endpoint-v2/src/tests/message_lib_manager/require_supported_eid.rs +1 -1
  42. package/contracts/endpoint-v2/src/tests/messaging_channel/clear_payload.rs +4 -4
  43. package/contracts/endpoint-v2/src/tests/messaging_channel/inbound.rs +1 -1
  44. package/contracts/layerzero-views/src/layerzero_view.rs +3 -6
  45. package/contracts/macro-integration-tests/tests/runtime/ownable/mod.rs +2 -2
  46. package/contracts/macro-integration-tests/tests/runtime/ownable/{only_owner_guard.rs → only_auth_guard.rs} +1 -1
  47. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/configuration.rs +1 -1
  48. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/freeze.rs +1 -1
  49. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/mod.rs +0 -1
  50. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.rs → only_auth_missing_env.rs} +3 -3
  51. package/contracts/macro-integration-tests/tests/ui/ownable/fail/{only_owner_missing_env.stderr → only_auth_missing_env.stderr} +4 -4
  52. package/contracts/macro-integration-tests/tests/ui/ownable/pass/namespacing_and_imports.rs +2 -3
  53. package/contracts/macro-integration-tests/tests/ui/ownable/pass/{only_owner_env_param_variants.rs → only_auth_env_param_variants.rs} +9 -9
  54. package/contracts/macro-integration-tests/tests/ui/ttl_configurable/pass/minimal_contract.rs +6 -6
  55. package/contracts/message-libs/message-lib-common/src/errors.rs +7 -2
  56. package/contracts/message-libs/message-lib-common/src/tests/packet_codec_v1/decode_packet_header.rs +3 -3
  57. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_lz_receive_option.rs +1 -2
  58. package/contracts/message-libs/message-lib-common/src/tests/worker_options/append_native_drop_option.rs +1 -2
  59. package/contracts/message-libs/message-lib-common/src/tests/worker_options/convert_legacy_options.rs +9 -9
  60. package/contracts/message-libs/message-lib-common/src/tests/worker_options/extract_type_3_options.rs +1 -1
  61. package/contracts/message-libs/message-lib-common/src/tests/worker_options/left_pad_to_bytes32.rs +1 -1
  62. package/contracts/message-libs/message-lib-common/src/tests/worker_options/split_worker_options.rs +2 -2
  63. package/contracts/message-libs/simple-message-lib/src/simple_message_lib.rs +7 -9
  64. package/contracts/message-libs/treasury/src/errors.rs +2 -2
  65. package/contracts/message-libs/treasury/src/events.rs +1 -1
  66. package/contracts/message-libs/treasury/src/interfaces/zro_fee_lib.rs +2 -2
  67. package/contracts/message-libs/treasury/src/storage.rs +1 -1
  68. package/contracts/message-libs/treasury/src/tests/treasury_tests.rs +1 -1
  69. package/contracts/message-libs/treasury/src/treasury.rs +14 -16
  70. package/contracts/message-libs/uln-302/src/receive_uln.rs +13 -2
  71. package/contracts/message-libs/uln-302/src/send_uln.rs +23 -3
  72. package/contracts/message-libs/uln-302/src/uln302.rs +6 -24
  73. package/contracts/oapps/counter/Cargo.toml +14 -1
  74. package/contracts/oapps/counter/integration_tests/mod.rs +4 -1
  75. package/contracts/oapps/counter/integration_tests/{setup.rs → setup_sml.rs} +48 -80
  76. package/contracts/oapps/counter/integration_tests/setup_uln.rs +997 -0
  77. package/contracts/oapps/counter/integration_tests/signing.rs +62 -0
  78. package/contracts/oapps/counter/integration_tests/test_with_sml.rs +24 -55
  79. package/contracts/oapps/counter/integration_tests/test_with_uln.rs +314 -0
  80. package/contracts/oapps/counter/integration_tests/utils.rs +196 -53
  81. package/contracts/oapps/counter/src/counter.rs +67 -43
  82. package/contracts/oapps/counter/src/tests/mod.rs +0 -13
  83. package/contracts/oapps/counter/src/tests/test_counter.rs +5 -7
  84. package/contracts/oapps/oapp/src/errors.rs +5 -1
  85. package/contracts/oapps/oapp/src/macro_tests/test_macros.rs +93 -78
  86. package/contracts/oapps/oapp/src/oapp_core.rs +36 -21
  87. package/contracts/oapps/oapp/src/oapp_options_type3.rs +48 -12
  88. package/contracts/oapps/oapp/src/oapp_receiver.rs +106 -41
  89. package/contracts/oapps/oapp/src/oapp_sender.rs +26 -34
  90. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +9 -8
  91. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +25 -17
  92. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +7 -7
  93. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +14 -15
  94. package/contracts/oapps/oapp-macros/src/generators.rs +128 -0
  95. package/contracts/oapps/oapp-macros/src/lib.rs +113 -56
  96. package/contracts/oapps/oft/integration-tests/setup.rs +25 -7
  97. package/contracts/oapps/oft/src/errors.rs +6 -1
  98. package/contracts/oapps/oft/src/extensions/oft_fee.rs +8 -8
  99. package/contracts/oapps/oft/src/extensions/pausable.rs +4 -4
  100. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +5 -5
  101. package/contracts/oapps/oft/src/lib.rs +4 -2
  102. package/contracts/oapps/oft/src/oft.rs +24 -64
  103. package/contracts/oapps/oft/src/oft_impl.rs +201 -0
  104. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +1 -3
  105. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +1 -4
  106. package/contracts/oapps/oft/src/storage.rs +2 -0
  107. package/contracts/oapps/oft/src/tests/extensions/setup.rs +36 -22
  108. package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +5 -3
  109. package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +5 -3
  110. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +5 -3
  111. package/contracts/oapps/oft/src/tests/test_decimals.rs +2 -2
  112. package/contracts/oapps/oft/src/tests/test_oft_msg_codec.rs +1 -2
  113. package/contracts/oapps/oft/src/tests/test_utils.rs +45 -23
  114. package/contracts/oapps/oft/src/types.rs +20 -0
  115. package/contracts/oapps/oft-std/integration-tests/setup.rs +4 -2
  116. package/contracts/oapps/oft-std/src/oft.rs +24 -6
  117. package/contracts/upgrader/src/lib.rs +4 -4
  118. package/contracts/utils/src/auth.rs +44 -0
  119. package/contracts/utils/src/errors.rs +27 -5
  120. package/contracts/utils/src/lib.rs +3 -0
  121. package/contracts/utils/src/multisig.rs +211 -0
  122. package/contracts/utils/src/ownable.rs +12 -10
  123. package/contracts/utils/src/tests/buffer_reader.rs +6 -6
  124. package/contracts/utils/src/tests/buffer_writer.rs +6 -6
  125. package/contracts/utils/src/tests/bytes_ext.rs +2 -4
  126. package/contracts/utils/src/tests/mod.rs +1 -0
  127. package/contracts/utils/src/tests/multisig.rs +731 -0
  128. package/contracts/utils/src/tests/option_ext.rs +2 -5
  129. package/contracts/utils/src/tests/ownable.rs +16 -5
  130. package/contracts/utils/src/tests/ttl_configurable.rs +27 -16
  131. package/contracts/utils/src/tests/upgradeable.rs +4 -2
  132. package/contracts/utils/src/ttl_configurable.rs +23 -8
  133. package/contracts/utils/src/ttl_extendable.rs +27 -0
  134. package/contracts/utils/src/upgradeable.rs +2 -0
  135. package/contracts/workers/dvn/Cargo.toml +1 -1
  136. package/contracts/workers/dvn/src/auth.rs +7 -7
  137. package/contracts/workers/dvn/src/dvn.rs +10 -38
  138. package/contracts/workers/dvn/src/errors.rs +0 -7
  139. package/contracts/workers/dvn/src/events.rs +1 -14
  140. package/contracts/workers/dvn/src/interfaces/dvn.rs +2 -2
  141. package/contracts/workers/dvn/src/interfaces/mod.rs +0 -2
  142. package/contracts/workers/dvn/src/storage.rs +3 -13
  143. package/contracts/workers/dvn/src/tests/auth.rs +4 -4
  144. package/contracts/workers/dvn/src/tests/dvn.rs +1 -2
  145. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +7 -8
  146. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +11 -8
  147. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +11 -12
  148. package/contracts/workers/dvn/src/tests/setup.rs +5 -5
  149. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  150. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -6
  151. package/contracts/workers/executor/src/auth.rs +80 -16
  152. package/contracts/workers/executor/src/executor.rs +5 -31
  153. package/contracts/workers/executor/src/storage.rs +2 -9
  154. package/contracts/workers/executor-fee-lib/Cargo.toml +1 -1
  155. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +3 -6
  156. package/contracts/workers/executor-helper/Cargo.toml +1 -1
  157. package/contracts/workers/executor-helper/src/executor_helper.rs +53 -73
  158. package/contracts/workers/price-feed/Cargo.toml +1 -1
  159. package/contracts/workers/price-feed/src/price_feed.rs +7 -10
  160. package/contracts/workers/worker/src/errors.rs +4 -0
  161. package/contracts/workers/worker/src/tests/worker.rs +7 -6
  162. package/contracts/workers/worker/src/worker.rs +20 -16
  163. package/package.json +8 -5
  164. package/sdk/.turbo/turbo-build.log +1 -0
  165. package/sdk/.turbo/turbo-test.log +1009 -0
  166. package/sdk/dist/generated/bml.d.ts +65 -8
  167. package/sdk/dist/generated/bml.js +70 -34
  168. package/sdk/dist/generated/counter.d.ts +167 -42
  169. package/sdk/dist/generated/counter.js +86 -45
  170. package/sdk/dist/generated/dvn.d.ts +282 -229
  171. package/sdk/dist/generated/dvn.js +119 -81
  172. package/sdk/dist/generated/dvn_fee_lib.d.ts +142 -67
  173. package/sdk/dist/generated/dvn_fee_lib.js +64 -24
  174. package/sdk/dist/generated/endpoint.d.ts +97 -22
  175. package/sdk/dist/generated/endpoint.js +75 -37
  176. package/sdk/dist/generated/executor.d.ts +117 -85
  177. package/sdk/dist/generated/executor.js +102 -59
  178. package/sdk/dist/generated/executor_fee_lib.d.ts +162 -78
  179. package/sdk/dist/generated/executor_fee_lib.js +104 -57
  180. package/sdk/dist/generated/executor_helper.d.ts +133 -21
  181. package/sdk/dist/generated/executor_helper.js +99 -50
  182. package/sdk/dist/generated/oft_std.d.ts +233 -55
  183. package/sdk/dist/generated/oft_std.js +99 -54
  184. package/sdk/dist/generated/price_feed.d.ts +142 -67
  185. package/sdk/dist/generated/price_feed.js +64 -24
  186. package/sdk/dist/generated/sml.d.ts +113 -32
  187. package/sdk/dist/generated/sml.js +93 -49
  188. package/sdk/dist/generated/treasury.d.ts +896 -0
  189. package/sdk/dist/generated/treasury.js +219 -0
  190. package/sdk/dist/generated/uln302.d.ts +113 -32
  191. package/sdk/dist/generated/uln302.js +93 -49
  192. package/sdk/dist/generated/upgrader.d.ts +2 -2
  193. package/sdk/dist/generated/upgrader.js +1 -1
  194. package/sdk/dist/index.d.ts +2 -0
  195. package/sdk/dist/index.js +3 -0
  196. package/sdk/dist/wasm/blocked-message-lib.d.ts +1 -0
  197. package/sdk/dist/wasm/blocked-message-lib.js +2 -0
  198. package/sdk/dist/wasm/counter.d.ts +1 -0
  199. package/sdk/dist/wasm/counter.js +2 -0
  200. package/sdk/dist/wasm/dvn-fee-lib.d.ts +1 -0
  201. package/sdk/dist/wasm/dvn-fee-lib.js +2 -0
  202. package/sdk/dist/wasm/dvn.d.ts +1 -0
  203. package/sdk/dist/wasm/dvn.js +2 -0
  204. package/sdk/dist/wasm/endpoint-v2.d.ts +1 -0
  205. package/sdk/dist/wasm/endpoint-v2.js +2 -0
  206. package/sdk/dist/wasm/executor-fee-lib.d.ts +1 -0
  207. package/sdk/dist/wasm/executor-fee-lib.js +2 -0
  208. package/sdk/dist/wasm/executor-helper.d.ts +1 -0
  209. package/sdk/dist/wasm/executor-helper.js +2 -0
  210. package/sdk/dist/wasm/executor.d.ts +1 -0
  211. package/sdk/dist/wasm/executor.js +2 -0
  212. package/sdk/dist/wasm/layerzero-views.d.ts +1 -0
  213. package/sdk/dist/wasm/layerzero-views.js +2 -0
  214. package/sdk/dist/wasm/oft-std.d.ts +1 -0
  215. package/sdk/dist/wasm/oft-std.js +2 -0
  216. package/sdk/dist/wasm/price-feed.d.ts +1 -0
  217. package/sdk/dist/wasm/price-feed.js +2 -0
  218. package/sdk/dist/wasm/simple-message-lib.d.ts +1 -0
  219. package/sdk/dist/wasm/simple-message-lib.js +2 -0
  220. package/sdk/dist/wasm/treasury.d.ts +1 -0
  221. package/sdk/dist/wasm/treasury.js +2 -0
  222. package/sdk/dist/wasm/uln302.d.ts +1 -0
  223. package/sdk/dist/wasm/uln302.js +2 -0
  224. package/sdk/dist/wasm/upgrader.d.ts +1 -0
  225. package/sdk/dist/wasm/upgrader.js +2 -0
  226. package/sdk/dist/wasm.d.ts +15 -0
  227. package/sdk/dist/wasm.js +15 -0
  228. package/sdk/package.json +4 -2
  229. package/sdk/src/index.ts +4 -0
  230. package/sdk/test/counter-sml.test.ts +376 -0
  231. package/sdk/test/counter-uln.test.ts +493 -0
  232. package/sdk/test/{oft.test.ts → oft-sml.test.ts} +185 -310
  233. package/sdk/test/suites/constants.ts +22 -2
  234. package/sdk/test/suites/globalSetup.ts +450 -0
  235. package/sdk/test/suites/localnet.ts +23 -6
  236. package/sdk/test/upgrader.test.ts +7 -16
  237. package/sdk/test/utils.ts +558 -85
  238. package/sdk/vitest.config.ts +21 -0
  239. package/tools/ts-bindings-gen/src/main.rs +1 -0
  240. package/turbo.json +2 -0
  241. package/contracts/common-macros/src/contract_impl.rs +0 -52
  242. package/contracts/common-macros/src/ownable.rs +0 -41
  243. package/contracts/common-macros/src/tests/contract_impl.rs +0 -386
  244. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__ownable__snapshot_generated_ownable_code.snap +0 -12
  245. package/contracts/macro-integration-tests/tests/runtime/ttl_configurable/extend_instance_ttl.rs +0 -50
  246. package/contracts/oapps/oapp-macros/src/oapp_core.rs +0 -41
  247. package/contracts/oapps/oapp-macros/src/oapp_full.rs +0 -21
  248. package/contracts/oapps/oapp-macros/src/oapp_options_type3.rs +0 -31
  249. package/contracts/oapps/oapp-macros/src/oapp_receiver.rs +0 -48
  250. package/contracts/oapps/oapp-macros/src/oapp_sender.rs +0 -21
  251. package/contracts/oapps/oapp-macros/src/util.rs +0 -107
  252. package/contracts/oapps/oft/src/constants.rs +0 -5
  253. package/contracts/oapps/oft/src/default_oft_impl.rs +0 -152
  254. package/contracts/workers/dvn/src/interfaces/multisig.rs +0 -56
  255. package/contracts/workers/dvn/src/multisig.rs +0 -157
  256. package/sdk/test/index.test.ts +0 -375
  257. /package/sdk/test/suites/{testUpgradeable.ts → dummyContractClient.ts} +0 -0
@@ -1,5 +1,5 @@
1
- use common_macros::{contract_impl, only_owner, ownable, ttl_configurable, upgradeable};
2
- use soroban_sdk::{assert_with_error, contract, panic_with_error, Address, Env, Vec};
1
+ use common_macros::{contract_impl, lz_contract, only_auth};
2
+ use soroban_sdk::{assert_with_error, panic_with_error, Address, Env, Vec};
3
3
  use utils::upgradeable::UpgradeableInternal;
4
4
  use worker::{FeeEstimate, ILayerZeroPriceFeed, Price};
5
5
 
@@ -10,10 +10,7 @@ use crate::{
10
10
  types::{ArbitrumPriceExt, ModelType, SetEidToModelTypeParam, UpdatePrice, UpdatePriceExt},
11
11
  };
12
12
 
13
- #[contract]
14
- #[ownable]
15
- #[ttl_configurable]
16
- #[upgradeable]
13
+ #[lz_contract(upgradeable)]
17
14
  pub struct LzPriceFeed;
18
15
 
19
16
  #[contract_impl]
@@ -79,7 +76,7 @@ impl LzPriceFeed {
79
76
  // ========================================================================
80
77
 
81
78
  /// Set price updater status (owner only)
82
- #[only_owner]
79
+ #[only_auth]
83
80
  pub fn set_price_updater(env: &Env, updater: &Address, active: bool) {
84
81
  if active {
85
82
  PriceFeedStorage::set_price_updater(env, updater, &true);
@@ -90,20 +87,20 @@ impl LzPriceFeed {
90
87
  }
91
88
 
92
89
  /// Set the price ratio denominator (owner only)
93
- #[only_owner]
90
+ #[only_auth]
94
91
  pub fn set_price_ratio_denominator(env: &Env, denominator: u128) {
95
92
  assert_with_error!(env, denominator > 0, PriceFeedError::InvalidDenominator);
96
93
  PriceFeedStorage::set_price_ratio_denominator(env, &denominator);
97
94
  }
98
95
 
99
96
  /// Set the Arbitrum compression percentage (owner only)
100
- #[only_owner]
97
+ #[only_auth]
101
98
  pub fn set_arbitrum_compression_percent(env: &Env, compression_percent: u128) {
102
99
  PriceFeedStorage::set_arbitrum_compression_percent(env, &compression_percent);
103
100
  }
104
101
 
105
102
  /// Set the fee model type for destination EIDs (owner only)
106
- #[only_owner]
103
+ #[only_auth]
107
104
  pub fn set_eid_to_model_type(env: &Env, params: &Vec<SetEidToModelTypeParam>) {
108
105
  for param in params.iter() {
109
106
  PriceFeedStorage::set_eid_to_model_type(env, param.dst_eid, &param.model_type);
@@ -1,5 +1,9 @@
1
1
  use common_macros::contract_error;
2
2
 
3
+ // Worker library error codes: 1200-1299
4
+ // See ERROR_SPEC.md for allocation rules
5
+
6
+ /// WorkerError: 1200-1299
3
7
  #[contract_error]
4
8
  pub enum WorkerError {
5
9
  AdminAlreadyExists = 1200,
@@ -1,11 +1,12 @@
1
1
  use super::setup::{bare_worker, TestSetup, WorkerTester};
2
- use crate::events::{
3
- Paused, SetAdmin, SetAllowlist, SetDefaultMultiplierBps, SetDenylist, SetDepositAddress, SetPriceFeed,
4
- SetSupportedMessageLib, SetSupportedOptionTypes, SetWorkerFeeLib, Unpaused,
2
+ use crate::{
3
+ events::{
4
+ Paused, SetAdmin, SetAllowlist, SetDefaultMultiplierBps, SetDenylist, SetDepositAddress, SetPriceFeed,
5
+ SetSupportedMessageLib, SetSupportedOptionTypes, SetWorkerFeeLib, Unpaused,
6
+ },
7
+ init_worker,
5
8
  };
6
- use crate::init_worker;
7
- use soroban_sdk::testutils::Address as _;
8
- use soroban_sdk::{vec, Address, Bytes, Env, IntoVal};
9
+ use soroban_sdk::{testutils::Address as _, vec, Address, Bytes, Env, IntoVal};
9
10
  use utils::testing_utils::assert_event;
10
11
 
11
12
  // pause
@@ -1,9 +1,3 @@
1
- use soroban_sdk::{assert_with_error, contracttrait, panic_with_error, Address, Bytes, Env, Vec};
2
- use utils::{
3
- option_ext::OptionExt,
4
- ownable::{enforce_owner_auth, require_owner_auth, Ownable},
5
- };
6
-
7
1
  use crate::{
8
2
  errors::WorkerError,
9
3
  events::{
@@ -12,10 +6,20 @@ use crate::{
12
6
  },
13
7
  storage::WorkerStorage,
14
8
  };
9
+ use common_macros::contract_trait;
10
+ use soroban_sdk::{assert_with_error, panic_with_error, Address, Bytes, Env, Vec};
11
+ use utils::{
12
+ auth::{enforce_auth, require_auth, Auth},
13
+ option_ext::OptionExt,
14
+ };
15
15
 
16
16
  /// Worker interface providing common functionality for LayerZero workers.
17
- #[contracttrait]
18
- pub trait Worker: Ownable {
17
+ ///
18
+ /// Requires the `Auth` trait to be implemented, which can be provided by either:
19
+ /// - `#[ownable]` macro for single-owner contracts (e.g., Executor)
20
+ /// - `Multisig` trait for multisig-controlled contracts (e.g., DVN)
21
+ #[contract_trait]
22
+ pub trait Worker: Auth {
19
23
  // ========================================================================
20
24
  // Manager Functions
21
25
  // ========================================================================
@@ -28,14 +32,14 @@ pub trait Worker: Ownable {
28
32
  /// # Arguments
29
33
  /// * `paused` - `true` to pause, `false` to unpause
30
34
  fn set_paused(env: &Env, paused: bool) {
31
- let owner = enforce_owner_auth::<Self>(env);
35
+ let authorizer = enforce_auth::<Self>(env);
32
36
  assert_with_error!(env, Self::paused(env) != paused, WorkerError::PauseStatusUnchanged);
33
37
 
34
38
  WorkerStorage::set_paused(env, &paused);
35
39
  if paused {
36
- Paused { pauser: owner }.publish(env);
40
+ Paused { pauser: authorizer }.publish(env);
37
41
  } else {
38
- Unpaused { unpauser: owner }.publish(env);
42
+ Unpaused { unpauser: authorizer }.publish(env);
39
43
  }
40
44
  }
41
45
 
@@ -48,7 +52,7 @@ pub trait Worker: Ownable {
48
52
  /// * `message_lib` - The message library contract address
49
53
  /// * `supported` - `true` to add support, `false` to remove support
50
54
  fn set_supported_message_lib(env: &Env, message_lib: &Address, supported: bool) {
51
- require_owner_auth::<Self>(env);
55
+ require_auth::<Self>(env);
52
56
  set_message_lib_no_auth::<Self>(env, message_lib, supported);
53
57
  }
54
58
 
@@ -62,7 +66,7 @@ pub trait Worker: Ownable {
62
66
  /// * `oapp` - The OApp contract address
63
67
  /// * `allowed` - `true` to add to allowlist, `false` to remove
64
68
  fn set_allowlist(env: &Env, oapp: &Address, allowed: bool) {
65
- require_owner_auth::<Self>(env);
69
+ require_auth::<Self>(env);
66
70
 
67
71
  let is_on_list = Self::is_on_allowlist(env, oapp);
68
72
  if allowed {
@@ -92,7 +96,7 @@ pub trait Worker: Ownable {
92
96
  /// * `oapp` - The OApp contract address
93
97
  /// * `denied` - `true` to add to denylist, `false` to remove
94
98
  fn set_denylist(env: &Env, oapp: &Address, denied: bool) {
95
- require_owner_auth::<Self>(env);
99
+ require_auth::<Self>(env);
96
100
  let is_on_list = Self::is_on_denylist(env, oapp);
97
101
 
98
102
  if denied {
@@ -369,13 +373,13 @@ pub fn assert_supported_message_lib<T: Worker>(env: &Env, message_lib: &Address)
369
373
  // Admin Setter Functions with authentication
370
374
  // ============================================================================================
371
375
 
372
- /// Sets admin status for an address by owner.
376
+ /// Sets admin status for an address by authorizer (owner/multisig).
373
377
  ///
374
378
  /// # Arguments
375
379
  /// * `admin` - The address to set admin status for
376
380
  /// * `active` - `true` to add admin, `false` to remove
377
381
  pub fn set_admin_by_owner<T: Worker>(env: &Env, admin: &Address, active: bool) {
378
- require_owner_auth::<T>(env);
382
+ require_auth::<T>(env);
379
383
  set_admin_no_auth::<T>(env, admin, active);
380
384
  }
381
385
 
package/package.json CHANGED
@@ -1,21 +1,24 @@
1
1
  {
2
2
  "name": "@layerzerolabs/protocol-stellar-v2",
3
- "version": "0.2.15",
3
+ "version": "0.2.18",
4
4
  "private": false,
5
5
  "devDependencies": {
6
6
  "@types/node": "^22.18.6",
7
7
  "tsx": "^4.19.3",
8
8
  "typescript": "^5.8.2",
9
- "@layerzerolabs/common-node-utils": "0.2.15",
10
- "@layerzerolabs/vm-tooling-stellar": "0.2.15"
9
+ "@layerzerolabs/common-node-utils": "0.2.18",
10
+ "@layerzerolabs/vm-tooling-stellar": "0.2.18"
11
11
  },
12
12
  "publishConfig": {
13
13
  "access": "restricted",
14
14
  "registry": "https://registry.npmjs.org/"
15
15
  },
16
16
  "scripts": {
17
- "build": "pnpm build:contracts && pnpm generate:sdk",
18
- "build:contracts": "pnpm exec lz-tool stellar contract build",
17
+ "build": "pnpm build:contracts:sandbox && pnpm generate:sdk && pnpm build:wasm",
18
+ "build:contracts:mainnet": "pnpm exec lz-tool stellar contract build --features mainnet",
19
+ "build:contracts:sandbox": "pnpm exec lz-tool stellar contract build --features sandbox",
20
+ "build:contracts:testnet": "pnpm exec lz-tool stellar contract build --features testnet",
21
+ "build:wasm": "lz-tool extra stellar build-typescript-sdk target sdk/src",
19
22
  "format": "pnpm exec lz-tool --script \"cargo fmt\" stellar",
20
23
  "generate:sdk": "pnpm exec lz-tool --script \"cargo run -p ts-bindings-gen\" stellar",
21
24
  "lint": "pnpm exec lz-tool --script \"cargo clippy -- -D warnings\" stellar",
@@ -1,3 +1,4 @@
1
+  WARN  Issue while reading "/home/runner/work/monorepo-internal/monorepo-internal/.npmrc". Failed to replace env in config: ${NPM_TOKEN}
1
2
 
2
3
  > @layerzerolabs/lz-v2-stellar-sdk@0.0.1 build /home/runner/work/monorepo-internal/monorepo-internal/contracts/protocol/stellar/sdk
3
4
  > tsc