@layerzerolabs/lz-v2-stellar-sdk 0.2.35 → 0.2.36

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 (52) hide show
  1. package/.turbo/turbo-test.log +368 -366
  2. package/dist/generated/bml.d.ts +53 -3
  3. package/dist/generated/bml.js +27 -3
  4. package/dist/generated/counter.d.ts +55 -5
  5. package/dist/generated/counter.js +28 -4
  6. package/dist/generated/dvn.d.ts +55 -5
  7. package/dist/generated/dvn.js +28 -4
  8. package/dist/generated/dvn_fee_lib.d.ts +55 -5
  9. package/dist/generated/dvn_fee_lib.js +28 -4
  10. package/dist/generated/endpoint.d.ts +55 -5
  11. package/dist/generated/endpoint.js +28 -4
  12. package/dist/generated/executor.d.ts +55 -5
  13. package/dist/generated/executor.js +28 -4
  14. package/dist/generated/executor_fee_lib.d.ts +55 -5
  15. package/dist/generated/executor_fee_lib.js +28 -4
  16. package/dist/generated/executor_helper.d.ts +53 -3
  17. package/dist/generated/executor_helper.js +27 -3
  18. package/dist/generated/layerzero_view.d.ts +55 -5
  19. package/dist/generated/layerzero_view.js +28 -4
  20. package/dist/generated/oft.d.ts +55 -5
  21. package/dist/generated/oft.js +28 -4
  22. package/dist/generated/price_feed.d.ts +55 -5
  23. package/dist/generated/price_feed.js +28 -4
  24. package/dist/generated/sac_manager.d.ts +213 -687
  25. package/dist/generated/sac_manager.js +57 -239
  26. package/dist/generated/sml.d.ts +55 -5
  27. package/dist/generated/sml.js +28 -4
  28. package/dist/generated/treasury.d.ts +55 -5
  29. package/dist/generated/treasury.js +28 -4
  30. package/dist/generated/uln302.d.ts +55 -5
  31. package/dist/generated/uln302.js +28 -4
  32. package/dist/generated/upgrader.d.ts +53 -3
  33. package/dist/generated/upgrader.js +27 -3
  34. package/package.json +5 -5
  35. package/src/generated/bml.ts +34 -3
  36. package/src/generated/counter.ts +37 -6
  37. package/src/generated/dvn.ts +37 -6
  38. package/src/generated/dvn_fee_lib.ts +37 -6
  39. package/src/generated/endpoint.ts +37 -6
  40. package/src/generated/executor.ts +37 -6
  41. package/src/generated/executor_fee_lib.ts +37 -6
  42. package/src/generated/executor_helper.ts +34 -3
  43. package/src/generated/layerzero_view.ts +37 -6
  44. package/src/generated/oft.ts +37 -6
  45. package/src/generated/price_feed.ts +37 -6
  46. package/src/generated/sac_manager.ts +180 -664
  47. package/src/generated/sml.ts +37 -6
  48. package/src/generated/treasury.ts +37 -6
  49. package/src/generated/uln302.ts +37 -6
  50. package/src/generated/upgrader.ts +34 -3
  51. package/test/oft-sml.test.ts +10 -9
  52. package/test/{sac-manager-redistribution.test.ts → sac-manager.test.ts} +49 -25
