@layerzerolabs/protocol-stellar-v2 0.2.11 → 0.2.13

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 (74) hide show
  1. package/.turbo/turbo-build.log +202 -194
  2. package/.turbo/turbo-lint.log +38 -38
  3. package/.turbo/turbo-test.log +891 -891
  4. package/Cargo.lock +1 -1
  5. package/contracts/common-macros/src/lib.rs +3 -36
  6. package/contracts/endpoint-v2/src/endpoint_v2.rs +4 -4
  7. package/contracts/endpoint-v2/src/events.rs +40 -22
  8. package/contracts/endpoint-v2/src/interfaces/message_lib.rs +2 -2
  9. package/contracts/endpoint-v2/src/interfaces/message_lib_manager.rs +2 -2
  10. package/contracts/endpoint-v2/src/interfaces/messaging_channel.rs +2 -2
  11. package/contracts/endpoint-v2/src/interfaces/messaging_composer.rs +2 -2
  12. package/contracts/endpoint-v2/src/interfaces/send_lib.rs +2 -2
  13. package/contracts/endpoint-v2/src/message_lib_manager.rs +3 -3
  14. package/contracts/endpoint-v2/src/messaging_channel.rs +1 -1
  15. package/contracts/endpoint-v2/src/messaging_composer.rs +1 -1
  16. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_lib_timeout.rs +4 -8
  17. package/contracts/endpoint-v2/src/tests/message_lib_manager/set_default_receive_library.rs +3 -7
  18. package/contracts/message-libs/{block-message-lib → blocked-message-lib}/Cargo.toml +1 -1
  19. package/contracts/message-libs/treasury/src/events.rs +9 -6
  20. package/contracts/message-libs/uln-302/src/events.rs +19 -11
  21. package/contracts/message-libs/uln-302/src/interfaces/receive_uln.rs +2 -2
  22. package/contracts/message-libs/uln-302/src/interfaces/send_uln.rs +2 -2
  23. package/contracts/message-libs/uln-302/src/receive_uln.rs +2 -2
  24. package/contracts/message-libs/uln-302/src/send_uln.rs +3 -3
  25. package/contracts/message-libs/uln-302/src/tests/receive_uln302/set_default_receive_uln_configs.rs +5 -5
  26. package/contracts/message-libs/uln-302/src/tests/send_uln302/set_default_send_uln_configs.rs +5 -5
  27. package/contracts/message-libs/uln-302/src/tests/setup.rs +3 -3
  28. package/contracts/message-libs/uln-302/src/types.rs +24 -24
  29. package/contracts/message-libs/uln-302/src/uln302.rs +1 -1
  30. package/contracts/oapps/counter/integration_tests/utils.rs +1 -1
  31. package/contracts/oapps/oapp/src/oapp_core.rs +4 -3
  32. package/contracts/oapps/oapp/src/oapp_options_type3.rs +4 -3
  33. package/contracts/oapps/oft/integration-tests/utils.rs +1 -1
  34. package/contracts/oapps/oft/src/events.rs +5 -4
  35. package/contracts/oapps/oft/src/extensions/oft_fee.rs +10 -6
  36. package/contracts/oapps/oft/src/extensions/pausable.rs +4 -4
  37. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +8 -6
  38. package/contracts/utils/src/ownable.rs +6 -4
  39. package/contracts/utils/src/tests/testing_utils.rs +7 -5
  40. package/contracts/utils/src/ttl.rs +5 -4
  41. package/contracts/workers/dvn/src/auth.rs +59 -45
  42. package/contracts/workers/dvn/src/dvn.rs +84 -16
  43. package/contracts/workers/dvn/src/errors.rs +10 -13
  44. package/contracts/workers/dvn/src/events.rs +7 -5
  45. package/contracts/workers/dvn/src/interfaces/dvn.rs +29 -1
  46. package/contracts/workers/dvn/src/multisig.rs +94 -71
  47. package/contracts/workers/dvn/src/storage.rs +9 -12
  48. package/contracts/workers/dvn/src/tests/auth.rs +56 -26
  49. package/contracts/workers/dvn/src/tests/dvn.rs +37 -37
  50. package/contracts/workers/dvn/src/tests/multisig/set_signer.rs +8 -8
  51. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +9 -9
  52. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +6 -6
  53. package/contracts/workers/dvn/src/tests/setup.rs +5 -5
  54. package/contracts/workers/executor/src/auth.rs +93 -0
  55. package/contracts/workers/executor/src/events.rs +5 -4
  56. package/contracts/workers/executor/src/{lz_executor.rs → executor.rs} +25 -98
  57. package/contracts/workers/executor/src/interfaces/mod.rs +1 -1
  58. package/contracts/workers/executor/src/lib.rs +6 -5
  59. package/contracts/workers/worker/src/events.rs +23 -13
  60. package/contracts/workers/worker/src/worker.rs +32 -21
  61. package/package.json +3 -3
  62. package/sdk/dist/generated/bml.js +23 -23
  63. package/sdk/dist/generated/counter.js +25 -25
  64. package/sdk/dist/generated/endpoint.js +23 -23
  65. package/sdk/dist/generated/sml.js +23 -23
  66. package/sdk/dist/generated/uln302.d.ts +1 -1
  67. package/sdk/dist/generated/uln302.js +33 -33
  68. package/sdk/package.json +1 -1
  69. package/sdk/test/index.test.ts +1 -1
  70. package/sdk/test/oft.test.ts +847 -0
  71. package/sdk/test/suites/scan.ts +20 -4
  72. package/tools/ts-bindings-gen/src/main.rs +2 -1
  73. package/contracts/common-macros/src/event.rs +0 -16
  74. /package/contracts/message-libs/{block-message-lib → blocked-message-lib}/src/lib.rs +0 -0
