@layerzerolabs/protocol-stellar-v2 0.2.18 → 0.2.20
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.
- package/.turbo/turbo-build.log +303 -253
- package/.turbo/turbo-lint.log +66 -65
- package/.turbo/turbo-test.log +1312 -1282
- package/Cargo.lock +21 -8
- package/Cargo.toml +2 -0
- package/contracts/ERROR_SPEC.md +9 -2
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +4 -4
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
- package/contracts/common-macros/src/upgradeable.rs +15 -21
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
- package/contracts/oapps/counter/Cargo.toml +1 -0
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -56
- package/contracts/oapps/oft/Cargo.toml +10 -7
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
- package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
- package/contracts/oapps/oft/integration-tests/setup.rs +28 -127
- package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
- package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
- package/contracts/oapps/oft/src/lib.rs +10 -14
- package/contracts/oapps/oft/src/oft.rs +143 -193
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -14
- package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
- package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +126 -29
- package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
- package/contracts/oapps/oft-core/src/lib.rs +18 -0
- package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
- package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
- package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
- package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -4
- package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
- package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +46 -27
- package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +8 -2
- package/contracts/utils/src/ownable.rs +125 -3
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +445 -7
- package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +3 -3
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +1 -0
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +16 -31
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
- package/contracts/workers/executor/Cargo.toml +1 -0
- package/contracts/workers/executor/src/executor.rs +15 -26
- package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +2 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +3 -0
- package/contracts/workers/price-feed/src/price_feed.rs +6 -12
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +0 -3
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +1 -7
- package/contracts/workers/worker/src/tests/worker.rs +50 -42
- package/contracts/workers/worker/src/worker.rs +49 -58
- package/package.json +4 -5
- package/sdk/.turbo/turbo-test.log +229 -217
- package/sdk/dist/generated/bml.d.ts +39 -1
- package/sdk/dist/generated/bml.js +33 -8
- package/sdk/dist/generated/counter.d.ts +131 -3
- package/sdk/dist/generated/counter.js +41 -10
- package/sdk/dist/generated/dvn.d.ts +431 -362
- package/sdk/dist/generated/dvn.js +80 -55
- package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
- package/sdk/dist/generated/dvn_fee_lib.js +55 -57
- package/sdk/dist/generated/endpoint.d.ts +131 -3
- package/sdk/dist/generated/endpoint.js +41 -10
- package/sdk/dist/generated/executor.d.ts +503 -339
- package/sdk/dist/generated/executor.js +80 -48
- package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
- package/sdk/dist/generated/executor_fee_lib.js +54 -56
- package/sdk/dist/generated/executor_helper.d.ts +53 -187
- package/sdk/dist/generated/executor_helper.js +47 -29
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +1851 -0
- package/sdk/dist/generated/oft.js +347 -0
- package/sdk/dist/generated/price_feed.d.ts +329 -253
- package/sdk/dist/generated/price_feed.js +55 -57
- package/sdk/dist/generated/sml.d.ts +131 -3
- package/sdk/dist/generated/sml.js +41 -10
- package/sdk/dist/generated/treasury.d.ts +131 -3
- package/sdk/dist/generated/treasury.js +41 -10
- package/sdk/dist/generated/uln302.d.ts +131 -3
- package/sdk/dist/generated/uln302.js +43 -12
- package/sdk/dist/generated/upgrader.d.ts +201 -15
- package/sdk/dist/generated/upgrader.js +99 -1
- package/sdk/dist/index.d.ts +2 -2
- package/sdk/dist/index.js +3 -3
- package/sdk/package.json +3 -2
- package/sdk/src/index.ts +3 -3
- package/sdk/test/oft-sml.test.ts +20 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/sdk/turbo.json +8 -0
- package/tools/ts-bindings-gen/Cargo.toml +2 -0
- package/tools/ts-bindings-gen/src/main.rs +53 -5
- package/turbo.json +0 -2
- package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
- package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oft/src/oft_impl.rs +0 -201
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
- package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
- package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
- package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
- package/contracts/oapps/oft-std/src/lib.rs +0 -16
- package/contracts/oapps/oft-std/src/oft.rs +0 -174
- package/sdk/dist/generated/oft_std.d.ts +0 -1722
- package/sdk/dist/generated/oft_std.js +0 -316
- package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/blocked-message-lib.js +0 -2
- package/sdk/dist/wasm/counter.d.ts +0 -1
- package/sdk/dist/wasm/counter.js +0 -2
- package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
- package/sdk/dist/wasm/dvn.d.ts +0 -1
- package/sdk/dist/wasm/dvn.js +0 -2
- package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
- package/sdk/dist/wasm/endpoint-v2.js +0 -2
- package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/executor-fee-lib.js +0 -2
- package/sdk/dist/wasm/executor-helper.d.ts +0 -1
- package/sdk/dist/wasm/executor-helper.js +0 -2
- package/sdk/dist/wasm/executor.d.ts +0 -1
- package/sdk/dist/wasm/executor.js +0 -2
- package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
- package/sdk/dist/wasm/layerzero-views.js +0 -2
- package/sdk/dist/wasm/oft-std.d.ts +0 -1
- package/sdk/dist/wasm/oft-std.js +0 -2
- package/sdk/dist/wasm/price-feed.d.ts +0 -1
- package/sdk/dist/wasm/price-feed.js +0 -2
- package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/simple-message-lib.js +0 -2
- package/sdk/dist/wasm/treasury.d.ts +0 -1
- package/sdk/dist/wasm/treasury.js +0 -2
- package/sdk/dist/wasm/uln302.d.ts +0 -1
- package/sdk/dist/wasm/uln302.js +0 -2
- package/sdk/dist/wasm/upgrader.d.ts +0 -1
- package/sdk/dist/wasm/upgrader.js +0 -2
- package/sdk/dist/wasm.d.ts +0 -15
- package/sdk/dist/wasm.js +0 -15
- /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/errors.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
|
@@ -8,10 +8,7 @@ use crate::{
|
|
|
8
8
|
};
|
|
9
9
|
use common_macros::contract_trait;
|
|
10
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
|
-
};
|
|
11
|
+
use utils::auth::{self, Auth};
|
|
15
12
|
|
|
16
13
|
/// Worker interface providing common functionality for LayerZero workers.
|
|
17
14
|
///
|
|
@@ -32,7 +29,7 @@ pub trait Worker: Auth {
|
|
|
32
29
|
/// # Arguments
|
|
33
30
|
/// * `paused` - `true` to pause, `false` to unpause
|
|
34
31
|
fn set_paused(env: &Env, paused: bool) {
|
|
35
|
-
let authorizer = enforce_auth::<Self>(env);
|
|
32
|
+
let authorizer = auth::enforce_auth::<Self>(env);
|
|
36
33
|
assert_with_error!(env, Self::paused(env) != paused, WorkerError::PauseStatusUnchanged);
|
|
37
34
|
|
|
38
35
|
WorkerStorage::set_paused(env, &paused);
|
|
@@ -43,6 +40,19 @@ pub trait Worker: Auth {
|
|
|
43
40
|
}
|
|
44
41
|
}
|
|
45
42
|
|
|
43
|
+
/// Sets admin status for an address.
|
|
44
|
+
///
|
|
45
|
+
/// Admins can configure worker settings like fee multipliers, deposit addresses,
|
|
46
|
+
/// and supported option types.
|
|
47
|
+
///
|
|
48
|
+
/// # Arguments
|
|
49
|
+
/// * `admin` - The address to set admin status for
|
|
50
|
+
/// * `active` - `true` to add admin, `false` to remove
|
|
51
|
+
fn set_admin(env: &Env, admin: &Address, active: bool) {
|
|
52
|
+
auth::require_auth::<Self>(env);
|
|
53
|
+
set_admin_no_auth::<Self>(env, admin, active);
|
|
54
|
+
}
|
|
55
|
+
|
|
46
56
|
/// Sets whether a message library is supported by this worker.
|
|
47
57
|
///
|
|
48
58
|
/// Message libraries (e.g., ULN302) call workers to assign jobs. Only supported
|
|
@@ -52,7 +62,7 @@ pub trait Worker: Auth {
|
|
|
52
62
|
/// * `message_lib` - The message library contract address
|
|
53
63
|
/// * `supported` - `true` to add support, `false` to remove support
|
|
54
64
|
fn set_supported_message_lib(env: &Env, message_lib: &Address, supported: bool) {
|
|
55
|
-
require_auth::<Self>(env);
|
|
65
|
+
auth::require_auth::<Self>(env);
|
|
56
66
|
set_message_lib_no_auth::<Self>(env, message_lib, supported);
|
|
57
67
|
}
|
|
58
68
|
|
|
@@ -66,7 +76,7 @@ pub trait Worker: Auth {
|
|
|
66
76
|
/// * `oapp` - The OApp contract address
|
|
67
77
|
/// * `allowed` - `true` to add to allowlist, `false` to remove
|
|
68
78
|
fn set_allowlist(env: &Env, oapp: &Address, allowed: bool) {
|
|
69
|
-
require_auth::<Self>(env);
|
|
79
|
+
auth::require_auth::<Self>(env);
|
|
70
80
|
|
|
71
81
|
let is_on_list = Self::is_on_allowlist(env, oapp);
|
|
72
82
|
if allowed {
|
|
@@ -96,7 +106,7 @@ pub trait Worker: Auth {
|
|
|
96
106
|
/// * `oapp` - The OApp contract address
|
|
97
107
|
/// * `denied` - `true` to add to denylist, `false` to remove
|
|
98
108
|
fn set_denylist(env: &Env, oapp: &Address, denied: bool) {
|
|
99
|
-
require_auth::<Self>(env);
|
|
109
|
+
auth::require_auth::<Self>(env);
|
|
100
110
|
let is_on_list = Self::is_on_denylist(env, oapp);
|
|
101
111
|
|
|
102
112
|
if denied {
|
|
@@ -146,11 +156,11 @@ pub trait Worker: Auth {
|
|
|
146
156
|
/// # Arguments
|
|
147
157
|
/// * `admin` - Admin address (must provide authorization)
|
|
148
158
|
/// * `eid` - Destination endpoint ID (chain identifier)
|
|
149
|
-
/// * `option_types` -
|
|
150
|
-
fn set_supported_option_types(env: &Env, admin: &Address, eid: u32, option_types: Bytes) {
|
|
159
|
+
/// * `option_types` - Supported option types. Each byte represents an option type.
|
|
160
|
+
fn set_supported_option_types(env: &Env, admin: &Address, eid: u32, option_types: &Bytes) {
|
|
151
161
|
require_admin_auth::<Self>(env, admin);
|
|
152
|
-
WorkerStorage::set_supported_option_types(env, eid,
|
|
153
|
-
SetSupportedOptionTypes { dst_eid: eid, option_types }.publish(env);
|
|
162
|
+
WorkerStorage::set_supported_option_types(env, eid, option_types);
|
|
163
|
+
SetSupportedOptionTypes { dst_eid: eid, option_types: option_types.clone() }.publish(env);
|
|
154
164
|
}
|
|
155
165
|
|
|
156
166
|
/// Sets the worker fee library contract address.
|
|
@@ -184,6 +194,11 @@ pub trait Worker: Auth {
|
|
|
184
194
|
// View Functions
|
|
185
195
|
// ========================================================================
|
|
186
196
|
|
|
197
|
+
/// Returns whether the worker is paused.
|
|
198
|
+
fn paused(env: &Env) -> bool {
|
|
199
|
+
WorkerStorage::paused(env)
|
|
200
|
+
}
|
|
201
|
+
|
|
187
202
|
/// Returns whether an address is an admin.
|
|
188
203
|
///
|
|
189
204
|
/// # Arguments
|
|
@@ -194,12 +209,7 @@ pub trait Worker: Auth {
|
|
|
194
209
|
|
|
195
210
|
/// Returns all admin addresses.
|
|
196
211
|
fn admins(env: &Env) -> Vec<Address> {
|
|
197
|
-
WorkerStorage::admins(env)
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/// Returns whether the worker is paused.
|
|
201
|
-
fn paused(env: &Env) -> bool {
|
|
202
|
-
WorkerStorage::paused(env)
|
|
212
|
+
WorkerStorage::admins(env)
|
|
203
213
|
}
|
|
204
214
|
|
|
205
215
|
/// Returns whether a message library is supported.
|
|
@@ -215,7 +225,7 @@ pub trait Worker: Auth {
|
|
|
215
225
|
/// # Returns
|
|
216
226
|
/// Vector of supported message library contract addresses.
|
|
217
227
|
fn message_libs(env: &Env) -> Vec<Address> {
|
|
218
|
-
WorkerStorage::message_libs(env)
|
|
228
|
+
WorkerStorage::message_libs(env)
|
|
219
229
|
}
|
|
220
230
|
|
|
221
231
|
/// Returns whether an OApp is on the allowlist.
|
|
@@ -226,6 +236,11 @@ pub trait Worker: Auth {
|
|
|
226
236
|
WorkerStorage::has_allowlist(env, oapp)
|
|
227
237
|
}
|
|
228
238
|
|
|
239
|
+
/// Returns the number of addresses on the allowlist.
|
|
240
|
+
fn allowlist_size(env: &Env) -> u32 {
|
|
241
|
+
WorkerStorage::allowlist_size(env)
|
|
242
|
+
}
|
|
243
|
+
|
|
229
244
|
/// Returns whether an OApp is on the denylist.
|
|
230
245
|
///
|
|
231
246
|
/// # Arguments
|
|
@@ -242,29 +257,19 @@ pub trait Worker: Auth {
|
|
|
242
257
|
/// 3. Otherwise → denied
|
|
243
258
|
///
|
|
244
259
|
/// # Arguments
|
|
245
|
-
/// * `
|
|
246
|
-
fn has_acl(env: &Env,
|
|
247
|
-
!Self::is_on_denylist(env,
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/// Returns the number of addresses on the allowlist.
|
|
251
|
-
fn allowlist_size(env: &Env) -> u32 {
|
|
252
|
-
WorkerStorage::allowlist_size(env)
|
|
260
|
+
/// * `oapp` - OApp contract address to check
|
|
261
|
+
fn has_acl(env: &Env, oapp: &Address) -> bool {
|
|
262
|
+
!Self::is_on_denylist(env, oapp) && (Self::allowlist_size(env) == 0 || Self::is_on_allowlist(env, oapp))
|
|
253
263
|
}
|
|
254
264
|
|
|
255
265
|
/// Returns the default fee multiplier in basis points.
|
|
256
266
|
fn default_multiplier_bps(env: &Env) -> u32 {
|
|
257
|
-
WorkerStorage::default_multiplier_bps(env)
|
|
267
|
+
WorkerStorage::default_multiplier_bps(env)
|
|
258
268
|
}
|
|
259
269
|
|
|
260
270
|
/// Returns the deposit address where fees are collected.
|
|
261
|
-
fn deposit_address(env: &Env) -> Address {
|
|
262
|
-
WorkerStorage::deposit_address(env)
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/// Returns the price feed contract address.
|
|
266
|
-
fn price_feed(env: &Env) -> Address {
|
|
267
|
-
WorkerStorage::price_feed(env).unwrap_or_panic(env, WorkerError::PriceFeedNotSet)
|
|
271
|
+
fn deposit_address(env: &Env) -> Option<Address> {
|
|
272
|
+
WorkerStorage::deposit_address(env)
|
|
268
273
|
}
|
|
269
274
|
|
|
270
275
|
/// Returns supported option types for a destination endpoint.
|
|
@@ -276,8 +281,13 @@ pub trait Worker: Auth {
|
|
|
276
281
|
}
|
|
277
282
|
|
|
278
283
|
/// Returns the worker fee library contract address.
|
|
279
|
-
fn worker_fee_lib(env: &Env) -> Address {
|
|
280
|
-
WorkerStorage::worker_fee_lib(env)
|
|
284
|
+
fn worker_fee_lib(env: &Env) -> Option<Address> {
|
|
285
|
+
WorkerStorage::worker_fee_lib(env)
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/// Returns the price feed contract address.
|
|
289
|
+
fn price_feed(env: &Env) -> Option<Address> {
|
|
290
|
+
WorkerStorage::price_feed(env)
|
|
281
291
|
}
|
|
282
292
|
}
|
|
283
293
|
|
|
@@ -305,16 +315,8 @@ pub fn init_worker<T: Worker>(
|
|
|
305
315
|
worker_fee_lib: &Address,
|
|
306
316
|
deposit_address: &Address,
|
|
307
317
|
) {
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
for admin in admins {
|
|
312
|
-
set_admin_no_auth::<T>(env, &admin, true);
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
for lib in message_libs {
|
|
316
|
-
set_message_lib_no_auth::<T>(env, &lib, true);
|
|
317
|
-
}
|
|
318
|
+
admins.iter().for_each(|admin| set_admin_no_auth::<T>(env, &admin, true));
|
|
319
|
+
message_libs.iter().for_each(|lib| set_message_lib_no_auth::<T>(env, &lib, true));
|
|
318
320
|
|
|
319
321
|
set_price_feed_no_auth(env, price_feed);
|
|
320
322
|
set_default_multiplier_bps_no_auth(env, default_multiplier_bps);
|
|
@@ -373,16 +375,6 @@ pub fn assert_supported_message_lib<T: Worker>(env: &Env, message_lib: &Address)
|
|
|
373
375
|
// Admin Setter Functions with authentication
|
|
374
376
|
// ============================================================================================
|
|
375
377
|
|
|
376
|
-
/// Sets admin status for an address by authorizer (owner/multisig).
|
|
377
|
-
///
|
|
378
|
-
/// # Arguments
|
|
379
|
-
/// * `admin` - The address to set admin status for
|
|
380
|
-
/// * `active` - `true` to add admin, `false` to remove
|
|
381
|
-
pub fn set_admin_by_owner<T: Worker>(env: &Env, admin: &Address, active: bool) {
|
|
382
|
-
require_auth::<T>(env);
|
|
383
|
-
set_admin_no_auth::<T>(env, admin, active);
|
|
384
|
-
}
|
|
385
|
-
|
|
386
378
|
/// Sets admin status for an address by admin.
|
|
387
379
|
///
|
|
388
380
|
/// # Arguments
|
|
@@ -414,7 +406,6 @@ fn set_admin_no_auth<T: Worker>(env: &Env, admin: &Address, active: bool) {
|
|
|
414
406
|
admins.push_back(admin.clone());
|
|
415
407
|
} else {
|
|
416
408
|
// Remove admin - ensure present
|
|
417
|
-
assert_with_error!(env, admins.len() > 1, WorkerError::AttemptingToRemoveOnlyAdmin);
|
|
418
409
|
let Some(index) = admins.first_index_of(admin) else {
|
|
419
410
|
panic_with_error!(env, WorkerError::AdminNotFound);
|
|
420
411
|
};
|
package/package.json
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/protocol-stellar-v2",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.20",
|
|
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.
|
|
10
|
-
"@layerzerolabs/vm-tooling-stellar": "0.2.
|
|
9
|
+
"@layerzerolabs/common-node-utils": "0.2.20",
|
|
10
|
+
"@layerzerolabs/vm-tooling-stellar": "0.2.20"
|
|
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:sandbox && pnpm generate:sdk
|
|
17
|
+
"build": "pnpm build:contracts:sandbox && pnpm generate:sdk",
|
|
18
18
|
"build:contracts:mainnet": "pnpm exec lz-tool stellar contract build --features mainnet",
|
|
19
19
|
"build:contracts:sandbox": "pnpm exec lz-tool stellar contract build --features sandbox",
|
|
20
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",
|
|
22
21
|
"format": "pnpm exec lz-tool --script \"cargo fmt\" stellar",
|
|
23
22
|
"generate:sdk": "pnpm exec lz-tool --script \"cargo run -p ts-bindings-gen\" stellar",
|
|
24
23
|
"lint": "pnpm exec lz-tool --script \"cargo clippy -- -D warnings\" stellar",
|