@ichidao/ichi-vaults-sdk 0.0.19 → 0.0.20

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 (78) hide show
  1. package/README.md +110 -58
  2. package/dist/abis/types/AlgebraPool.d.ts +817 -0
  3. package/dist/abis/types/AlgebraPool.js +3 -0
  4. package/dist/abis/types/AlgebraPool.js.map +1 -0
  5. package/dist/abis/types/DepositGuard.d.ts +100 -13
  6. package/dist/abis/types/UniswapV3Pool.d.ts +771 -0
  7. package/dist/abis/types/UniswapV3Pool.js +3 -0
  8. package/dist/abis/types/UniswapV3Pool.js.map +1 -0
  9. package/dist/abis/types/factories/AlgebraPool__factory.d.ts +821 -0
  10. package/dist/abis/types/factories/AlgebraPool__factory.js +1062 -0
  11. package/dist/abis/types/factories/AlgebraPool__factory.js.map +1 -0
  12. package/dist/abis/types/factories/DepositGuard__factory.d.ts +124 -4
  13. package/dist/abis/types/factories/DepositGuard__factory.js +160 -5
  14. package/dist/abis/types/factories/DepositGuard__factory.js.map +1 -1
  15. package/dist/abis/types/factories/UniswapV3Pool__factory.d.ts +781 -0
  16. package/dist/abis/types/factories/UniswapV3Pool__factory.js +1009 -0
  17. package/dist/abis/types/factories/UniswapV3Pool__factory.js.map +1 -0
  18. package/dist/abis/types/factories/index.d.ts +2 -0
  19. package/dist/abis/types/factories/index.js +5 -1
  20. package/dist/abis/types/factories/index.js.map +1 -1
  21. package/dist/abis/types/index.d.ts +4 -0
  22. package/dist/abis/types/index.js +5 -1
  23. package/dist/abis/types/index.js.map +1 -1
  24. package/dist/src/__tests__/index.test.js +37 -41
  25. package/dist/src/__tests__/index.test.js.map +1 -1
  26. package/dist/src/abis/types/AlgebraPool.d.ts +817 -0
  27. package/dist/src/abis/types/DepositGuard.d.ts +100 -13
  28. package/dist/src/abis/types/UniswapV3Pool.d.ts +771 -0
  29. package/dist/src/abis/types/factories/AlgebraPool__factory.d.ts +821 -0
  30. package/dist/src/abis/types/factories/DepositGuard__factory.d.ts +124 -4
  31. package/dist/src/abis/types/factories/UniswapV3Pool__factory.d.ts +781 -0
  32. package/dist/src/abis/types/factories/index.d.ts +2 -0
  33. package/dist/src/abis/types/index.d.ts +4 -0
  34. package/dist/src/contracts/index.d.ts +4 -1
  35. package/dist/src/contracts/index.js +21 -1
  36. package/dist/src/contracts/index.js.map +1 -1
  37. package/dist/src/functions/balances.js +4 -4
  38. package/dist/src/functions/balances.js.map +1 -1
  39. package/dist/src/functions/calculateFees.d.ts +2 -1
  40. package/dist/src/functions/calculateFees.js +212 -15
  41. package/dist/src/functions/calculateFees.js.map +1 -1
  42. package/dist/src/functions/deposit.js +8 -8
  43. package/dist/src/functions/deposit.js.map +1 -1
  44. package/dist/src/functions/fees.d.ts +3 -4
  45. package/dist/src/functions/fees.js +70 -34
  46. package/dist/src/functions/fees.js.map +1 -1
  47. package/dist/src/functions/vault.js +2 -2
  48. package/dist/src/functions/vault.js.map +1 -1
  49. package/dist/src/functions/withdraw.js +1 -1
  50. package/dist/src/functions/withdraw.js.map +1 -1
  51. package/dist/src/graphql/constants.js +18 -12
  52. package/dist/src/graphql/constants.js.map +1 -1
  53. package/dist/src/graphql/queries.d.ts +2 -2
  54. package/dist/src/graphql/queries.js +4 -2
  55. package/dist/src/graphql/queries.js.map +1 -1
  56. package/dist/src/index.cjs.js +1 -1
  57. package/dist/src/index.esm.js +1 -1
  58. package/dist/src/src/contracts/index.d.ts +4 -1
  59. package/dist/src/src/functions/calculateFees.d.ts +2 -1
  60. package/dist/src/src/functions/fees.d.ts +3 -4
  61. package/dist/src/src/graphql/queries.d.ts +2 -2
  62. package/dist/src/src/types/index.d.ts +9 -0
  63. package/dist/src/src/utils/config/addresses.d.ts +5 -1
  64. package/dist/src/src/utils/getPrice.d.ts +2 -0
  65. package/dist/src/src/utils/timestamps.d.ts +1 -0
  66. package/dist/src/types/index.d.ts +9 -0
  67. package/dist/src/types/index.js +2 -0
  68. package/dist/src/types/index.js.map +1 -1
  69. package/dist/src/utils/config/addresses.d.ts +5 -1
  70. package/dist/src/utils/config/addresses.js +120 -33
  71. package/dist/src/utils/config/addresses.js.map +1 -1
  72. package/dist/src/utils/getPrice.d.ts +2 -0
  73. package/dist/src/utils/getPrice.js +18 -0
  74. package/dist/src/utils/getPrice.js.map +1 -0
  75. package/dist/src/utils/timestamps.d.ts +1 -0
  76. package/dist/src/utils/timestamps.js +7 -0
  77. package/dist/src/utils/timestamps.js.map +1 -0
  78. package/package.json +2 -1
