@lagoon-protocol/lagoon-mcp 0.1.0 → 0.1.1

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 (38) hide show
  1. package/dist/sdk/apr-service.d.ts +1 -2
  2. package/dist/sdk/apr-service.d.ts.map +1 -1
  3. package/dist/sdk/apr-service.js.map +1 -1
  4. package/dist/tools/optimize-portfolio.js +2 -2
  5. package/dist/tools/optimize-portfolio.js.map +1 -1
  6. package/package.json +1 -1
  7. package/dist/graphql/fragments.d.ts +0 -183
  8. package/dist/graphql/fragments.d.ts.map +0 -1
  9. package/dist/graphql/fragments.js +0 -297
  10. package/dist/graphql/fragments.js.map +0 -1
  11. package/dist/graphql/queries/period-summaries.d.ts +0 -15
  12. package/dist/graphql/queries/period-summaries.d.ts.map +0 -1
  13. package/dist/graphql/queries/period-summaries.js +0 -24
  14. package/dist/graphql/queries/period-summaries.js.map +0 -1
  15. package/dist/sdk/__tests__/apr-service.test.d.ts +0 -7
  16. package/dist/sdk/__tests__/apr-service.test.d.ts.map +0 -1
  17. package/dist/sdk/__tests__/apr-service.test.js +0 -385
  18. package/dist/sdk/__tests__/apr-service.test.js.map +0 -1
  19. package/dist/sdk/__tests__/math-utils.test.d.ts +0 -7
  20. package/dist/sdk/__tests__/math-utils.test.d.ts.map +0 -1
  21. package/dist/sdk/__tests__/math-utils.test.js +0 -185
  22. package/dist/sdk/__tests__/math-utils.test.js.map +0 -1
  23. package/dist/sdk/__tests__/simulation-service.test.d.ts +0 -5
  24. package/dist/sdk/__tests__/simulation-service.test.d.ts.map +0 -1
  25. package/dist/sdk/__tests__/simulation-service.test.js +0 -397
  26. package/dist/sdk/__tests__/simulation-service.test.js.map +0 -1
  27. package/dist/sdk/__tests__/vault-utils.test.d.ts +0 -7
  28. package/dist/sdk/__tests__/vault-utils.test.d.ts.map +0 -1
  29. package/dist/sdk/__tests__/vault-utils.test.js +0 -189
  30. package/dist/sdk/__tests__/vault-utils.test.js.map +0 -1
  31. package/dist/tools/__tests__/simulate-vault.test.d.ts +0 -5
  32. package/dist/tools/__tests__/simulate-vault.test.d.ts.map +0 -1
  33. package/dist/tools/__tests__/simulate-vault.test.js +0 -363
  34. package/dist/tools/__tests__/simulate-vault.test.js.map +0 -1
  35. package/dist/tools/index.d.ts +0 -26
  36. package/dist/tools/index.d.ts.map +0 -1
  37. package/dist/tools/index.js +0 -32
  38. package/dist/tools/index.js.map +0 -1
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for simulation-service.ts
3
- */
4
- export {};
5
- //# sourceMappingURL=simulation-service.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulation-service.test.d.ts","sourceRoot":"","sources":["../../../src/sdk/__tests__/simulation-service.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,397 +0,0 @@
1
- /**
2
- * Tests for simulation-service.ts
3
- */
4
- import { describe, it, expect, vi, beforeEach } from 'vitest';
5
- import { mapVaultToSimulationFormat, constructSimulationInput, simulateVaultManagement, } from '../simulation-service.js';
6
- // Mock the SDK simulate function
7
- vi.mock('@lagoon-protocol/v0-computation', () => ({
8
- simulate: vi.fn(),
9
- }));
10
- import { simulate } from '@lagoon-protocol/v0-computation';
11
- describe('mapVaultToSimulationFormat', () => {
12
- const baseVault = {
13
- address: '0x1234567890123456789012345678901234567890',
14
- name: 'Test Vault',
15
- symbol: 'TEST',
16
- decimals: 18,
17
- asset: {
18
- address: '0xabcdef1234567890abcdef1234567890abcdef12',
19
- symbol: 'USDC',
20
- name: 'USD Coin',
21
- decimals: 6,
22
- },
23
- state: {
24
- totalSupply: '1000000000000000000',
25
- totalAssets: '1000000000',
26
- highWaterMark: '1000000000',
27
- lastFeeTime: '1700000000',
28
- managementFee: '200',
29
- performanceFee: '1000',
30
- version: 'v1',
31
- safeAssetBalance: '500000000',
32
- pendingSiloBalances: {
33
- assets: '100000000',
34
- shares: '100000000000000000',
35
- },
36
- pendingSettlement: {
37
- assets: '50000000',
38
- shares: '50000000000000000',
39
- },
40
- },
41
- chainId: 42161,
42
- tvl: 1000,
43
- };
44
- it('should map vault data correctly to SDK format', () => {
45
- const newTotalAssets = BigInt('2000000000');
46
- const result = mapVaultToSimulationFormat(baseVault, newTotalAssets);
47
- expect(result).toEqual({
48
- decimals: 18,
49
- underlyingDecimals: 6,
50
- newTotalAssets: BigInt('2000000000'),
51
- totalSupply: BigInt('1000000000000000000'),
52
- totalAssets: BigInt('1000000000'),
53
- highWaterMark: BigInt('1000000000'),
54
- lastFeeTime: BigInt('1700000000'),
55
- feeRates: {
56
- managementRate: 200,
57
- performanceRate: 1000,
58
- },
59
- version: 'v1',
60
- });
61
- });
62
- it('should handle missing optional fields with defaults', () => {
63
- const minimalVault = {
64
- ...baseVault,
65
- decimals: undefined,
66
- state: {
67
- ...baseVault.state,
68
- version: undefined,
69
- },
70
- };
71
- const newTotalAssets = BigInt('1000000000');
72
- const result = mapVaultToSimulationFormat(minimalVault, newTotalAssets);
73
- expect(result.decimals).toBe(18); // Default
74
- expect(result.version).toBe('latest'); // Default
75
- });
76
- it('should correctly calculate decimals offset', () => {
77
- const vault18_6 = {
78
- ...baseVault,
79
- decimals: 18,
80
- asset: { ...baseVault.asset, decimals: 6 },
81
- };
82
- const result = mapVaultToSimulationFormat(vault18_6, BigInt('1000000000'));
83
- expect(result.decimals).toBe(18);
84
- expect(result.underlyingDecimals).toBe(6);
85
- // Decimals offset = 18 - 6 = 12 (calculated by SDK)
86
- });
87
- it('should handle equal decimals (offset = 0)', () => {
88
- const vault18_18 = {
89
- ...baseVault,
90
- decimals: 18,
91
- asset: { ...baseVault.asset, decimals: 18 },
92
- };
93
- const result = mapVaultToSimulationFormat(vault18_18, BigInt('1000000000'));
94
- expect(result.decimals).toBe(18);
95
- expect(result.underlyingDecimals).toBe(18);
96
- // Decimals offset = 0
97
- });
98
- });
99
- describe('constructSimulationInput', () => {
100
- const baseVault = {
101
- address: '0x1234567890123456789012345678901234567890',
102
- name: 'Test Vault',
103
- symbol: 'TEST',
104
- decimals: 18,
105
- asset: {
106
- address: '0xabcdef1234567890abcdef1234567890abcdef12',
107
- symbol: 'USDC',
108
- name: 'USD Coin',
109
- decimals: 6,
110
- },
111
- state: {
112
- totalSupply: '1000000000000000000',
113
- totalAssets: '1000000000',
114
- highWaterMark: '1000000000',
115
- lastFeeTime: '1700000000',
116
- managementFee: '200',
117
- performanceFee: '1000',
118
- version: 'v1',
119
- safeAssetBalance: '500000000',
120
- pendingSiloBalances: {
121
- assets: '100000000',
122
- shares: '100000000000000000',
123
- },
124
- pendingSettlement: {
125
- assets: '50000000',
126
- shares: '50000000000000000',
127
- },
128
- },
129
- chainId: 42161,
130
- tvl: 1000,
131
- };
132
- it('should construct complete simulation input', () => {
133
- const newTotalAssets = BigInt('2000000000');
134
- const aprData = {
135
- thirtyDay: {
136
- timestamp: 1700000000,
137
- pricePerShare: BigInt('1050000'),
138
- },
139
- inception: {
140
- timestamp: 1690000000,
141
- pricePerShare: BigInt('1000000'),
142
- },
143
- };
144
- const result = constructSimulationInput(baseVault, newTotalAssets, aprData, true);
145
- expect(result).toEqual({
146
- totalAssetsForSimulation: BigInt('2000000000'),
147
- assetsInSafe: BigInt('500000000'),
148
- pendingSiloBalances: {
149
- assets: BigInt('100000000'),
150
- shares: BigInt('100000000000000000'),
151
- },
152
- pendingSettlement: {
153
- assets: BigInt('50000000'),
154
- shares: BigInt('50000000000000000'),
155
- },
156
- settleDeposit: true,
157
- inception: aprData.inception,
158
- thirtyDay: aprData.thirtyDay,
159
- });
160
- });
161
- it('should handle missing APR data', () => {
162
- const newTotalAssets = BigInt('2000000000');
163
- const result = constructSimulationInput(baseVault, newTotalAssets);
164
- expect(result.inception).toBeUndefined();
165
- expect(result.thirtyDay).toBeUndefined();
166
- expect(result.settleDeposit).toBe(true); // Default
167
- });
168
- it('should handle settleDeposit=false', () => {
169
- const newTotalAssets = BigInt('2000000000');
170
- const result = constructSimulationInput(baseVault, newTotalAssets, undefined, false);
171
- expect(result.settleDeposit).toBe(false);
172
- });
173
- it('should use safe defaults for missing optional fields', () => {
174
- const minimalVault = {
175
- ...baseVault,
176
- state: {
177
- ...baseVault.state,
178
- safeAssetBalance: undefined,
179
- pendingSiloBalances: undefined,
180
- pendingSettlement: undefined,
181
- },
182
- };
183
- const newTotalAssets = BigInt('1000000000');
184
- const result = constructSimulationInput(minimalVault, newTotalAssets);
185
- expect(result.assetsInSafe).toBe(BigInt('0'));
186
- expect(result.pendingSiloBalances.assets).toBe(BigInt('0'));
187
- expect(result.pendingSiloBalances.shares).toBe(BigInt('0'));
188
- expect(result.pendingSettlement.assets).toBe(BigInt('0'));
189
- expect(result.pendingSettlement.shares).toBe(BigInt('0'));
190
- });
191
- it('should handle partial pending balances', () => {
192
- const partialVault = {
193
- ...baseVault,
194
- state: {
195
- ...baseVault.state,
196
- pendingSiloBalances: {
197
- assets: '100000000',
198
- shares: undefined,
199
- },
200
- pendingSettlement: {
201
- assets: undefined,
202
- shares: '50000000000000000',
203
- },
204
- },
205
- };
206
- const newTotalAssets = BigInt('1000000000');
207
- const result = constructSimulationInput(partialVault, newTotalAssets);
208
- expect(result.pendingSiloBalances.assets).toBe(BigInt('100000000'));
209
- expect(result.pendingSiloBalances.shares).toBe(BigInt('0'));
210
- expect(result.pendingSettlement.assets).toBe(BigInt('0'));
211
- expect(result.pendingSettlement.shares).toBe(BigInt('50000000000000000'));
212
- });
213
- });
214
- describe('simulateVaultManagement', () => {
215
- const baseVault = {
216
- address: '0x1234567890123456789012345678901234567890',
217
- name: 'Test Vault',
218
- symbol: 'TEST',
219
- decimals: 18,
220
- asset: {
221
- address: '0xabcdef1234567890abcdef1234567890abcdef12',
222
- symbol: 'USDC',
223
- name: 'USD Coin',
224
- decimals: 6,
225
- },
226
- state: {
227
- totalSupply: '1000000000000000000',
228
- totalAssets: '1000000000',
229
- highWaterMark: '1000000000',
230
- lastFeeTime: '1700000000',
231
- managementFee: '200',
232
- performanceFee: '1000',
233
- version: 'v1',
234
- safeAssetBalance: '500000000',
235
- pendingSiloBalances: {
236
- assets: '100000000',
237
- shares: '100000000000000000',
238
- },
239
- pendingSettlement: {
240
- assets: '50000000',
241
- shares: '50000000000000000',
242
- },
243
- },
244
- chainId: 42161,
245
- tvl: 1000,
246
- };
247
- beforeEach(() => {
248
- vi.clearAllMocks();
249
- });
250
- it('should successfully simulate deposit scenario', async () => {
251
- const mockResult = {
252
- totalSupply: BigInt('2000000000000000000'),
253
- totalAssets: BigInt('2000000000'),
254
- feesAccrued: BigInt('10000000'),
255
- pricePerShare: BigInt('1000000'),
256
- };
257
- vi.mocked(simulate).mockReturnValue(mockResult);
258
- const newTotalAssets = BigInt('2000000000');
259
- const result = await simulateVaultManagement(baseVault, newTotalAssets);
260
- expect(result).toEqual(mockResult);
261
- expect(simulate).toHaveBeenCalledTimes(1);
262
- });
263
- it('should successfully simulate withdrawal scenario', async () => {
264
- const mockResult = {
265
- totalSupply: BigInt('500000000000000000'),
266
- totalAssets: BigInt('500000000'),
267
- feesAccrued: BigInt('5000000'),
268
- pricePerShare: BigInt('1000000'),
269
- };
270
- vi.mocked(simulate).mockReturnValue(mockResult);
271
- const newTotalAssets = BigInt('500000000'); // Withdrawal
272
- const result = await simulateVaultManagement(baseVault, newTotalAssets);
273
- expect(result).toEqual(mockResult);
274
- expect(simulate).toHaveBeenCalledTimes(1);
275
- });
276
- it('should integrate APR data when provided', async () => {
277
- const mockResult = {
278
- totalSupply: BigInt('2000000000000000000'),
279
- totalAssets: BigInt('2000000000'),
280
- feesAccrued: BigInt('10000000'),
281
- pricePerShare: BigInt('1000000'),
282
- };
283
- vi.mocked(simulate).mockReturnValue(mockResult);
284
- const aprData = {
285
- thirtyDay: {
286
- timestamp: 1700000000,
287
- pricePerShare: BigInt('1050000'),
288
- },
289
- inception: {
290
- timestamp: 1690000000,
291
- pricePerShare: BigInt('1000000'),
292
- },
293
- };
294
- const newTotalAssets = BigInt('2000000000');
295
- await simulateVaultManagement(baseVault, newTotalAssets, aprData);
296
- expect(simulate).toHaveBeenCalledTimes(1);
297
- const callArgs = vi.mocked(simulate).mock.calls[0];
298
- expect(callArgs[1].inception).toBeDefined();
299
- expect(callArgs[1].thirtyDay).toBeDefined();
300
- });
301
- it('should throw error for missing vault data', async () => {
302
- await expect(simulateVaultManagement(null, BigInt('1000000000'))).rejects.toThrow('Vault data is required for simulation');
303
- });
304
- it('should throw error for zero newTotalAssets', async () => {
305
- await expect(simulateVaultManagement(baseVault, BigInt('0'))).rejects.toThrow('New total assets must be positive');
306
- });
307
- it('should throw error for negative newTotalAssets', async () => {
308
- await expect(simulateVaultManagement(baseVault, BigInt('-1000000000'))).rejects.toThrow('New total assets must be positive');
309
- });
310
- it('should handle SDK simulation failure', async () => {
311
- vi.mocked(simulate).mockImplementation(() => {
312
- throw new Error('SDK internal error');
313
- });
314
- const newTotalAssets = BigInt('2000000000');
315
- await expect(simulateVaultManagement(baseVault, newTotalAssets)).rejects.toThrow('Simulation failed: SDK internal error');
316
- });
317
- it('should handle new vault with zero supply', async () => {
318
- const newVault = {
319
- ...baseVault,
320
- state: {
321
- ...baseVault.state,
322
- totalSupply: '0',
323
- totalAssets: '0',
324
- },
325
- };
326
- const mockResult = {
327
- totalSupply: BigInt('1000000000000000000'),
328
- totalAssets: BigInt('1000000000'),
329
- feesAccrued: BigInt('0'),
330
- pricePerShare: BigInt('1000000'),
331
- };
332
- vi.mocked(simulate).mockReturnValue(mockResult);
333
- const newTotalAssets = BigInt('1000000000');
334
- const result = await simulateVaultManagement(newVault, newTotalAssets);
335
- expect(result).toEqual(mockResult);
336
- });
337
- it('should handle vault with high fees', async () => {
338
- const highFeeVault = {
339
- ...baseVault,
340
- state: {
341
- ...baseVault.state,
342
- managementFee: '2000', // 20%
343
- performanceFee: '3000', // 30%
344
- },
345
- };
346
- const mockResult = {
347
- totalSupply: BigInt('2000000000000000000'),
348
- totalAssets: BigInt('2000000000'),
349
- feesAccrued: BigInt('50000000'),
350
- pricePerShare: BigInt('1000000'),
351
- };
352
- vi.mocked(simulate).mockReturnValue(mockResult);
353
- const newTotalAssets = BigInt('2000000000');
354
- const result = await simulateVaultManagement(highFeeVault, newTotalAssets);
355
- expect(result).toEqual(mockResult);
356
- expect(result.feesAccrued).toBeGreaterThan(BigInt('0'));
357
- });
358
- it('should respect settleDeposit=false parameter', async () => {
359
- const mockResult = {
360
- totalSupply: BigInt('2000000000000000000'),
361
- totalAssets: BigInt('2000000000'),
362
- feesAccrued: BigInt('10000000'),
363
- pricePerShare: BigInt('1000000'),
364
- };
365
- vi.mocked(simulate).mockReturnValue(mockResult);
366
- const newTotalAssets = BigInt('2000000000');
367
- await simulateVaultManagement(baseVault, newTotalAssets, undefined, false);
368
- expect(simulate).toHaveBeenCalledTimes(1);
369
- const callArgs = vi.mocked(simulate).mock.calls[0];
370
- expect(callArgs[1].settleDeposit).toBe(false);
371
- });
372
- it('should handle large deposit (>50% TVL)', async () => {
373
- const mockResult = {
374
- totalSupply: BigInt('3000000000000000000'),
375
- totalAssets: BigInt('3000000000'),
376
- feesAccrued: BigInt('15000000'),
377
- pricePerShare: BigInt('1000000'),
378
- };
379
- vi.mocked(simulate).mockReturnValue(mockResult);
380
- const newTotalAssets = BigInt('3000000000'); // +200% increase
381
- const result = await simulateVaultManagement(baseVault, newTotalAssets);
382
- expect(result).toEqual(mockResult);
383
- });
384
- it('should handle large withdrawal (>50% TVL)', async () => {
385
- const mockResult = {
386
- totalSupply: BigInt('200000000000000000'),
387
- totalAssets: BigInt('200000000'),
388
- feesAccrued: BigInt('2000000'),
389
- pricePerShare: BigInt('1000000'),
390
- };
391
- vi.mocked(simulate).mockReturnValue(mockResult);
392
- const newTotalAssets = BigInt('200000000'); // -80% decrease
393
- const result = await simulateVaultManagement(baseVault, newTotalAssets);
394
- expect(result).toEqual(mockResult);
395
- });
396
- });
397
- //# sourceMappingURL=simulation-service.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulation-service.test.js","sourceRoot":"","sources":["../../../src/sdk/__tests__/simulation-service.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Vault Utilities Test Suite
3
- *
4
- * Comprehensive tests for SDK VaultUtils wrappers and conversion functions.
5
- */
6
- export {};
7
- //# sourceMappingURL=vault-utils.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault-utils.test.d.ts","sourceRoot":"","sources":["../../../src/sdk/__tests__/vault-utils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -1,189 +0,0 @@
1
- /**
2
- * Vault Utilities Test Suite
3
- *
4
- * Comprehensive tests for SDK VaultUtils wrappers and conversion functions.
5
- */
6
- import { describe, it, expect } from 'vitest';
7
- import { calculatePricePerShare, convertSharesToAssets, convertAssetsToShares, buildVaultState, } from '../vault-utils.js';
8
- describe('calculatePricePerShare', () => {
9
- it('should calculate price per share for USDC vault (6 decimals)', () => {
10
- // Vault with 1000 USDC and 950 shares
11
- const pricePerShare = calculatePricePerShare(1000000000n, // 1000 USDC (6 decimals)
12
- 950000000000000000000n, // 950 shares (18 decimals)
13
- 18, 6);
14
- // Expect ~1.052631 USDC per share
15
- expect(pricePerShare).toBeGreaterThan(1050000n);
16
- expect(pricePerShare).toBeLessThan(1060000n);
17
- });
18
- it('should calculate price per share for ETH vault (18 decimals)', () => {
19
- // Vault with 10 ETH and 9.5 shares
20
- const pricePerShare = calculatePricePerShare(10000000000000000000n, // 10 ETH (18 decimals)
21
- 9500000000000000000n, // 9.5 shares (18 decimals)
22
- 18, 18);
23
- // Expect ~1.052631 ETH per share
24
- expect(pricePerShare).toBeGreaterThan(1050000000000000000n);
25
- expect(pricePerShare).toBeLessThan(1060000000000000000n);
26
- });
27
- it('should handle 1:1 ratio for new vaults', () => {
28
- // New vault: first deposit
29
- const pricePerShare = calculatePricePerShare(1000000n, // 1 USDC
30
- 1000000000000000000n, // 1 share
31
- 18, 6);
32
- expect(pricePerShare).toBe(1000000n); // 1:1 ratio
33
- });
34
- it('should handle zero total supply gracefully', () => {
35
- // Empty vault - should fallback to 1:1
36
- const pricePerShare = calculatePricePerShare(0n, 0n, 18, 6);
37
- expect(pricePerShare).toBe(1000000n); // Fallback 1:1 ratio
38
- });
39
- it('should throw on negative decimals', () => {
40
- expect(() => calculatePricePerShare(1000000n, 1000000000000000000n, -1, 6)).toThrow('Decimals must be non-negative');
41
- expect(() => calculatePricePerShare(1000000n, 1000000000000000000n, 18, -1)).toThrow('Decimals must be non-negative');
42
- });
43
- });
44
- describe('convertSharesToAssets', () => {
45
- it('should convert shares to USDC assets', () => {
46
- // Convert 10 shares to USDC
47
- const assets = convertSharesToAssets(10000000000000000000n, // 10 shares (18 decimals)
48
- 1000000000n, // 1000 USDC total (6 decimals)
49
- 950000000000000000000n, // 950 shares total (18 decimals)
50
- 12 // 18 - 6
51
- );
52
- // Expect ~10.526315 USDC
53
- expect(assets).toBeGreaterThan(10500000n);
54
- expect(assets).toBeLessThan(10600000n);
55
- });
56
- it('should convert shares to ETH assets', () => {
57
- // Convert 1 share to ETH
58
- const assets = convertSharesToAssets(1000000000000000000n, // 1 share (18 decimals)
59
- 10000000000000000000n, // 10 ETH total (18 decimals)
60
- 9500000000000000000n, // 9.5 shares total (18 decimals)
61
- 0 // 18 - 18
62
- );
63
- // Expect ~1.052631 ETH
64
- expect(assets).toBeGreaterThan(1050000000000000000n);
65
- expect(assets).toBeLessThan(1060000000000000000n);
66
- });
67
- it('should handle zero shares', () => {
68
- const assets = convertSharesToAssets(0n, 1000000000n, 950000000000000000000n, 12);
69
- expect(assets).toBe(0n);
70
- });
71
- it('should respect rounding mode', () => {
72
- const shares = 10000000000000000000n;
73
- const totalAssets = 1000000001n; // Odd number to force rounding
74
- const totalSupply = 950000000000000000000n;
75
- const roundDown = convertSharesToAssets(shares, totalAssets, totalSupply, 12, 'Down');
76
- const roundUp = convertSharesToAssets(shares, totalAssets, totalSupply, 12, 'Up');
77
- expect(roundUp).toBeGreaterThanOrEqual(roundDown);
78
- });
79
- it('should throw on negative values', () => {
80
- expect(() => convertSharesToAssets(-1n, 1000000000n, 950000000000000000000n, 12)).toThrow('Values must be non-negative');
81
- });
82
- });
83
- describe('convertAssetsToShares', () => {
84
- it('should convert USDC assets to shares', () => {
85
- // Convert 100 USDC to shares
86
- const shares = convertAssetsToShares(100000000n, // 100 USDC (6 decimals)
87
- 1000000000n, // 1000 USDC total (6 decimals)
88
- 950000000000000000000n, // 950 shares total (18 decimals)
89
- 12 // 18 - 6
90
- );
91
- // Expect ~95 shares (rounded up for safety)
92
- expect(shares).toBeGreaterThan(94000000000000000000n);
93
- expect(shares).toBeLessThan(96000000000000000000n);
94
- });
95
- it('should convert ETH assets to shares', () => {
96
- // Convert 1 ETH to shares
97
- const shares = convertAssetsToShares(1000000000000000000n, // 1 ETH (18 decimals)
98
- 10000000000000000000n, // 10 ETH total (18 decimals)
99
- 9500000000000000000n, // 9.5 shares total (18 decimals)
100
- 0 // 18 - 18
101
- );
102
- // Expect ~0.95 shares
103
- expect(shares).toBeGreaterThan(940000000000000000n);
104
- expect(shares).toBeLessThan(960000000000000000n);
105
- });
106
- it('should handle zero assets', () => {
107
- const shares = convertAssetsToShares(0n, 1000000000n, 950000000000000000000n, 12);
108
- expect(shares).toBe(0n);
109
- });
110
- it('should respect rounding mode', () => {
111
- const assets = 100000001n; // Odd number to force rounding
112
- const totalAssets = 1000000000n;
113
- const totalSupply = 950000000000000000000n;
114
- const roundDown = convertAssetsToShares(assets, totalAssets, totalSupply, 12, 'Down');
115
- const roundUp = convertAssetsToShares(assets, totalAssets, totalSupply, 12, 'Up');
116
- expect(roundUp).toBeGreaterThanOrEqual(roundDown);
117
- });
118
- it('should throw on negative values', () => {
119
- expect(() => convertAssetsToShares(-1n, 1000000000n, 950000000000000000000n, 12)).toThrow('Values must be non-negative');
120
- });
121
- });
122
- describe('buildVaultState', () => {
123
- it('should build vault state from bigint values', () => {
124
- const state = buildVaultState(1000000000n, 950000000000000000000n, 18, 6);
125
- expect(state.totalAssets).toBe(1000000000n);
126
- expect(state.totalSupply).toBe(950000000000000000000n);
127
- expect(state.decimalsOffset).toBe(12n);
128
- });
129
- it('should build vault state from string values', () => {
130
- const state = buildVaultState('1000000000', '950000000000000000000', 18, 6);
131
- expect(state.totalAssets).toBe(1000000000n);
132
- expect(state.totalSupply).toBe(950000000000000000000n);
133
- expect(state.decimalsOffset).toBe(12n);
134
- });
135
- it('should handle mixed types', () => {
136
- const state = buildVaultState(1000000000n, '950000000000000000000', 18, 6);
137
- expect(state.totalAssets).toBe(1000000000n);
138
- expect(state.totalSupply).toBe(950000000000000000000n);
139
- });
140
- it('should handle zero decimals offset', () => {
141
- const state = buildVaultState(1000000000000000000n, 950000000000000000n, 18, 18);
142
- expect(state.decimalsOffset).toBe(0n);
143
- });
144
- it('should handle negative decimals offset', () => {
145
- // Rare case: asset has more decimals than vault
146
- const state = buildVaultState(1000000000000000000n, 950000000n, 6, 18);
147
- expect(state.decimalsOffset).toBe(-12n);
148
- });
149
- it('should throw on negative values', () => {
150
- expect(() => buildVaultState(-1n, 950000000000000000000n, 18, 6)).toThrow('Vault state values must be non-negative');
151
- expect(() => buildVaultState(1000000000n, -1n, 18, 6)).toThrow('Vault state values must be non-negative');
152
- });
153
- it('should throw on negative decimals', () => {
154
- expect(() => buildVaultState(1000000000n, 950000000000000000000n, -1, 6)).toThrow('Decimals must be non-negative');
155
- expect(() => buildVaultState(1000000000n, 950000000000000000000n, 18, -1)).toThrow('Decimals must be non-negative');
156
- });
157
- });
158
- describe('Integration: Full conversion flow', () => {
159
- it('should perform round-trip conversion (assets → shares → assets)', () => {
160
- const originalAssets = 100000000n; // 100 USDC
161
- const totalAssets = 1000000000n;
162
- const totalSupply = 950000000000000000000n;
163
- const decimalsOffset = 12;
164
- // Convert assets to shares
165
- const shares = convertAssetsToShares(originalAssets, totalAssets, totalSupply, decimalsOffset, 'Up');
166
- // Convert shares back to assets
167
- const finalAssets = convertSharesToAssets(shares, totalAssets, totalSupply, decimalsOffset, 'Down');
168
- // Should be approximately equal (within rounding tolerance)
169
- const diff = originalAssets > finalAssets ? originalAssets - finalAssets : finalAssets - originalAssets;
170
- expect(diff).toBeLessThan(100n); // Less than 0.0001 USDC difference
171
- });
172
- it('should maintain consistency across decimal scales', () => {
173
- // Test with USDC (6 decimals)
174
- const usdcState = buildVaultState(1000000000n, 950000000000000000000n, 18, 6);
175
- const usdcPrice = calculatePricePerShare(usdcState.totalAssets, usdcState.totalSupply, 18, 6);
176
- // Test with ETH (18 decimals, same ratio)
177
- const ethState = buildVaultState(1000000000000000000000n, // 1000 ETH
178
- 950000000000000000000n, // 950 shares
179
- 18, 18);
180
- const ethPrice = calculatePricePerShare(ethState.totalAssets, ethState.totalSupply, 18, 18);
181
- // Prices should have same ratio despite different decimals
182
- // USDC: ~1.052631 (6 decimals) = 1052631
183
- // ETH: ~1.052631 (18 decimals) = 1052631578947368421
184
- const usdcRatio = (usdcPrice * 1000000n) / 1000000n; // Normalize to integer
185
- const ethRatio = (ethPrice * 1000000n) / 1000000000000000000n; // Normalize to integer
186
- expect(usdcRatio).toBe(ethRatio);
187
- });
188
- });
189
- //# sourceMappingURL=vault-utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vault-utils.test.js","sourceRoot":"","sources":["../../../src/sdk/__tests__/vault-utils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAE3B,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,sCAAsC;QACtC,MAAM,aAAa,GAAG,sBAAsB,CAC1C,WAAW,EAAE,yBAAyB;QACtC,sBAAsB,EAAE,2BAA2B;QACnD,EAAE,EACF,CAAC,CACF,CAAC;QAEF,kCAAkC;QAClC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,mCAAmC;QACnC,MAAM,aAAa,GAAG,sBAAsB,CAC1C,qBAAqB,EAAE,uBAAuB;QAC9C,oBAAoB,EAAE,2BAA2B;QACjD,EAAE,EACF,EAAE,CACH,CAAC;QAEF,iCAAiC;QACjC,MAAM,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAC5D,MAAM,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,2BAA2B;QAC3B,MAAM,aAAa,GAAG,sBAAsB,CAC1C,QAAQ,EAAE,SAAS;QACnB,oBAAoB,EAAE,UAAU;QAChC,EAAE,EACF,CAAC,CACF,CAAC;QAEF,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,uCAAuC;QACvC,MAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5D,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACjF,+BAA+B,CAChC,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAClF,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,4BAA4B;QAC5B,MAAM,MAAM,GAAG,qBAAqB,CAClC,qBAAqB,EAAE,0BAA0B;QACjD,WAAW,EAAE,+BAA+B;QAC5C,sBAAsB,EAAE,iCAAiC;QACzD,EAAE,CAAC,SAAS;SACb,CAAC;QAEF,yBAAyB;QACzB,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,yBAAyB;QACzB,MAAM,MAAM,GAAG,qBAAqB,CAClC,oBAAoB,EAAE,wBAAwB;QAC9C,qBAAqB,EAAE,6BAA6B;QACpD,oBAAoB,EAAE,iCAAiC;QACvD,CAAC,CAAC,UAAU;SACb,CAAC;QAEF,uBAAuB;QACvB,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAElF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACrC,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,+BAA+B;QAChE,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAE3C,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAElF,MAAM,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CACvF,6BAA6B,CAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,6BAA6B;QAC7B,MAAM,MAAM,GAAG,qBAAqB,CAClC,UAAU,EAAE,wBAAwB;QACpC,WAAW,EAAE,+BAA+B;QAC5C,sBAAsB,EAAE,iCAAiC;QACzD,EAAE,CAAC,SAAS;SACb,CAAC;QAEF,4CAA4C;QAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,qBAAqB,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,0BAA0B;QAC1B,MAAM,MAAM,GAAG,qBAAqB,CAClC,oBAAoB,EAAE,sBAAsB;QAC5C,qBAAqB,EAAE,6BAA6B;QACpD,oBAAoB,EAAE,iCAAiC;QACvD,CAAC,CAAC,UAAU;SACb,CAAC;QAEF,sBAAsB;QACtB,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,qBAAqB,CAAC,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC;QAElF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,+BAA+B;QAC1D,MAAM,WAAW,GAAG,WAAW,CAAC;QAChC,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAE3C,MAAM,SAAS,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,OAAO,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAElF,MAAM,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CACvF,6BAA6B,CAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE1E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,KAAK,GAAG,eAAe,CAAC,YAAY,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE5E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,EAAE,uBAAuB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE3E,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,eAAe,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAEjF,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,gDAAgD;QAChD,MAAM,KAAK,GAAG,eAAe,CAAC,oBAAoB,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACvE,yCAAyC,CAC1C,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC5D,yCAAyC,CAC1C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAC/E,+BAA+B,CAChC,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAChF,+BAA+B,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,WAAW;QAC9C,MAAM,WAAW,GAAG,WAAW,CAAC;QAChC,MAAM,WAAW,GAAG,sBAAsB,CAAC;QAC3C,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B,2BAA2B;QAC3B,MAAM,MAAM,GAAG,qBAAqB,CAClC,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,EACd,IAAI,CACL,CAAC;QAEF,gCAAgC;QAChC,MAAM,WAAW,GAAG,qBAAqB,CACvC,MAAM,EACN,WAAW,EACX,WAAW,EACX,cAAc,EACd,MAAM,CACP,CAAC;QAEF,4DAA4D;QAC5D,MAAM,IAAI,GACR,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,GAAG,cAAc,CAAC;QAE7F,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,mCAAmC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,8BAA8B;QAC9B,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,EAAE,sBAAsB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9E,MAAM,SAAS,GAAG,sBAAsB,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9F,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAC9B,uBAAuB,EAAE,WAAW;QACpC,sBAAsB,EAAE,aAAa;QACrC,EAAE,EACF,EAAE,CACH,CAAC;QAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAE5F,2DAA2D;QAC3D,yCAAyC;QACzC,qDAAqD;QACrD,MAAM,SAAS,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,uBAAuB;QAC5E,MAAM,QAAQ,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,oBAAoB,CAAC,CAAC,uBAAuB;QAEtF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Tests for simulate-vault tool
3
- */
4
- export {};
5
- //# sourceMappingURL=simulate-vault.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulate-vault.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/simulate-vault.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}