@layerzerolabs/lz-v2-stellar-sdk 0.2.34 → 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.
- package/.turbo/turbo-test.log +370 -372
- package/dist/generated/bml.d.ts +53 -3
- package/dist/generated/bml.js +27 -3
- package/dist/generated/counter.d.ts +84 -5
- package/dist/generated/counter.js +31 -4
- package/dist/generated/dvn.d.ts +55 -5
- package/dist/generated/dvn.js +28 -4
- package/dist/generated/dvn_fee_lib.d.ts +55 -5
- package/dist/generated/dvn_fee_lib.js +28 -4
- package/dist/generated/endpoint.d.ts +64 -15
- package/dist/generated/endpoint.js +32 -8
- package/dist/generated/executor.d.ts +55 -5
- package/dist/generated/executor.js +28 -4
- package/dist/generated/executor_fee_lib.d.ts +55 -5
- package/dist/generated/executor_fee_lib.js +28 -4
- package/dist/generated/executor_helper.d.ts +53 -3
- package/dist/generated/executor_helper.js +27 -3
- package/dist/generated/layerzero_view.d.ts +55 -5
- package/dist/generated/layerzero_view.js +28 -4
- package/dist/generated/oft.d.ts +84 -5
- package/dist/generated/oft.js +31 -4
- package/dist/generated/price_feed.d.ts +55 -5
- package/dist/generated/price_feed.js +28 -4
- package/dist/generated/sac_manager.d.ts +213 -666
- package/dist/generated/sac_manager.js +57 -238
- package/dist/generated/sml.d.ts +55 -5
- package/dist/generated/sml.js +28 -4
- package/dist/generated/treasury.d.ts +55 -5
- package/dist/generated/treasury.js +28 -4
- package/dist/generated/uln302.d.ts +55 -5
- package/dist/generated/uln302.js +28 -4
- package/dist/generated/upgrader.d.ts +53 -3
- package/dist/generated/upgrader.js +27 -3
- package/package.json +5 -5
- package/src/generated/bml.ts +34 -3
- package/src/generated/counter.ts +61 -6
- package/src/generated/dvn.ts +37 -6
- package/src/generated/dvn_fee_lib.ts +37 -6
- package/src/generated/endpoint.ts +45 -18
- package/src/generated/executor.ts +37 -6
- package/src/generated/executor_fee_lib.ts +37 -6
- package/src/generated/executor_helper.ts +34 -3
- package/src/generated/layerzero_view.ts +37 -6
- package/src/generated/oft.ts +62 -6
- package/src/generated/price_feed.ts +37 -6
- package/src/generated/sac_manager.ts +180 -647
- package/src/generated/sml.ts +37 -6
- package/src/generated/treasury.ts +37 -6
- package/src/generated/uln302.ts +37 -6
- package/src/generated/upgrader.ts +34 -3
- package/test/oft-sml.test.ts +10 -9
- package/test/{sac-manager-redistribution.test.ts → sac-manager.test.ts} +49 -25
package/test/oft-sml.test.ts
CHANGED
|
@@ -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
|
|
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<
|
|
188
|
-
|
|
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('
|
|
382
|
-
const sacManagerClient = new
|
|
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.
|
|
398
|
-
|
|
399
|
-
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
53
|
+
* Creates a SACManagerClient with a specific signer
|
|
54
54
|
*/
|
|
55
|
-
function createClientWithSigner(contractId: string, signer: Keypair):
|
|
56
|
-
return new
|
|
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<
|
|
258
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
426
|
+
operator: USER_A.publicKey(),
|
|
403
427
|
});
|
|
404
428
|
await expect(assembledTx.signAndSend()).rejects.toThrow();
|
|
405
429
|
console.log('Non-minter correctly rejected');
|