@steerprotocol/sdk 1.3.0 → 1.4.0

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 (58) hide show
  1. package/README.md +54 -0
  2. package/dist/cjs/base/VaultClient.js +57 -118
  3. package/dist/cjs/base/VaultClient.js.map +1 -1
  4. package/dist/cjs/base/vault/deposit/index.js +484 -0
  5. package/dist/cjs/base/vault/deposit/index.js.map +1 -0
  6. package/dist/cjs/base/vault/deposit/types.js +3 -0
  7. package/dist/cjs/base/vault/deposit/types.js.map +1 -0
  8. package/dist/cjs/base/vault/utils.js +432 -0
  9. package/dist/cjs/base/vault/utils.js.map +1 -0
  10. package/dist/cjs/base/vault/withdraw/index.js +155 -0
  11. package/dist/cjs/base/vault/withdraw/index.js.map +1 -0
  12. package/dist/cjs/base/vault/withdraw/types.js +3 -0
  13. package/dist/cjs/base/vault/withdraw/types.js.map +1 -0
  14. package/dist/cjs/const/chain.js +96 -0
  15. package/dist/cjs/const/chain.js.map +1 -0
  16. package/dist/cjs/const/network.js +801 -0
  17. package/dist/cjs/const/network.js.map +1 -0
  18. package/dist/cjs/const/protocol.js +55 -0
  19. package/dist/cjs/const/protocol.js.map +1 -0
  20. package/dist/esm/base/VaultClient.js +57 -118
  21. package/dist/esm/base/VaultClient.js.map +1 -1
  22. package/dist/esm/base/vault/deposit/index.js +480 -0
  23. package/dist/esm/base/vault/deposit/index.js.map +1 -0
  24. package/dist/esm/base/vault/deposit/types.js +2 -0
  25. package/dist/esm/base/vault/deposit/types.js.map +1 -0
  26. package/dist/esm/base/vault/utils.js +425 -0
  27. package/dist/esm/base/vault/utils.js.map +1 -0
  28. package/dist/esm/base/vault/withdraw/index.js +151 -0
  29. package/dist/esm/base/vault/withdraw/index.js.map +1 -0
  30. package/dist/esm/base/vault/withdraw/types.js +2 -0
  31. package/dist/esm/base/vault/withdraw/types.js.map +1 -0
  32. package/dist/esm/const/chain.js +93 -0
  33. package/dist/esm/const/chain.js.map +1 -0
  34. package/dist/esm/const/network.js +797 -0
  35. package/dist/esm/const/network.js.map +1 -0
  36. package/dist/esm/const/protocol.js +47 -0
  37. package/dist/esm/const/protocol.js.map +1 -0
  38. package/dist/types/base/VaultClient.d.ts +81 -16
  39. package/dist/types/base/VaultClient.d.ts.map +1 -1
  40. package/dist/types/base/vault/deposit/index.d.ts +74 -0
  41. package/dist/types/base/vault/deposit/index.d.ts.map +1 -0
  42. package/dist/types/base/vault/deposit/types.d.ts +42 -0
  43. package/dist/types/base/vault/deposit/types.d.ts.map +1 -0
  44. package/dist/types/base/vault/utils.d.ts +26 -0
  45. package/dist/types/base/vault/utils.d.ts.map +1 -0
  46. package/dist/types/base/vault/withdraw/index.d.ts +45 -0
  47. package/dist/types/base/vault/withdraw/index.d.ts.map +1 -0
  48. package/dist/types/base/vault/withdraw/types.d.ts +13 -0
  49. package/dist/types/base/vault/withdraw/types.d.ts.map +1 -0
  50. package/dist/types/const/chain.d.ts +88 -0
  51. package/dist/types/const/chain.d.ts.map +1 -0
  52. package/dist/types/const/network.d.ts +26 -0
  53. package/dist/types/const/network.d.ts.map +1 -0
  54. package/dist/types/const/protocol.d.ts +12 -0
  55. package/dist/types/const/protocol.d.ts.map +1 -0
  56. package/dist/types/types.d.ts +101 -1
  57. package/dist/types/types.d.ts.map +1 -1
  58. package/package.json +14 -13
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VaultDepositClient = void 0;
4
+ const sdk_core_1 = require("@uniswap/sdk-core");
5
+ const v3_sdk_1 = require("@uniswap/v3-sdk");
6
+ const decimal_js_1 = require("decimal.js");
7
+ const UniswapPool_1 = require("../../../const/abis/UniswapPool");
8
+ const abis_1 = require("../../../const/deployments/abis");
9
+ const network_1 = require("../../../const/network");
10
+ const protocol_1 = require("../../../const/protocol");
11
+ const utils_1 = require("../utils");
12
+ const VAULT_ABI = abis_1.abis.QuickSwapUniv3MultiPositionLiquidityManager;
13
+ const PERIPHERY_ABI = abis_1.abis.SteerPeriphery;
14
+ class VaultDepositClient {
15
+ constructor(publicClient, walletClient) {
16
+ this.publicClient = publicClient;
17
+ this.walletClient = walletClient;
18
+ }
19
+ /**
20
+ * Deposits tokens into a vault
21
+ * @param params The deposit parameters
22
+ */
23
+ async deposit(params) {
24
+ try {
25
+ const account = await this.walletClient.getAddresses();
26
+ if (!account[0])
27
+ throw new Error('No account found');
28
+ // Calculate min amounts based on slippage
29
+ const amount0Min = params.amount0Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
30
+ const amount1Min = params.amount1Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
31
+ const { request } = await this.publicClient.simulateContract({
32
+ address: params.vaultAddress,
33
+ abi: PERIPHERY_ABI,
34
+ functionName: 'deposit',
35
+ args: [
36
+ params.vaultAddress,
37
+ params.amount0Desired,
38
+ params.amount1Desired,
39
+ amount0Min,
40
+ amount1Min,
41
+ params.to ?? account[0]
42
+ ],
43
+ account: account[0],
44
+ });
45
+ const hash = await this.walletClient.writeContract(request);
46
+ return {
47
+ data: hash,
48
+ status: 200,
49
+ success: true,
50
+ };
51
+ }
52
+ catch (error) {
53
+ return {
54
+ data: null,
55
+ status: 500,
56
+ success: false,
57
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
58
+ };
59
+ }
60
+ }
61
+ /**
62
+ * Prepares the transaction data for depositing tokens into a vault without executing it
63
+ * @param params The deposit parameters
64
+ */
65
+ async prepareDepositTx(params) {
66
+ try {
67
+ const account = await this.walletClient.getAddresses();
68
+ if (!account[0])
69
+ throw new Error('No account found');
70
+ // Calculate min amounts based on slippage
71
+ const amount0Min = params.amount0Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
72
+ const amount1Min = params.amount1Desired * BigInt(Math.floor((1 - params.slippage) * 1000)) / 1000n;
73
+ // Prepare the complete contract interaction data
74
+ return {
75
+ data: {
76
+ address: params.vaultAddress,
77
+ abi: [{
78
+ type: 'function',
79
+ inputs: [
80
+ { name: 'vault', internalType: 'address', type: 'address' },
81
+ { name: 'amount0Desired', internalType: 'uint256', type: 'uint256' },
82
+ { name: 'amount1Desired', internalType: 'uint256', type: 'uint256' },
83
+ { name: 'amount0Min', internalType: 'uint256', type: 'uint256' },
84
+ { name: 'amount1Min', internalType: 'uint256', type: 'uint256' },
85
+ { name: 'to', internalType: 'address', type: 'address' }
86
+ ],
87
+ name: 'deposit',
88
+ outputs: [],
89
+ stateMutability: 'nonpayable'
90
+ }],
91
+ functionName: 'deposit',
92
+ args: [
93
+ params.vaultAddress,
94
+ params.amount0Desired,
95
+ params.amount1Desired,
96
+ amount0Min,
97
+ amount1Min,
98
+ params.to ?? account[0]
99
+ ]
100
+ },
101
+ status: 200,
102
+ success: true
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ data: null,
108
+ status: 500,
109
+ success: false,
110
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
111
+ };
112
+ }
113
+ }
114
+ /**
115
+ * Gets the deposit ratio for a vault
116
+ * @param vaultAddress The vault address
117
+ */
118
+ async getDepositRatio(vaultAddress, zeroForOne) {
119
+ try {
120
+ // Try to get vault details, first attempt with regular vault
121
+ let vaultDetails;
122
+ let isAlgebraVault = false;
123
+ const chainId = await this.publicClient.getChainId();
124
+ const steerPeripheryAddress = (0, network_1.getContractAddressByChainIdAndContractName)(chainId, 'SteerPeriphery');
125
+ if (!steerPeripheryAddress)
126
+ throw new Error('SteerPeriphery address not found');
127
+ try {
128
+ // First try regular vault
129
+ vaultDetails = await this.publicClient.readContract({
130
+ address: steerPeripheryAddress,
131
+ abi: PERIPHERY_ABI,
132
+ functionName: 'vaultDetailsByAddress',
133
+ args: [vaultAddress]
134
+ });
135
+ }
136
+ catch (error) {
137
+ // If regular vault fails, try Algebra vault
138
+ vaultDetails = await this.publicClient.readContract({
139
+ address: steerPeripheryAddress,
140
+ abi: PERIPHERY_ABI,
141
+ functionName: 'algebraVaultDetailsByAddress',
142
+ args: [vaultAddress]
143
+ });
144
+ isAlgebraVault = true;
145
+ }
146
+ const token0Balance = vaultDetails.token0Balance;
147
+ const token1Balance = vaultDetails.token1Balance;
148
+ const token0Decimals = vaultDetails.token0Decimals;
149
+ const token1Decimals = vaultDetails.token1Decimals;
150
+ let ratio;
151
+ // Case 1: No liquidity in the vault
152
+ if (token0Balance === 0n && token1Balance === 0n) {
153
+ // Get pool instance to calculate price
154
+ const chainId = await this.publicClient.getChainId();
155
+ // Get the pool address
156
+ const pool = await this.getPool(vaultAddress);
157
+ if (!pool.data)
158
+ throw new Error('Failed to retrieve pool for ratio calculation');
159
+ // Determine the protocol
160
+ const protocol = (0, utils_1.getProtocolTypeByBeacon)(vaultDetails.vaultType);
161
+ if (!protocol)
162
+ throw new Error('Unsupported protocol type');
163
+ console.log('Protocol detected:', protocol);
164
+ // Get pool instance with the correct protocol type
165
+ const poolInstanceResponse = await this.getPoolInstance({
166
+ vaultAddress,
167
+ chain: { id: chainId },
168
+ isAlgebraPool: (0, protocol_1.isAlgebraProtocol)(protocol),
169
+ isPoolSharkPool: (0, protocol_1.isPoolSharkProtocol)(protocol),
170
+ isAlgebraIntegralPool: (0, protocol_1.isAlgebraIntegralProtocol)(protocol),
171
+ isAlgebraDirectionPool: (0, protocol_1.isAlgebraDirectionProtocol)(protocol),
172
+ });
173
+ if (!poolInstanceResponse.success || !poolInstanceResponse.data) {
174
+ throw new Error('Failed to get pool instance for price calculation');
175
+ }
176
+ const poolInstance = poolInstanceResponse.data;
177
+ // Get price based on zeroForOne
178
+ const price = zeroForOne ?
179
+ poolInstance.priceOf(poolInstance.token0) :
180
+ poolInstance.priceOf(poolInstance.token0).invert();
181
+ // Convert price to string using Decimal for maximum precision
182
+ ratio = price.toSignificant(undefined, undefined, sdk_core_1.Rounding.ROUND_DOWN);
183
+ }
184
+ // Case 2: Vault has liquidity
185
+ else {
186
+ // Convert bigint values to Decimal instances for precise calculation
187
+ // Convert bigints to strings first to avoid type errors
188
+ const token0Bal = new decimal_js_1.Decimal(token0Balance.toString());
189
+ const token1Bal = new decimal_js_1.Decimal(token1Balance.toString());
190
+ const token0Dec = new decimal_js_1.Decimal(10).pow(Number(token1Decimals));
191
+ const token1Dec = new decimal_js_1.Decimal(10).pow(Number(token0Decimals));
192
+ // Calculate adjusted balances
193
+ const token0Adjusted = token0Bal.div(token0Dec);
194
+ const token1Adjusted = token1Bal.div(token1Dec);
195
+ // Calculate ratio based on token balances
196
+ // If zeroForOne is true: ratio = token1/token0
197
+ // If zeroForOne is false: ratio = token0/token1
198
+ ratio = zeroForOne ?
199
+ token1Adjusted.div(token0Adjusted).toString() : // token1/token0 ratio
200
+ token0Adjusted.div(token1Adjusted).toString(); // token0/token1 ratio
201
+ }
202
+ return {
203
+ data: {
204
+ ratio,
205
+ token0Balance,
206
+ token1Balance,
207
+ token0Decimals,
208
+ token1Decimals,
209
+ vaultDetails,
210
+ isAlgebraVault
211
+ },
212
+ status: 200,
213
+ success: true
214
+ };
215
+ }
216
+ catch (error) {
217
+ return {
218
+ data: null,
219
+ status: 500,
220
+ success: false,
221
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
222
+ };
223
+ }
224
+ }
225
+ /**
226
+ * Gets the pool address for a vault
227
+ * @param vaultAddress The vault address
228
+ */
229
+ async getPool(vaultAddress) {
230
+ try {
231
+ const pool = await this.publicClient.readContract({
232
+ address: vaultAddress,
233
+ abi: VAULT_ABI,
234
+ functionName: 'pool',
235
+ });
236
+ return {
237
+ data: pool,
238
+ status: 200,
239
+ success: true,
240
+ };
241
+ }
242
+ catch (error) {
243
+ return {
244
+ data: null,
245
+ status: 500,
246
+ success: false,
247
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
248
+ };
249
+ }
250
+ }
251
+ /**
252
+ * Gets a pool instance for a vault
253
+ * @param params The pool instance parameters
254
+ */
255
+ async getPoolInstance(params) {
256
+ console.log('Fetching pool instance...');
257
+ try {
258
+ const poolData = await this.preparePoolData(params.vaultAddress);
259
+ console.log('Pool data fetched:', poolData);
260
+ if (!poolData.success || !poolData.data) {
261
+ throw new Error('Failed to fetch pool data');
262
+ }
263
+ let slot0Response;
264
+ // Handle different protocol types
265
+ if (params.isAlgebraIntegralPool) {
266
+ // For Algebra Integral pools
267
+ slot0Response = await (0, utils_1.getGlobalStateAlgebraIntegral)(this.publicClient, poolData.data.id, params.isAlgebraDirectionPool);
268
+ }
269
+ else if (params.isPoolSharkPool) {
270
+ // For PoolShark pools
271
+ const poolSharkResponse = await (0, utils_1.getGlobalStatePoolShark)(this.publicClient, poolData.data.id);
272
+ if (poolSharkResponse.success && poolSharkResponse.data) {
273
+ slot0Response = {
274
+ success: true,
275
+ status: 200,
276
+ data: {
277
+ sqrtPriceX96: poolSharkResponse.data.pool.price,
278
+ tick: poolSharkResponse.data.pool.tickAtPrice,
279
+ observationIndex: 0,
280
+ observationCardinality: 0,
281
+ observationCardinalityNext: 0,
282
+ feeProtocol: 0,
283
+ unlocked: poolSharkResponse.data.unlocked === 1,
284
+ }
285
+ };
286
+ }
287
+ else {
288
+ slot0Response = poolSharkResponse;
289
+ }
290
+ }
291
+ if (params.isAlgebraPool) {
292
+ // For Algebra pools
293
+ slot0Response = await (0, utils_1.getGlobalState)(this.publicClient, poolData.data.id, params.isAlgebraDirectionPool);
294
+ }
295
+ else {
296
+ // For standard Uniswap V3 pools
297
+ slot0Response = await (0, utils_1.getSlot0)(this.publicClient, poolData.data.id);
298
+ }
299
+ if (!slot0Response.success || !slot0Response.data) {
300
+ throw new Error('Failed to read pool state');
301
+ }
302
+ const slot0 = slot0Response.data;
303
+ const token0 = new sdk_core_1.Token(params.chain.id, poolData.data.token0.id, Number(poolData.data.token0.decimals), poolData.data.token0.symbol, poolData.data.token0.name);
304
+ const token1 = new sdk_core_1.Token(params.chain.id, poolData.data.token1.id, Number(poolData.data.token1.decimals), poolData.data.token1.symbol, poolData.data.token1.name);
305
+ // Get liquidity
306
+ const liquidity = await this.getPoolLiquidity(poolData.data.id);
307
+ if (!liquidity.success || !liquidity.data) {
308
+ throw new Error('Failed to fetch pool liquidity');
309
+ }
310
+ let price;
311
+ if (params.isAlgebraPool && !params.isAlgebraIntegralPool) {
312
+ price = slot0Response?.data?.price;
313
+ }
314
+ else if (params.isAlgebraIntegralPool) {
315
+ price = slot0Response?.data?.price;
316
+ }
317
+ else if (params.isPoolSharkPool) {
318
+ price = slot0Response?.data?.tick?.price;
319
+ }
320
+ else {
321
+ price = slot0Response?.data?.sqrtPriceX96;
322
+ }
323
+ if (!price) {
324
+ throw new Error('Failed to get pool price');
325
+ }
326
+ return {
327
+ data: new v3_sdk_1.Pool(token0, token1, poolData.data.feeTier, price.toString(), liquidity.data.toString(), slot0.tick),
328
+ status: 200,
329
+ success: true
330
+ };
331
+ }
332
+ catch (error) {
333
+ console.error('Error creating pool instance:', error);
334
+ return {
335
+ data: null,
336
+ status: 500,
337
+ success: false,
338
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
339
+ };
340
+ }
341
+ }
342
+ /**
343
+ * Gets the pool liquidity
344
+ * @param poolAddress The pool address
345
+ */
346
+ async getPoolLiquidity(poolAddress) {
347
+ try {
348
+ const liquidity = await this.publicClient.readContract({
349
+ address: poolAddress,
350
+ abi: UniswapPool_1.UniswapV3PoolABI,
351
+ functionName: 'liquidity'
352
+ });
353
+ return {
354
+ data: liquidity,
355
+ status: 200,
356
+ success: true
357
+ };
358
+ }
359
+ catch (error) {
360
+ return {
361
+ data: null,
362
+ status: 500,
363
+ success: false,
364
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
365
+ };
366
+ }
367
+ }
368
+ /**
369
+ * Gets the corresponding token amount based on the provided token amount and ratio
370
+ * @param vaultAddress The vault address
371
+ * @param amount The amount of token to calculate the corresponding amount for
372
+ * @param zeroForOne If true, calculates token1 amount for given token0, if false calculates token0 amount for given token1
373
+ */
374
+ async getCorrespondingTokenAmount(vaultAddress, amount, zeroForOne) {
375
+ try {
376
+ // Get the deposit ratio for the vault
377
+ const ratioResponse = await this.getDepositRatio(vaultAddress, zeroForOne);
378
+ if (!ratioResponse.success || !ratioResponse.data) {
379
+ throw new Error('Failed to get deposit ratio');
380
+ }
381
+ const { ratio, token0Decimals, token1Decimals } = ratioResponse.data;
382
+ // Calculate the decimal adjustment based on token decimals
383
+ const decimalDiff = zeroForOne
384
+ ? token1Decimals - token0Decimals
385
+ : token0Decimals - token1Decimals;
386
+ // Convert all values to Decimal for precise calculation
387
+ const amountDecimal = new decimal_js_1.Decimal(amount.toString());
388
+ const ratioDecimal = new decimal_js_1.Decimal(ratio);
389
+ const adjustmentDecimal = new decimal_js_1.Decimal(10).pow(Number(decimalDiff));
390
+ // Perform calculation using Decimal.js
391
+ const result = amountDecimal.times(ratioDecimal).times(adjustmentDecimal).div(new decimal_js_1.Decimal(10).pow(18));
392
+ // Convert result back to bigint, rounding down to nearest integer
393
+ const correspondingAmount = BigInt(result.floor().toFixed(0));
394
+ return {
395
+ data: correspondingAmount,
396
+ status: 200,
397
+ success: true
398
+ };
399
+ }
400
+ catch (error) {
401
+ return {
402
+ data: null,
403
+ status: 500,
404
+ success: false,
405
+ error: error instanceof Error ? error.message : 'Unknown error occurred'
406
+ };
407
+ }
408
+ }
409
+ /**
410
+ * Prepares pool data from vault details
411
+ * @param vaultAddress The vault address
412
+ */
413
+ async preparePoolData(vaultAddress) {
414
+ try {
415
+ // Try to get vault details, first attempt with regular vault
416
+ let vaultDetails;
417
+ const chainId = await this.publicClient.getChainId();
418
+ const steerPeripheryAddress = (0, network_1.getContractAddressByChainIdAndContractName)(chainId, 'SteerPeriphery');
419
+ if (!steerPeripheryAddress)
420
+ throw new Error('SteerPeriphery address not found');
421
+ try {
422
+ // First try regular vault
423
+ vaultDetails = await this.publicClient.readContract({
424
+ address: steerPeripheryAddress,
425
+ abi: PERIPHERY_ABI,
426
+ functionName: 'vaultDetailsByAddress',
427
+ args: [vaultAddress]
428
+ });
429
+ }
430
+ catch (error) {
431
+ // If regular vault fails, try Algebra vault
432
+ vaultDetails = await this.publicClient.readContract({
433
+ address: steerPeripheryAddress,
434
+ abi: PERIPHERY_ABI,
435
+ functionName: 'algebraVaultDetailsByAddress',
436
+ args: [vaultAddress]
437
+ });
438
+ }
439
+ // Get the pool contract to fetch tick spacing
440
+ const pool = await this.getPool(vaultAddress);
441
+ if (!pool.data)
442
+ throw new Error('Failed to retrieve pool');
443
+ // Get tick spacing
444
+ const tickSpacing = await this.publicClient.readContract({
445
+ address: pool.data,
446
+ abi: UniswapPool_1.UniswapV3PoolABI,
447
+ functionName: 'tickSpacing'
448
+ });
449
+ const poolData = {
450
+ id: pool.data,
451
+ token0: {
452
+ id: vaultDetails.token0,
453
+ decimals: vaultDetails.token0Decimals.toString(),
454
+ symbol: vaultDetails.token0Symbol,
455
+ name: vaultDetails.token0Symbol,
456
+ },
457
+ token1: {
458
+ id: vaultDetails.token1,
459
+ decimals: vaultDetails.token1Decimals.toString(),
460
+ symbol: vaultDetails.token1Symbol,
461
+ name: vaultDetails.token1Symbol,
462
+ },
463
+ chainId: await this.publicClient.getChainId(),
464
+ feeTier: 3000, // Fixed fee tier as specified
465
+ tickSpacing,
466
+ };
467
+ return {
468
+ data: poolData,
469
+ status: 200,
470
+ success: true,
471
+ };
472
+ }
473
+ catch (error) {
474
+ return {
475
+ data: null,
476
+ status: 500,
477
+ success: false,
478
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
479
+ };
480
+ }
481
+ }
482
+ }
483
+ exports.VaultDepositClient = VaultDepositClient;
484
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/base/vault/deposit/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/base/vault/deposit/types.ts"],"names":[],"mappings":""}