@lagoon-protocol/lagoon-mcp 0.1.0 → 0.1.2
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/dist/graphql/fragments/vault.fragment.d.ts +4 -1
- package/dist/graphql/fragments/vault.fragment.d.ts.map +1 -1
- package/dist/graphql/fragments/vault.fragment.js +3 -0
- package/dist/graphql/fragments/vault.fragment.js.map +1 -1
- package/dist/graphql/queries/export.queries.d.ts +1 -1
- package/dist/graphql/queries/export.queries.d.ts.map +1 -1
- package/dist/graphql/queries/portfolio.queries.d.ts +2 -2
- package/dist/graphql/queries/portfolio.queries.d.ts.map +1 -1
- package/dist/graphql/queries/risk.queries.d.ts +1 -1
- package/dist/graphql/queries/risk.queries.d.ts.map +1 -1
- package/dist/graphql/queries/vault.queries.d.ts +3 -3
- package/dist/graphql/queries/vault.queries.d.ts.map +1 -1
- package/dist/sdk/apr-service.d.ts +1 -2
- package/dist/sdk/apr-service.d.ts.map +1 -1
- package/dist/sdk/apr-service.js.map +1 -1
- package/dist/tools/optimize-portfolio.js +2 -2
- package/dist/tools/optimize-portfolio.js.map +1 -1
- package/dist/types/generated.d.ts +60 -40
- package/dist/types/generated.d.ts.map +1 -1
- package/dist/utils/validators.d.ts +3 -3
- package/dist/utils/validators.d.ts.map +1 -1
- package/dist/utils/validators.js +1 -0
- package/dist/utils/validators.js.map +1 -1
- package/package.json +1 -1
- package/dist/graphql/fragments.d.ts +0 -183
- package/dist/graphql/fragments.d.ts.map +0 -1
- package/dist/graphql/fragments.js +0 -297
- package/dist/graphql/fragments.js.map +0 -1
- package/dist/graphql/queries/period-summaries.d.ts +0 -15
- package/dist/graphql/queries/period-summaries.d.ts.map +0 -1
- package/dist/graphql/queries/period-summaries.js +0 -24
- package/dist/graphql/queries/period-summaries.js.map +0 -1
- package/dist/sdk/__tests__/apr-service.test.d.ts +0 -7
- package/dist/sdk/__tests__/apr-service.test.d.ts.map +0 -1
- package/dist/sdk/__tests__/apr-service.test.js +0 -385
- package/dist/sdk/__tests__/apr-service.test.js.map +0 -1
- package/dist/sdk/__tests__/math-utils.test.d.ts +0 -7
- package/dist/sdk/__tests__/math-utils.test.d.ts.map +0 -1
- package/dist/sdk/__tests__/math-utils.test.js +0 -185
- package/dist/sdk/__tests__/math-utils.test.js.map +0 -1
- package/dist/sdk/__tests__/simulation-service.test.d.ts +0 -5
- package/dist/sdk/__tests__/simulation-service.test.d.ts.map +0 -1
- package/dist/sdk/__tests__/simulation-service.test.js +0 -397
- package/dist/sdk/__tests__/simulation-service.test.js.map +0 -1
- package/dist/sdk/__tests__/vault-utils.test.d.ts +0 -7
- package/dist/sdk/__tests__/vault-utils.test.d.ts.map +0 -1
- package/dist/sdk/__tests__/vault-utils.test.js +0 -189
- package/dist/sdk/__tests__/vault-utils.test.js.map +0 -1
- package/dist/tools/__tests__/simulate-vault.test.d.ts +0 -5
- package/dist/tools/__tests__/simulate-vault.test.d.ts.map +0 -1
- package/dist/tools/__tests__/simulate-vault.test.js +0 -363
- package/dist/tools/__tests__/simulate-vault.test.js.map +0 -1
- package/dist/tools/index.d.ts +0 -26
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -32
- package/dist/tools/index.js.map +0 -1
|
@@ -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 +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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"simulate-vault.test.d.ts","sourceRoot":"","sources":["../../../src/tools/__tests__/simulate-vault.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|