@@ -17,7 +17,7 @@ import { PacketSerializer, PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'
17
17
  import { Client as EndpointClient } from '../src/generated/endpoint';
18
18
  import { Client as ExecutorHelperClient } from '../src/generated/executor_helper';
19
19
  import { Client as OFTClient, SendParam } from '../src/generated/oft';
20
- import { Client as SacManagerClient } from '../src/generated/sac_manager';
20
+ import { Client as SACManagerClient } from '../src/generated/sac_manager';
21
21
  import { Client as SMLClient } from '../src/generated/sml';
22
22
  import {
23
23
  DEFAULT_DEPLOYER,
@@ -184,8 +184,8 @@ describe('OFT Cross-Chain E2E Testing with SAC (SML)', async () => {
184
184
  });
185
185
 
186
186
  it('Deploy SAC Manager and set SAC admin (mintable for Mint/Burn OFT)', async () => {
187
- const sacManagerClient = await deployContract<SacManagerClient>(
188
- SacManagerClient,
187
+ const sacManagerClient = await deployContract<SACManagerClient>(
188
+ SACManagerClient,
189
189
  SAC_MANAGER_WASM_PATH,
190
190
  {
191
191
  sac_token: oftTokenAddress,
@@ -378,8 +378,8 @@ describe('OFT Cross-Chain E2E Testing with SAC (SML)', async () => {
378
378
  console.log('✅ Mint/Burn OFT (Chain B) peer set to Lock/Unlock OFT for EID_A');
379
379
  });
380
380
 
381
- it('Add Mint/Burn OFT as minter on SAC Manager (for receive/mint)', async () => {
382
- const sacManagerClient = new SacManagerClient({
381
+ it('Grant MINTER_ROLE to Mint/Burn OFT on SAC Manager (for receive/mint)', async () => {
382
+ const sacManagerClient = new SACManagerClient({
383
383
  contractId: sacManagerAddress,
384
384
  publicKey: DEFAULT_DEPLOYER.publicKey(),
385
385
  signTransaction: async (tx: string) => {
@@ -394,12 +394,13 @@ describe('OFT Cross-Chain E2E Testing with SAC (SML)', async () => {
394
394
  networkPassphrase: NETWORK_PASSPHRASE,
395
395
  allowHttp: true,
396
396
  });
397
- const assembledTx = await sacManagerClient.set_minter({
398
- minter: mintBurnOftAddress,
399
- active: true,
397
+ const assembledTx = await sacManagerClient.grant_role({
398
+ account: mintBurnOftAddress,
399
+ role: 'MINTER',
400
+ caller: DEFAULT_DEPLOYER.publicKey(),
400
401
  });
401
402
  await assembledTx.signAndSend();
402
- console.log('✅ Mint/Burn OFT added as minter on SAC Manager');
403
+ console.log('✅ MINTER_ROLE granted to Mint/Burn OFT on SAC Manager');
403
404
  });
404
405
  });
405
406
 
@@ -15,7 +15,7 @@ import { beforeAll, describe, expect, it } from 'vitest';
15
15
 
16
16
  import { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';
17
17
 
18
- import { Client as SacManagerClient } from '../src/generated/sac_manager';
18
+ import { Client as SACManagerClient } from '../src/generated/sac_manager';
19
19
  import { DEFAULT_DEPLOYER, NETWORK_PASSPHRASE, RPC_URL } from './suites/constants';
20
20
  import { deployAssetSac, deployContract } from './suites/deploy';
21
21
  import { fundAccount } from './suites/localnet';
@@ -39,7 +39,7 @@ let sacTokenAddress = '';
39
39
  let sacManagerAddress = '';
40
40
 
41
41
  // Clients
42
- let sacManagerClient: SacManagerClient;
42
+ let sacManagerClient: SACManagerClient;
43
43
 
44
44
  // Initial token amounts
45
45
  const INITIAL_TOKEN_AMOUNT = '1000'; // 1000 tokens
@@ -50,10 +50,10 @@ const MINT_AMOUNT = 100_0000000n; // 100 tokens (7 decimals)
50
50
  // ============================================================================
51
51
 
52
52
  /**
53
- * Creates a SacManagerClient with a specific signer
53
+ * Creates a SACManagerClient with a specific signer
54
54
  */
55
- function createClientWithSigner(contractId: string, signer: Keypair): SacManagerClient {
56
- return new SacManagerClient({
55
+ function createClientWithSigner(contractId: string, signer: Keypair): SACManagerClient {
56
+ return new SACManagerClient({
57
57
  contractId,
58
58
  publicKey: signer.publicKey(),
59
59
  signTransaction: async (tx: string) => {
@@ -254,8 +254,8 @@ describe('SAC Manager E2E Tests', async () => {
254
254
  });
255
255
 
256
256
  it('Deploy SAC Manager contract', async () => {
257
- sacManagerClient = await deployContract<SacManagerClient>(
258
- SacManagerClient,
257
+ sacManagerClient = await deployContract<SACManagerClient>(
258
+ SACManagerClient,
259
259
  SAC_MANAGER_WASM_PATH,
260
260
  {
261
261
  sac_token: sacTokenAddress,
@@ -268,6 +268,18 @@ describe('SAC Manager E2E Tests', async () => {
268
268
  console.log('SAC Manager deployed at:', sacManagerAddress);
269
269
  });
270
270
 
271
+ it('Grant all roles to owner', async () => {
272
+ for (const role of ['ADMIN_MGR', 'MINTER', 'BLKLISTR', 'CLAWBACK']) {
273
+ const assembledTx = await sacManagerClient.grant_role({
274
+ account: DEFAULT_DEPLOYER.publicKey(),
275
+ role,
276
+ caller: DEFAULT_DEPLOYER.publicKey(),
277
+ });
278
+ await assembledTx.signAndSend();
279
+ }
280
+ console.log('All roles granted to owner');
281
+ });
282
+
271
283
  it('Set SAC admin to SAC Manager', async () => {
272
284
  await invokeSacFunction(
273
285
  sacTokenAddress,
@@ -278,18 +290,6 @@ describe('SAC Manager E2E Tests', async () => {
278
290
  console.log('SAC admin set to SAC Manager');
279
291
  });
280
292
 
281
- it('Add DEFAULT_DEPLOYER as minter', async () => {
282
- const assembledTx = await sacManagerClient.set_minter({
283
- minter: DEFAULT_DEPLOYER.publicKey(),
284
- active: true,
285
- });
286
- await assembledTx.signAndSend();
287
- const { result: minters } = await sacManagerClient.minters();
288
- expect(minters).toBeDefined();
289
- expect(minters?.length).toBeGreaterThanOrEqual(1);
290
- console.log('DEFAULT_DEPLOYER added as minter');
291
- });
292
-
293
293
  it('Verify owner (DEFAULT_DEPLOYER) starts with zero balance', async () => {
294
294
  const ownerBalance = await getTokenBalance(
295
295
  DEFAULT_DEPLOYER.publicKey(),
@@ -317,9 +317,17 @@ describe('SAC Manager E2E Tests', async () => {
317
317
  });
318
318
 
319
319
  it('Blacklist USER_B via set_authorized', async () => {
320
- const assembledTx = await sacManagerClient.set_authorized({
320
+ // operator: caller must have BLACKLISTER_ROLE (generated client will include operator after regeneration)
321
+ const assembledTx = await (
322
+ sacManagerClient.set_authorized as (args: {
323
+ id: string;
324
+ authorize: boolean;
325
+ operator: string;
326
+ }) => ReturnType<typeof sacManagerClient.set_authorized>
327
+ )({
321
328
  id: USER_B.publicKey(),
322
329
  authorize: false,
330
+ operator: DEFAULT_DEPLOYER.publicKey(),
323
331
  });
324
332
  await assembledTx.signAndSend();
325
333
  console.log('USER_B blacklisted (authorized=false)');
@@ -333,18 +341,34 @@ describe('SAC Manager E2E Tests', async () => {
333
341
 
334
342
  it('Non-admin cannot call set_authorized', async () => {
335
343
  const userClient = createClientWithSigner(sacManagerAddress, USER_A);
336
- const assembledTx = await userClient.set_authorized({
344
+ // operator: USER_A does not have BLACKLISTER_ROLE (generated client will include operator after regeneration)
345
+ const assembledTx = await (
346
+ userClient.set_authorized as (args: {
347
+ id: string;
348
+ authorize: boolean;
349
+ operator: string;
350
+ }) => ReturnType<typeof userClient.set_authorized>
351
+ )({
337
352
  id: USER_C.publicKey(),
338
353
  authorize: false,
354
+ operator: USER_A.publicKey(),
339
355
  });
340
356
  await expect(assembledTx.signAndSend()).rejects.toThrow();
341
357
  console.log('Non-admin correctly rejected from calling set_authorized');
342
358
  });
343
359
 
344
360
  it('Un-blacklist USER_B via set_authorized', async () => {
345
- const assembledTx = await sacManagerClient.set_authorized({
361
+ // operator: caller must have BLACKLISTER_ROLE (generated client will include operator after regeneration)
362
+ const assembledTx = await (
363
+ sacManagerClient.set_authorized as (args: {
364
+ id: string;
365
+ authorize: boolean;
366
+ operator: string;
367
+ }) => ReturnType<typeof sacManagerClient.set_authorized>
368
+ )({
346
369
  id: USER_B.publicKey(),
347
370
  authorize: true,
371
+ operator: DEFAULT_DEPLOYER.publicKey(),
348
372
  });
349
373
  await assembledTx.signAndSend();
350
374
  const authorized = await getTokenAuthorized(USER_B.publicKey(), sacTokenAddress);
@@ -354,7 +378,7 @@ describe('SAC Manager E2E Tests', async () => {
354
378
  });
355
379
 
356
380
  // ========================================================================
357
- // Mint (Mintable interface – minter must be in minters list)
381
+ // Mint (operator must have MINTER_ROLE)
358
382
  // ========================================================================
359
383
 
360
384
  describe('Mint', () => {
@@ -385,7 +409,7 @@ describe('SAC Manager E2E Tests', async () => {
385
409
  const assembledTx = await sacManagerClient.mint({
386
410
  to: USER_C.publicKey(),
387
411
  amount: MINT_AMOUNT,
388
- operation: DEFAULT_DEPLOYER.publicKey(),
412
+ operator: DEFAULT_DEPLOYER.publicKey(),
389
413
  });
390
414
  await assembledTx.signAndSend();
391
415
 
@@ -399,7 +423,7 @@ describe('SAC Manager E2E Tests', async () => {
399
423
  const assembledTx = await userClient.mint({
400
424
  to: USER_C.publicKey(),
401
425
  amount: MINT_AMOUNT,
402
- operation: USER_A.publicKey(),
426
+ operator: USER_A.publicKey(),
403
427
  });
404
428
  await expect(assembledTx.signAndSend()).rejects.toThrow();
405
429
  console.log('Non-minter correctly rejected');