@@ -1,5 +1,8 @@
1
1
  use crate::tests::setup::{TestSetup, VID};
2
- use crate::{dvn::auth::TransactionAuthData, errors::DvnError, errors::MultisigError};
2
+ use crate::{
3
+ dvn::auth::{Sender, TransactionAuthData},
4
+ errors::DvnError,
5
+ };
3
6
  use ed25519_dalek::{Signer, SigningKey};
4
7
  use rand::thread_rng;
5
8
  use soroban_sdk::{auth::Context, vec, Bytes, BytesN, Env, IntoVal, Vec};
@@ -49,13 +52,18 @@ fn test_check_auth_success() {
49
52
  let auth_contexts: Vec<Context> = Vec::new(&env);
50
53
 
51
54
  let payload = BytesN::from_array(&env, &[0u8; 32]);
52
- let admin = admin_kp.public_key(&env);
53
- let admin_signature = admin_kp.sign(&env, &payload.to_array());
55
+ let public_key = admin_kp.public_key(&env);
56
+ let signature = admin_kp.sign(&env, &payload.to_array());
54
57
 
55
58
  let hash = hash_auth_data(&env, VID, expiration, &auth_contexts);
56
59
  let sig = setup.key_pairs[0].sign_bytes(&env, &hash);
57
60
 
58
- let tx_auth = TransactionAuthData { vid: VID, expiration, signatures: vec![&env, sig], admin, admin_signature };
61
+ let tx_auth = TransactionAuthData {
62
+ vid: VID,
63
+ expiration,
64
+ signatures: vec![&env, sig],
65
+ sender: Sender::Admin(public_key, signature),
66
+ };
59
67
 
60
68
  let res = env.try_invoke_contract_check_auth::<DvnError>(
61
69
  &setup.contract_id,
@@ -78,13 +86,18 @@ fn test_check_auth_not_admin() {
78
86
  let auth_contexts: Vec<Context> = Vec::new(&env);
79
87
 
80
88
  let payload = BytesN::from_array(&env, &[0u8; 32]);
81
- let admin = non_admin_kp.public_key(&env);
82
- let admin_signature = non_admin_kp.sign(&env, &payload.to_array());
89
+ let public_key = non_admin_kp.public_key(&env);
90
+ let signature = non_admin_kp.sign(&env, &payload.to_array());
83
91
 
84
92
  let hash = hash_auth_data(&env, VID, expiration, &auth_contexts);
85
93
  let sig = setup.key_pairs[0].sign_bytes(&env, &hash);
86
94
 
87
- let tx_auth = TransactionAuthData { vid: VID, expiration, signatures: vec![&env, sig], admin, admin_signature };
95
+ let tx_auth = TransactionAuthData {
96
+ vid: VID,
97
+ expiration,
98
+ signatures: vec![&env, sig],
99
+ sender: Sender::Admin(public_key, signature),
100
+ };
88
101
 
89
102
  let res = env.try_invoke_contract_check_auth::<DvnError>(
90
103
  &setup.contract_id,
@@ -108,24 +121,28 @@ fn test_check_auth_wrong_signer_fails() {
108
121
  let auth_contexts: Vec<Context> = Vec::new(&env);
109
122
 
110
123
  let payload = BytesN::from_array(&env, &[0u8; 32]);
111
- let admin = admin_kp.public_key(&env);
112
- let admin_signature = admin_kp.sign(&env, &payload.to_array());
124
+ let public_key = admin_kp.public_key(&env);
125
+ let signature = admin_kp.sign(&env, &payload.to_array());
113
126
 
114
127
  let hash = hash_auth_data(&env, VID, expiration, &auth_contexts);
115
128
  let wrong_sig = crate::tests::key_pair::KeyPair::generate().sign_bytes(&env, &hash);
116
129
 
117
- let tx_auth =
118
- TransactionAuthData { vid: VID, expiration, signatures: vec![&env, wrong_sig], admin, admin_signature };
130
+ let tx_auth = TransactionAuthData {
131
+ vid: VID,
132
+ expiration,
133
+ signatures: vec![&env, wrong_sig],
134
+ sender: Sender::Admin(public_key, signature),
135
+ };
119
136
 
120
- // verify_signatures panics with MultisigError::SignerNotFound when signer is not found
121
- let res = env.try_invoke_contract_check_auth::<MultisigError>(
137
+ // verify_signatures panics with DvnError::SignerNotFound when signer is not found
138
+ let res = env.try_invoke_contract_check_auth::<DvnError>(
122
139
  &setup.contract_id,
123
140
  &payload,
124
141
  tx_auth.into_val(&env),
125
142
  &auth_contexts,
126
143
  );
127
144
 
128
- assert_eq!(res, Err(Ok(MultisigError::SignerNotFound)));
145
+ assert_eq!(res, Err(Ok(DvnError::SignerNotFound)));
129
146
  }
130
147
 
131
148
  #[test]
@@ -141,14 +158,18 @@ fn test_check_auth_invalid_vid_fails() {
141
158
  let auth_contexts: Vec<Context> = Vec::new(&env);
142
159
 
143
160
  let payload = BytesN::from_array(&env, &[0u8; 32]);
144
- let admin = admin_kp.public_key(&env);
145
- let admin_signature = admin_kp.sign(&env, &payload.to_array());
161
+ let public_key = admin_kp.public_key(&env);
162
+ let signature = admin_kp.sign(&env, &payload.to_array());
146
163
 
147
164
  let hash = hash_auth_data(&env, wrong_vid, expiration, &auth_contexts);
148
165
  let sig = setup.key_pairs[0].sign_bytes(&env, &hash);
149
166
 
150
- let tx_auth =
151
- TransactionAuthData { vid: wrong_vid, expiration, signatures: vec![&env, sig], admin, admin_signature };
167
+ let tx_auth = TransactionAuthData {
168
+ vid: wrong_vid,
169
+ expiration,
170
+ signatures: vec![&env, sig],
171
+ sender: Sender::Admin(public_key, signature),
172
+ };
152
173
 
153
174
  let res = env.try_invoke_contract_check_auth::<DvnError>(
154
175
  &setup.contract_id,
@@ -172,13 +193,18 @@ fn test_check_auth_expired_fails() {
172
193
  let auth_contexts: Vec<Context> = Vec::new(&env);
173
194
 
174
195
  let payload = BytesN::from_array(&env, &[0u8; 32]);
175
- let admin = admin_kp.public_key(&env);
176
- let admin_signature = admin_kp.sign(&env, &payload.to_array());
196
+ let public_key = admin_kp.public_key(&env);
197
+ let signature = admin_kp.sign(&env, &payload.to_array());
177
198
 
178
199
  let hash = hash_auth_data(&env, VID, expiration, &auth_contexts);
179
200
  let sig = setup.key_pairs[0].sign_bytes(&env, &hash);
180
201
 
181
- let tx_auth = TransactionAuthData { vid: VID, expiration, signatures: vec![&env, sig], admin, admin_signature };
202
+ let tx_auth = TransactionAuthData {
203
+ vid: VID,
204
+ expiration,
205
+ signatures: vec![&env, sig],
206
+ sender: Sender::Admin(public_key, signature),
207
+ };
182
208
 
183
209
  let res = env.try_invoke_contract_check_auth::<DvnError>(
184
210
  &setup.contract_id,
@@ -202,8 +228,8 @@ fn test_check_auth_hash_already_used_fails() {
202
228
  let auth_contexts: Vec<Context> = Vec::new(&env);
203
229
 
204
230
  let payload = BytesN::from_array(&env, &[0u8; 32]);
205
- let admin = admin_kp.public_key(&env);
206
- let admin_signature = admin_kp.sign(&env, &payload.to_array());
231
+ let public_key = admin_kp.public_key(&env);
232
+ let signature = admin_kp.sign(&env, &payload.to_array());
207
233
 
208
234
  let hash = hash_auth_data(&env, VID, expiration, &auth_contexts);
209
235
  let sig = setup.key_pairs[0].sign_bytes(&env, &hash);
@@ -212,8 +238,7 @@ fn test_check_auth_hash_already_used_fails() {
212
238
  vid: VID,
213
239
  expiration,
214
240
  signatures: vec![&env, sig.clone()],
215
- admin: admin.clone(),
216
- admin_signature: admin_signature.clone(),
241
+ sender: Sender::Admin(public_key.clone(), signature.clone()),
217
242
  };
218
243
 
219
244
  let res = env.try_invoke_contract_check_auth::<DvnError>(
@@ -224,7 +249,12 @@ fn test_check_auth_hash_already_used_fails() {
224
249
  );
225
250
  assert!(res.is_ok());
226
251
 
227
- let tx_auth2 = TransactionAuthData { vid: VID, expiration, signatures: vec![&env, sig], admin, admin_signature };
252
+ let tx_auth2 = TransactionAuthData {
253
+ vid: VID,
254
+ expiration,
255
+ signatures: vec![&env, sig],
256
+ sender: Sender::Admin(public_key, signature),
257
+ };
228
258
 
229
259
  let res2 = env.try_invoke_contract_check_auth::<DvnError>(
230
260
  &setup.contract_id,
@@ -1,5 +1,5 @@
1
1
  use crate::tests::setup::TestSetup;
2
- use crate::{dvn::Dvn, DVNClient, DstConfig, DstConfigParam, IDVN};
2
+ use crate::{dvn::LzDVN, DVNClient, DstConfig, DstConfigParam, IDVN};
3
3
  use endpoint_v2::FeeRecipient;
4
4
  use message_lib_common::interfaces::ILayerZeroDVN;
5
5
  use soroban_sdk::{
@@ -22,7 +22,7 @@ fn new_addr(env: &Env) -> Address {
22
22
 
23
23
  fn grant_allowlist(setup: &TestSetup, oapp: &Address) {
24
24
  with_contract(setup, || {
25
- Dvn::set_allowlist(&setup.env, oapp, true);
25
+ LzDVN::set_allowlist(&setup.env, oapp, true);
26
26
  });
27
27
  }
28
28
 
@@ -30,17 +30,17 @@ fn configure_dst_config(setup: &TestSetup, dst_eid: u32, config: DstConfig) {
30
30
  let admin = setup.admins.get(0).unwrap();
31
31
  let params = vec![&setup.env, DstConfigParam { dst_eid, config }];
32
32
  with_contract(setup, || {
33
- Dvn::set_dst_config(&setup.env, &admin, &params);
33
+ LzDVN::set_dst_config(&setup.env, &admin, &params);
34
34
  });
35
35
  }
36
36
 
37
37
  fn configure_fee_lib(setup: &TestSetup, fee_lib: &Address, default_multiplier: u32) {
38
38
  let admin = setup.admins.get(0).unwrap();
39
39
  with_contract(setup, || {
40
- Dvn::set_worker_fee_lib(&setup.env, &admin, fee_lib);
40
+ LzDVN::set_worker_fee_lib(&setup.env, &admin, fee_lib);
41
41
  });
42
42
  with_contract(setup, || {
43
- Dvn::set_default_multiplier_bps(&setup.env, &admin, default_multiplier);
43
+ LzDVN::set_default_multiplier_bps(&setup.env, &admin, default_multiplier);
44
44
  });
45
45
  }
46
46
 
@@ -59,7 +59,7 @@ fn test_dst_config_not_set_returns_none() {
59
59
  }
60
60
 
61
61
  #[test]
62
- #[should_panic(expected = "Error(Contract, #5)")] // DvnError::EidNotSupported
62
+ #[should_panic(expected = "Error(Contract, #2)")] // DvnError::EidNotSupported
63
63
  fn test_get_fee_missing_dst_config_panics() {
64
64
  let setup = TestSetup::new(1);
65
65
  let send_lib = new_addr(&setup.env);
@@ -69,7 +69,7 @@ fn test_get_fee_missing_dst_config_panics() {
69
69
  let options = Bytes::new(&setup.env);
70
70
 
71
71
  with_contract(&setup, || {
72
- Dvn::get_fee(&setup.env, &send_lib, &sender, 999, &packet_header, &payload_hash, 1, &options);
72
+ LzDVN::get_fee(&setup.env, &send_lib, &sender, 999, &packet_header, &payload_hash, 1, &options);
73
73
  });
74
74
  }
75
75
 
@@ -87,7 +87,7 @@ fn test_get_fee_not_allowed_due_to_allowlist() {
87
87
  let options = Bytes::new(&setup.env);
88
88
 
89
89
  with_contract(&setup, || {
90
- Dvn::get_fee(&setup.env, &send_lib, &sender, 1, &packet_header, &payload_hash, 1, &options);
90
+ LzDVN::get_fee(&setup.env, &send_lib, &sender, 1, &packet_header, &payload_hash, 1, &options);
91
91
  });
92
92
  }
93
93
 
@@ -99,7 +99,7 @@ fn test_get_fee_uses_default_multiplier_when_dst_multiplier_zero() {
99
99
  configure_dst_config(&setup, 42, DstConfig { gas: 1, multiplier_bps: 0, floor_margin_usd: 0 });
100
100
 
101
101
  let fee = with_contract(&setup, || {
102
- Dvn::get_fee(
102
+ LzDVN::get_fee(
103
103
  &setup.env,
104
104
  &new_addr(&setup.env),
105
105
  &new_addr(&setup.env),
@@ -122,7 +122,7 @@ fn test_get_fee_prefers_dst_multiplier_when_nonzero() {
122
122
  configure_dst_config(&setup, 43, DstConfig { gas: 1, multiplier_bps: 9_000, floor_margin_usd: 0 });
123
123
 
124
124
  let fee = with_contract(&setup, || {
125
- Dvn::get_fee(
125
+ LzDVN::get_fee(
126
126
  &setup.env,
127
127
  &new_addr(&setup.env),
128
128
  &new_addr(&setup.env),
@@ -144,54 +144,54 @@ fn test_pause_and_setters_happy_paths() {
144
144
  let other = new_addr(&setup.env);
145
145
 
146
146
  with_contract(&setup, || {
147
- Dvn::set_paused(&setup.env, true);
147
+ LzDVN::set_paused(&setup.env, true);
148
148
  });
149
149
  with_contract(&setup, || {
150
- assert!(Dvn::paused(&setup.env));
150
+ assert!(LzDVN::paused(&setup.env));
151
151
  });
152
152
  with_contract(&setup, || {
153
- Dvn::set_paused(&setup.env, false);
153
+ LzDVN::set_paused(&setup.env, false);
154
154
  });
155
155
  with_contract(&setup, || {
156
- assert!(!Dvn::paused(&setup.env));
156
+ assert!(!LzDVN::paused(&setup.env));
157
157
  });
158
158
 
159
159
  with_contract(&setup, || {
160
- Dvn::set_default_multiplier_bps(&setup.env, &admin, 1234);
160
+ LzDVN::set_default_multiplier_bps(&setup.env, &admin, 1234);
161
161
  });
162
162
  with_contract(&setup, || {
163
- assert_eq!(Dvn::default_multiplier_bps(&setup.env), 1234);
163
+ assert_eq!(LzDVN::default_multiplier_bps(&setup.env), 1234);
164
164
  });
165
165
 
166
166
  with_contract(&setup, || {
167
- Dvn::set_deposit_address(&setup.env, &admin, &other);
167
+ LzDVN::set_deposit_address(&setup.env, &admin, &other);
168
168
  });
169
169
  with_contract(&setup, || {
170
- assert_eq!(Dvn::deposit_address(&setup.env), other);
170
+ assert_eq!(LzDVN::deposit_address(&setup.env), other);
171
171
  });
172
172
 
173
173
  let pf = new_addr(&setup.env);
174
174
  with_contract(&setup, || {
175
- Dvn::set_price_feed(&setup.env, &admin, &pf);
175
+ LzDVN::set_price_feed(&setup.env, &admin, &pf);
176
176
  });
177
177
  with_contract(&setup, || {
178
- assert_eq!(Dvn::price_feed(&setup.env), pf);
178
+ assert_eq!(LzDVN::price_feed(&setup.env), pf);
179
179
  });
180
180
 
181
181
  let opts = Bytes::from_array(&setup.env, &[1, 2, 3]);
182
182
  with_contract(&setup, || {
183
- Dvn::set_supported_option_types(&setup.env, &admin, 77, opts.clone());
183
+ LzDVN::set_supported_option_types(&setup.env, &admin, 77, opts.clone());
184
184
  });
185
185
  with_contract(&setup, || {
186
- assert_eq!(Dvn::get_supported_option_types(&setup.env, 77), Some(opts));
186
+ assert_eq!(LzDVN::get_supported_option_types(&setup.env, 77), Some(opts));
187
187
  });
188
188
 
189
189
  let fee_lib = new_addr(&setup.env);
190
190
  with_contract(&setup, || {
191
- Dvn::set_worker_fee_lib(&setup.env, &admin, &fee_lib);
191
+ LzDVN::set_worker_fee_lib(&setup.env, &admin, &fee_lib);
192
192
  });
193
193
  with_contract(&setup, || {
194
- assert_eq!(Dvn::worker_fee_lib(&setup.env), fee_lib);
194
+ assert_eq!(LzDVN::worker_fee_lib(&setup.env), fee_lib);
195
195
  });
196
196
  }
197
197
 
@@ -200,9 +200,9 @@ fn test_acl_and_allowlist_size_reads() {
200
200
  let setup = TestSetup::new(1);
201
201
  let addr = setup.admins.get(0).unwrap();
202
202
 
203
- let has_acl = with_contract(&setup, || Dvn::has_acl(&setup.env, &addr));
203
+ let has_acl = with_contract(&setup, || LzDVN::has_acl(&setup.env, &addr));
204
204
  assert!(has_acl);
205
- let allowlist_size = with_contract(&setup, || Dvn::allowlist_size(&setup.env));
205
+ let allowlist_size = with_contract(&setup, || LzDVN::allowlist_size(&setup.env));
206
206
  assert_eq!(allowlist_size, 0);
207
207
  }
208
208
 
@@ -250,14 +250,14 @@ fn test_assign_job_auth_verification() {
250
250
  configure_dst_config(&setup, dst_eid, DstConfig { gas: 1, multiplier_bps: 10_000, floor_margin_usd: 0 });
251
251
 
252
252
  with_contract(&setup, || {
253
- Dvn::set_deposit_address(&setup.env, &admin, &deposit_addr);
253
+ LzDVN::set_deposit_address(&setup.env, &admin, &deposit_addr);
254
254
  });
255
255
  with_contract(&setup, || {
256
- Dvn::set_supported_message_lib(&setup.env, &send_lib, true);
256
+ LzDVN::set_supported_message_lib(&setup.env, &send_lib, true);
257
257
  });
258
258
 
259
259
  let result = setup.env.as_contract(&setup.contract_id, || {
260
- Dvn::assign_job(&setup.env, &send_lib, &sender, dst_eid, &packet_header, &payload_hash, 1, &options)
260
+ LzDVN::assign_job(&setup.env, &send_lib, &sender, dst_eid, &packet_header, &payload_hash, 1, &options)
261
261
  });
262
262
 
263
263
  assert_eq!(result, FeeRecipient { amount: 10_000, to: deposit_addr.clone() });
@@ -274,16 +274,16 @@ fn test_set_admin_add() {
274
274
  let new_admin = new_addr(&setup.env);
275
275
 
276
276
  // Verify new_admin is not an admin initially
277
- let is_admin = with_contract(&setup, || Dvn::is_admin(&setup.env, &new_admin));
277
+ let is_admin = with_contract(&setup, || LzDVN::is_admin(&setup.env, &new_admin));
278
278
  assert!(!is_admin);
279
279
 
280
280
  // Add new admin by existing admin
281
281
  with_contract(&setup, || {
282
- Dvn::set_admin(&setup.env, &existing_admin, &new_admin, true);
282
+ LzDVN::set_admin(&setup.env, &existing_admin, &new_admin, true);
283
283
  });
284
284
 
285
285
  // Verify new_admin is now an admin
286
- let is_admin = with_contract(&setup, || Dvn::is_admin(&setup.env, &new_admin));
286
+ let is_admin = with_contract(&setup, || LzDVN::is_admin(&setup.env, &new_admin));
287
287
  assert!(is_admin);
288
288
  }
289
289
 
@@ -295,16 +295,16 @@ fn test_set_admin_remove() {
295
295
 
296
296
  // Add new admin first
297
297
  with_contract(&setup, || {
298
- Dvn::set_admin(&setup.env, &existing_admin, &new_admin, true);
298
+ LzDVN::set_admin(&setup.env, &existing_admin, &new_admin, true);
299
299
  });
300
300
 
301
301
  // Remove the new admin
302
302
  with_contract(&setup, || {
303
- Dvn::set_admin(&setup.env, &existing_admin, &new_admin, false);
303
+ LzDVN::set_admin(&setup.env, &existing_admin, &new_admin, false);
304
304
  });
305
305
 
306
306
  // Verify new_admin is no longer an admin
307
- let is_admin = with_contract(&setup, || Dvn::is_admin(&setup.env, &new_admin));
307
+ let is_admin = with_contract(&setup, || LzDVN::is_admin(&setup.env, &new_admin));
308
308
  assert!(!is_admin);
309
309
  }
310
310
 
@@ -317,7 +317,7 @@ fn test_set_admin_unauthorized() {
317
317
 
318
318
  // Attempt to add admin by non-admin should fail
319
319
  with_contract(&setup, || {
320
- Dvn::set_admin(&setup.env, &non_admin, &new_admin, true);
320
+ LzDVN::set_admin(&setup.env, &non_admin, &new_admin, true);
321
321
  });
322
322
  }
323
323
 
@@ -329,7 +329,7 @@ fn test_set_admin_cannot_remove_last_admin() {
329
329
 
330
330
  // Attempt to remove the only admin should fail
331
331
  with_contract(&setup, || {
332
- Dvn::set_admin(&setup.env, &existing_admin, &existing_admin, false);
332
+ LzDVN::set_admin(&setup.env, &existing_admin, &existing_admin, false);
333
333
  });
334
334
  }
335
335
 
@@ -1,5 +1,5 @@
1
- use crate::errors::MultisigError;
2
- use crate::storage::MultisigStorage;
1
+ use crate::errors::DvnError;
2
+ use crate::storage::DvnStorage;
3
3
  use crate::tests::setup::TestSetup;
4
4
  use soroban_sdk::{
5
5
  testutils::{AuthorizedFunction, BytesN as _},
@@ -12,7 +12,7 @@ fn random_signer(env: &Env) -> BytesN<20> {
12
12
 
13
13
  fn clear_signers(setup: &TestSetup) {
14
14
  setup.env.as_contract(&setup.contract_id, || {
15
- MultisigStorage::remove_signers(&setup.env);
15
+ DvnStorage::remove_signers(&setup.env);
16
16
  });
17
17
  }
18
18
 
@@ -48,7 +48,7 @@ fn test_set_signer_duplicate_fails() {
48
48
  setup.multisig_client.set_signer(&signer, &true);
49
49
  let res = setup.multisig_client.try_set_signer(&signer, &true);
50
50
 
51
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::SignerAlreadyExists.into());
51
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::SignerAlreadyExists.into());
52
52
  }
53
53
 
54
54
  #[test]
@@ -69,7 +69,7 @@ fn test_set_signer_remove_not_found() {
69
69
  let signer = random_signer(&setup.env);
70
70
 
71
71
  let res = setup.multisig_client.try_set_signer(&signer, &false);
72
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::SignerNotFound.into());
72
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::SignerNotFound.into());
73
73
  }
74
74
 
75
75
  #[test]
@@ -78,7 +78,7 @@ fn test_set_signer_invalid_signer_zero_address() {
78
78
  let zero = BytesN::from_array(&setup.env, &[0u8; 20]);
79
79
 
80
80
  let res = setup.multisig_client.try_set_signer(&zero, &true);
81
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::InvalidSigner.into());
81
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::InvalidSigner.into());
82
82
  }
83
83
 
84
84
  #[test]
@@ -115,7 +115,7 @@ fn test_remove_signer_when_no_signers() {
115
115
 
116
116
  let signer = random_signer(&setup.env);
117
117
  let res = setup.multisig_client.try_set_signer(&signer, &false);
118
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::SignerNotFound.into());
118
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::SignerNotFound.into());
119
119
  }
120
120
 
121
121
  #[test]
@@ -129,5 +129,5 @@ fn test_remove_signer_violates_threshold() {
129
129
 
130
130
  // Removing a signer should fail because it would leave only 1 signer with threshold 2
131
131
  let res = setup.multisig_client.try_set_signer(&signer_to_remove, &false);
132
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::TotalSignersLessThanThreshold.into());
132
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::TotalSignersLessThanThreshold.into());
133
133
  }
@@ -1,5 +1,5 @@
1
1
  use crate::tests::setup::{TestSetup, DEFAULT_MULTIPLIER_BPS, VID};
2
- use crate::{dvn::Dvn, errors::MultisigError, storage::MultisigStorage};
2
+ use crate::{dvn::LzDVN, errors::DvnError, storage::DvnStorage};
3
3
  use soroban_sdk::{
4
4
  testutils::{Address as _, AuthorizedFunction, BytesN as _},
5
5
  vec, Address, BytesN, Env, IntoVal, Symbol, Vec,
@@ -21,7 +21,7 @@ fn register_dvn(env: &Env, signer_count: usize, threshold: u32) {
21
21
  let deposit_address: Address = Address::generate(env);
22
22
 
23
23
  let _ = env.register(
24
- Dvn,
24
+ LzDVN,
25
25
  (
26
26
  &VID,
27
27
  &signers,
@@ -29,8 +29,8 @@ fn register_dvn(env: &Env, signer_count: usize, threshold: u32) {
29
29
  &admins,
30
30
  &supported_msglibs,
31
31
  &price_feed,
32
- &worker_fee_lib,
33
32
  &DEFAULT_MULTIPLIER_BPS,
33
+ &worker_fee_lib,
34
34
  &deposit_address,
35
35
  ),
36
36
  );
@@ -66,7 +66,7 @@ fn test_set_threshold_zero_fails() {
66
66
  let setup = TestSetup::new(1);
67
67
 
68
68
  let res = setup.multisig_client.try_set_threshold(&0);
69
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::ZeroThreshold.into());
69
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::ZeroThreshold.into());
70
70
  }
71
71
 
72
72
  #[test]
@@ -74,7 +74,7 @@ fn test_set_threshold_above_signers_fails() {
74
74
  let setup = TestSetup::new(2);
75
75
 
76
76
  let res = setup.multisig_client.try_set_threshold(&3);
77
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::TotalSignersLessThanThreshold.into());
77
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::TotalSignersLessThanThreshold.into());
78
78
  }
79
79
 
80
80
  #[test]
@@ -82,15 +82,15 @@ fn test_set_threshold_with_no_signers_fails() {
82
82
  let setup = TestSetup::new(1);
83
83
 
84
84
  setup.env.as_contract(&setup.contract_id, || {
85
- MultisigStorage::remove_signers(&setup.env);
85
+ DvnStorage::remove_signers(&setup.env);
86
86
  });
87
87
 
88
88
  let res = setup.multisig_client.try_set_threshold(&1);
89
- assert_eq!(res.err().unwrap().ok().unwrap(), MultisigError::TotalSignersLessThanThreshold.into());
89
+ assert_eq!(res.err().unwrap().ok().unwrap(), DvnError::TotalSignersLessThanThreshold.into());
90
90
  }
91
91
 
92
92
  #[test]
93
- #[should_panic(expected = "Error(Contract, #1)")] // MultisigError::ZeroThreshold
93
+ #[should_panic(expected = "Error(Contract, #13)")] // DvnError::ZeroThreshold
94
94
  fn test_constructor_threshold_zero_panics() {
95
95
  let env = Env::default();
96
96
  env.mock_all_auths();
@@ -99,7 +99,7 @@ fn test_constructor_threshold_zero_panics() {
99
99
  }
100
100
 
101
101
  #[test]
102
- #[should_panic(expected = "Error(Contract, #2)")] // MultisigError::TotalSignersLessThanThreshold
102
+ #[should_panic(expected = "Error(Contract, #11)")] // DvnError::TotalSignersLessThanThreshold
103
103
  fn test_constructor_signers_less_than_threshold_panics() {
104
104
  let env = Env::default();
105
105
  env.mock_all_auths();
@@ -1,6 +1,6 @@
1
1
  extern crate std;
2
2
 
3
- use crate::storage::MultisigStorage;
3
+ use crate::storage::DvnStorage;
4
4
  use crate::tests::key_pair::KeyPair;
5
5
  use crate::tests::setup::TestSetup;
6
6
  use soroban_sdk::{vec, Bytes, BytesN, Vec};
@@ -59,7 +59,7 @@ fn test_verify_signatures_raw_v_path() {
59
59
  }
60
60
 
61
61
  #[test]
62
- #[should_panic(expected = "Error(Contract, #5)")] // MultisigError::SignerNotFound
62
+ #[should_panic(expected = "Error(Contract, #10)")] // DvnError::SignerNotFound
63
63
  fn test_verify_signatures_with_wrong_signer() {
64
64
  let setup = TestSetup::new(1);
65
65
  let digest = hash(&setup.env, b"test");
@@ -71,7 +71,7 @@ fn test_verify_signatures_with_wrong_signer() {
71
71
  }
72
72
 
73
73
  #[test]
74
- #[should_panic(expected = "Error(Contract, #7)")] // MultisigError::SignatureError
74
+ #[should_panic(expected = "Error(Contract, #8)")] // DvnError::SignatureError
75
75
  fn test_verify_signatures_insufficient_signatures() {
76
76
  let setup = TestSetup::new(2);
77
77
  let digest = hash(&setup.env, b"insufficient");
@@ -82,7 +82,7 @@ fn test_verify_signatures_insufficient_signatures() {
82
82
  }
83
83
 
84
84
  #[test]
85
- #[should_panic(expected = "Error(Contract, #6)")] // MultisigError::UnsortedSigners
85
+ #[should_panic(expected = "Error(Contract, #12)")] // DvnError::UnsortedSigners
86
86
  fn test_verify_signatures_duplicate_signer() {
87
87
  let setup = TestSetup::new(2);
88
88
  let digest = hash(&setup.env, b"duplicate");
@@ -94,12 +94,12 @@ fn test_verify_signatures_duplicate_signer() {
94
94
  }
95
95
 
96
96
  #[test]
97
- #[should_panic(expected = "Error(Contract, #1)")] // MultisigError::ZeroThreshold
97
+ #[should_panic(expected = "Error(Contract, #13)")] // DvnError::ZeroThreshold
98
98
  fn test_verify_signatures_threshold_zero() {
99
99
  let setup = TestSetup::new(1);
100
100
  // Force threshold to 0 via storage to hit ZeroThreshold branch
101
101
  setup.env.as_contract(&setup.contract_id, || {
102
- MultisigStorage::set_threshold(&setup.env, &0);
102
+ DvnStorage::set_threshold(&setup.env, &0);
103
103
  });
104
104
  let digest = hash(&setup.env, b"threshold_zero");
105
105
 
@@ -3,7 +3,7 @@
3
3
  extern crate std;
4
4
 
5
5
  use crate::tests::key_pair::KeyPair;
6
- use crate::{dvn::Dvn, interfaces::MultiSigClient};
6
+ use crate::{dvn::LzDVN, interfaces::MultiSigClient};
7
7
  use soroban_sdk::{address_payload::AddressPayload, testutils::Address as _, vec, Address, BytesN, Env, Vec};
8
8
  use std::vec::Vec as StdVec;
9
9
 
@@ -44,7 +44,7 @@ impl<'a> TestSetup<'a> {
44
44
  let deposit_address: Address = Address::generate(&env);
45
45
 
46
46
  let contract_id = env.register(
47
- Dvn,
47
+ LzDVN,
48
48
  (
49
49
  &VID,
50
50
  &signers,
@@ -52,8 +52,8 @@ impl<'a> TestSetup<'a> {
52
52
  &admins,
53
53
  &supported_msglibs,
54
54
  &price_feed,
55
- &worker_fee_lib,
56
55
  &DEFAULT_MULTIPLIER_BPS,
56
+ &worker_fee_lib,
57
57
  &deposit_address,
58
58
  ),
59
59
  );
@@ -88,7 +88,7 @@ impl<'a> TestSetup<'a> {
88
88
  let deposit_address: Address = Address::generate(&env);
89
89
 
90
90
  let contract_id = env.register(
91
- Dvn,
91
+ LzDVN,
92
92
  (
93
93
  &VID,
94
94
  &signers,
@@ -96,8 +96,8 @@ impl<'a> TestSetup<'a> {
96
96
  &admins,
97
97
  &supported_msglibs,
98
98
  &price_feed,
99
- &worker_fee_lib,
100
99
  &DEFAULT_MULTIPLIER_BPS,
100
+ &worker_fee_lib,
101
101
  &deposit_address,
102
102
  ),
103
103
  );