package/README.md CHANGED
@@ -20,8 +20,9 @@ This sdk contains collection of functions to interact with IchiVault's smart con
20
20
  * [`getTotalSupply()`](#9-getTotalSupply)
21
21
  * [`getTotalAmounts()`](#10-getTotalAmounts)
22
22
  * [`getFeesCollected()`](#11-getFeesCollected)
23
- * [`getIchiVaultInfo()`](#12-getIchiVaultInfo)
24
- * [`getVaultsByTokens()`](#13-getVaultsByTokens)
23
+ * [`getFeesCollectedInfo()`](#12-getFeesCollectedInfo)
24
+ * [`getIchiVaultInfo()`](#13-getIchiVaultInfo)
25
+ * [`getVaultsByTokens()`](#14-getVaultsByTokens)
25
26
 
26
27
  ## Installation
27
28
  Install with
@@ -44,8 +45,8 @@ npm install @ichidao/ichi-vaults-sdk
44
45
  | tokenIdx | 0 \| 1 | - | true
45
46
  | vaultAddress | string | - | true |
46
47
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
47
- | dex | SupportedDex | - | true |
48
- | amount | string \| number | undefined | false |
48
+ | dex | SupportedDex | - | true |
49
+ | amount | string \| number | undefined | false |
49
50
  | overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
50
51
 
51
52
  <br/>
@@ -61,17 +62,17 @@ const amount = 100
61
62
  const dex = SupportedDex.UniswapV3
62
63
 
63
64
  const txnDetails = await approveDepositToken(
64
- accountAddress,
65
+ accountAddress,
65
66
  0, // token idx can be 0 or 1
66
- vaultAddress,
67
+ vaultAddress,
67
68
  web3Provider,
68
69
  dex,
69
70
  amount // (optional)
70
71
  );
71
72
 
72
- await txnDetails.wait();
73
+ await txnDetails.wait();
73
74
 
74
- // can now deposit token0
75
+ // can now deposit token0
75
76
  // ...
76
77
  ```
77
78
 
@@ -82,10 +83,10 @@ await txnDetails.wait();
82
83
  | accountAddress | string | - | true
83
84
  | amount0 | string \| number | - | true
84
85
  | amount1 | string \| number | - | true
85
- | vaultAddress | string | - | true
86
+ | vaultAddress | string | - | true
86
87
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
87
- | dex | SupportedDex | - | true
88
- | percentSlippage | number | 1 | false
88
+ | dex | SupportedDex | - | true
89
+ | percentSlippage | number | 1 | false
89
90
  | overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
90
91
 
91
92
  <br/>
@@ -100,13 +101,13 @@ const dex = SupportedDex.UniswapV3
100
101
  const accountAddress = "0xaaaa...aaaaaa"
101
102
 
102
103
  const amount0 = 100
103
- const amount1 = 0
104
-
104
+ const amount1 = 0
105
+
105
106
  const txnDetails = await deposit(
106
107
  accountAddress,
107
108
  amount0, // can be 0 when only depositing amount1
108
109
  amount1, // can be 0 when only depositing amount0
109
- vaultAddress,
110
+ vaultAddress,
110
111
  web3Provider,
111
112
  dex,
112
113
  1 // acceptable slippage (percents)
@@ -119,9 +120,9 @@ const txnDetails = await deposit(
119
120
  | -------- | -------- | -------- | --------
120
121
  | accountAddress | string | - | true
121
122
  | shares | string \| number | - | true
122
- | vaultAddress | string | - | true
123
+ | vaultAddress | string | - | true
123
124
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
124
- | dex | SupportedDex | - | true
125
+ | dex | SupportedDex | - | true
125
126
  | overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
126
127
 
127
128
  <br/>
@@ -137,7 +138,7 @@ const accountAddress = "0xaaaa...aaaaaa"
137
138
 
138
139
  const totalUserShares: string = await getUserBalance(
139
140
  accountAddress,
140
- vaultAddress,
141
+ vaultAddress,
141
142
  web3Provider
142
143
  dex,
143
144
  )
@@ -146,8 +147,8 @@ let shares = Number(totalUserShare) * 0.5 // 50% of user deshare balance
146
147
 
147
148
  const txnDetails = await withdraw(
148
149
  accountAddress,
149
- shares,
150
- vaultAddress,
150
+ shares,
151
+ vaultAddress,
151
152
  web3Provider,
152
153
  dex
153
154
  )
@@ -180,7 +181,7 @@ const isToken0Approved: boolean = await isDepositTokenApproved(
180
181
  accountAddress,
181
182
  0, // token idx can be 0 or 1
182
183
  amount,
183
- vaultAddress,
184
+ vaultAddress,
184
185
  web3Provider,
185
186
  dex
186
187
  )
@@ -193,7 +194,7 @@ const isToken0Approved: boolean = await isDepositTokenApproved(
193
194
  | tokenIdx | 0 \| 1 | - | true
194
195
  | vaultAddress | string | - | true |
195
196
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
196
- | dex | SupportedDex | - | true |
197
+ | dex | SupportedDex | - | true |
197
198
 
198
199
  <br/>
199
200
 
@@ -207,7 +208,7 @@ const dex = SupportedDex.UniswapV3
207
208
 
208
209
  const isAllowed = await isTokenAllowed(
209
210
  0, // token idx can be 0 or 1
210
- vaultAddress,
211
+ vaultAddress,
211
212
  web3Provider,
212
213
  dex
213
214
  )
@@ -221,7 +222,7 @@ const isAllowed = await isTokenAllowed(
221
222
  | tokenIdx | 0 \| 1 | - | true
222
223
  | vaultAddress | string | - | true |
223
224
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
224
- | dex | SupportedDex | - | true |
225
+ | dex | SupportedDex | - | true |
225
226
 
226
227
  <br/>
227
228
 
@@ -235,7 +236,7 @@ const dex = SupportedDex.UniswapV3
235
236
 
236
237
  const maxAmount = await getMaxDepositAmount(
237
238
  0, // token idx can be 0 or 1
238
- vaultAddress,
239
+ vaultAddress,
239
240
  web3Provider,
240
241
  dex
241
242
  )
@@ -249,8 +250,8 @@ const maxAmount = await getMaxDepositAmount(
249
250
  | accountAddress | string | - | true |
250
251
  | vaultAddress | string | - | true |
251
252
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
252
- | dex | SupportedDex | - | true
253
- | raw | true | undefined | false |
253
+ | dex | SupportedDex | - | true
254
+ | raw | true | undefined | false |
254
255
 
255
256
  <br/>
256
257
 
@@ -265,16 +266,16 @@ const accountAddress = "0xaaaa...aaaaaa"
265
266
 
266
267
  const shares: string = await getUserBalance(
267
268
  accountAddress,
268
- vaultAddress,
269
+ vaultAddress,
269
270
  web3Provider
270
271
  dex
271
272
  )
272
273
 
273
- // - or -
274
+ // - or -
274
275
 
275
276
  const sharesBN: BigNumber = await getUserBalance(
276
277
  accountAddress,
277
- vaultAddress,
278
+ vaultAddress,
278
279
  web3Provider
279
280
  dex,
280
281
  true
@@ -288,8 +289,8 @@ const sharesBN: BigNumber = await getUserBalance(
288
289
  | accountAddress | string | - | true |
289
290
  | vaultAddress | string | - | true |
290
291
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
291
- | dex | SupportedDex | - | true
292
- | raw | true | undefined | false |
292
+ | dex | SupportedDex | - | true
293
+ | raw | true | undefined | false |
293
294
 
294
295
  <br/>
295
296
 
@@ -304,16 +305,16 @@ const accountAddress = "0xaaaa...aaaaaa"
304
305
 
305
306
  const amounts: [string, string] & {amount0: string, amount1: string} = await getUserAmounts(
306
307
  accountAddress,
307
- vaultAddress,
308
+ vaultAddress,
308
309
  web3Provider
309
310
  dex,
310
311
  )
311
312
 
312
- // - or -
313
+ // - or -
313
314
 
314
315
  const amountsBN: [BigNumber, BigNumber] & {amount0: BigNumber, amount1: BigNumber} = await getUserAmounts(
315
316
  accountAddress,
316
- vaultAddress,
317
+ vaultAddress,
317
318
  web3Provider
318
319
  dex,
319
320
  true
@@ -326,8 +327,8 @@ const amountsBN: [BigNumber, BigNumber] & {amount0: BigNumber, amount1: BigNumbe
326
327
  | -------- | -------- | -------- | --------
327
328
  | vaultAddress | string | - | true |
328
329
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
329
- | dex | SupportedDex | - | true
330
- | raw | true | undefined | false |
330
+ | dex | SupportedDex | - | true
331
+ | raw | true | undefined | false |
331
332
 
332
333
  <br/>
333
334
 
@@ -341,16 +342,16 @@ const dex = SupportedDex.UniswapV3
341
342
 
342
343
  const shares: string = await getTotalSupply(
343
344
  accountAddress,
344
- vaultAddress,
345
+ vaultAddress,
345
346
  web3Provider
346
347
  dex,
347
348
  )
348
349
 
349
- // - or -
350
+ // - or -
350
351
 
351
352
  const sharesBN: BigNumber = await getTotalSupply(
352
353
  accountAddress,
353
- vaultAddress,
354
+ vaultAddress,
354
355
  web3Provider
355
356
  dex,
356
357
  true
@@ -363,8 +364,8 @@ const sharesBN: BigNumber = await getTotalSupply(
363
364
  | -------- | -------- | -------- | --------
364
365
  | vaultAddress | string | - | true |
365
366
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
366
- | dex | SupportedDex | - | true
367
- | raw | true | undefined | false |
367
+ | dex | SupportedDex | - | true
368
+ | raw | true | undefined | false |
368
369
 
369
370
  <br/>
370
371
 
@@ -379,16 +380,16 @@ const accountAddress = "0xaaaa...aaaaaa"
379
380
 
380
381
  const amounts: [string, string] & {total0: string, total1: string} = await getTotalAmounts(
381
382
  accountAddress,
382
- vaultAddress,
383
+ vaultAddress,
383
384
  web3Provider
384
385
  dex,
385
386
  )
386
387
 
387
- // - or -
388
+ // - or -
388
389
 
389
390
  const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber} = await getTotalAmounts(
390
391
  accountAddress,
391
- vaultAddress,
392
+ vaultAddress,
392
393
  web3Provider
393
394
  dex,
394
395
  true
@@ -401,9 +402,9 @@ const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber}
401
402
  | -------- | -------- | -------- | --------
402
403
  | vaultAddress | string | - | true |
403
404
  | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
404
- | dex | SupportedDex | - | true
405
- | rawOrDays | true or number | undefined | false |
406
- | days | number | undefined | false |
405
+ | dex | SupportedDex | - | true
406
+ | rawOrDays | true or number | undefined | false |
407
+ | days | number | undefined | false |
407
408
 
408
409
  <br/>
409
410
 
@@ -417,33 +418,33 @@ const dex = SupportedDex.UniswapV3;
417
418
  const days = 7;
418
419
 
419
420
  const amounts: [string, string] & {total0: string, total1: string} = await getFeesCollected(
420
- vaultAddress,
421
+ vaultAddress,
421
422
  web3Provider
422
423
  dex,
423
424
  )
424
425
 
425
- // - or -
426
+ // - or -
426
427
 
427
428
  const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber} = await getFeesCollected(
428
- vaultAddress,
429
+ vaultAddress,
429
430
  web3Provider
430
431
  dex,
431
432
  true
432
433
  )
433
434
 
434
- // - or -
435
+ // - or -
435
436
 
436
437
  const amounts: [string, string] & {total0: string, total1: string} = await getFeesCollected(
437
- vaultAddress,
438
+ vaultAddress,
438
439
  web3Provider
439
440
  dex,
440
441
  days
441
442
  )
442
443
 
443
- // - or -
444
+ // - or -
444
445
 
445
446
  const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber} = await getFeesCollected(
446
- vaultAddress,
447
+ vaultAddress,
447
448
  web3Provider
448
449
  dex,
449
450
  true,
@@ -451,12 +452,50 @@ const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber}
451
452
  )
452
453
  ```
453
454
 
454
- #### 12. `getIchiVaultInfo()`
455
+ #### 12. `getFeesCollectedInfo()`
456
+
457
+ | param | type | default | required
458
+ | -------- | -------- | -------- | --------
459
+ | vaultAddress | string | - | true |
460
+ | jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
461
+ | dex | SupportedDex | - | true
462
+ | forDays | number[] | undefined | false |
463
+
464
+ <br/>
465
+ If forDays is not specified, returns FeesInfo for time periods of 1, 7, and 30 days.
466
+ <br/>
467
+
468
+ ```typescript
469
+ import { Web3Provider } from '@ethersproject/providers';
470
+ import { getFeesCollectedInfo, SupportedDex } from '@ichidao/ichi-vaults-sdk';
471
+
472
+ const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
473
+ const vaultAddress = "0x3ac9...a5f132";
474
+ const dex = SupportedDex.UniswapV3;
475
+ const days = [2, 5, 14, 60];
476
+
477
+ const feesInfo: FeesInfo[] = await getFeesCollectedInfo(
478
+ vaultAddress,
479
+ web3Provider
480
+ dex,
481
+ )
482
+
483
+ // - or -
484
+
485
+ const feesInfo: FeesInfo[] = await getFeesCollectedInfo(
486
+ vaultAddress,
487
+ web3Provider
488
+ dex,
489
+ days,
490
+ )
491
+ ```
492
+
493
+ #### 13. `getIchiVaultInfo()`
455
494
 
456
495
  | param | type | default | required
457
496
  | -------- | -------- | -------- | --------
458
497
  | chain | SupportedChain | - | true
459
- | dex | SupportedDex | - | true
498
+ | dex | SupportedDex | - | true
460
499
  | vaultAddress | string | - | true |
461
500
  | jsonProvider | JsonRpcProvider | - | false |
462
501
 
@@ -476,12 +515,12 @@ if (vaultInfo) {
476
515
  }
477
516
  ```
478
517
 
479
- #### 13. `getVaultsByTokens()`
518
+ #### 14. `getVaultsByTokens()`
480
519
 
481
520
  | param | type | default | required
482
521
  | -------- | -------- | -------- | --------
483
522
  | chain | SupportedChain | - | true
484
- | dex | SupportedDex | - | true
523
+ | dex | SupportedDex | - | true
485
524
  | depositTokenAddress | string | - | true |
486
525
  | pairedTokenAddress | string | - | true |
487
526
 
@@ -513,6 +552,7 @@ enum SupportedChainId {
513
552
  arbitrum = 42161,
514
553
  bsc = 56,
515
554
  eon = 7332,
555
+ fantom = 250,
516
556
  hedera_testnet = 296,
517
557
  linea = 59144,
518
558
  mainnet = 1,
@@ -528,6 +568,7 @@ enum SupportedChainId {
528
568
  enum SupportedDex {
529
569
  Ascent = 'Ascent',
530
570
  Blueprint = 'Blueprint',
571
+ Equalizer = 'Equalizer',
531
572
  Horiza = 'Horiza',
532
573
  Lynex = 'Lynex',
533
574
  Pancakeswap = 'PancakeSwap',
@@ -553,3 +594,14 @@ interface IchiVault {
553
594
  allowTokenB: boolean;
554
595
  }
555
596
  ```
597
+
598
+ ### FeesInfo
599
+
600
+ ```typescript
601
+ type FeesInfo = {
602
+ timePeriod: number; // in days
603
+ feeAmount0: string; // in token0
604
+ feeAmount1: string; // in token1
605
+ pctAPR: number; // yearly APR based on the timePeriod
606
+ }
607
+ ```