@ichidao/ichi-vaults-sdk 0.0.20 → 0.0.22
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/README.md +254 -24
- package/dist/src/functions/calculateDtr.d.ts +3 -0
- package/dist/src/functions/calculateDtr.js +220 -0
- package/dist/src/functions/calculateDtr.js.map +1 -0
- package/dist/src/functions/calculateFees.d.ts +2 -1
- package/dist/src/functions/calculateFees.js +20 -121
- package/dist/src/functions/calculateFees.js.map +1 -1
- package/dist/src/functions/deposit.d.ts +1 -0
- package/dist/src/functions/deposit.js +120 -19
- package/dist/src/functions/deposit.js.map +1 -1
- package/dist/src/functions/priceFromPool.d.ts +7 -0
- package/dist/src/functions/priceFromPool.js +199 -0
- package/dist/src/functions/priceFromPool.js.map +1 -0
- package/dist/src/functions/vaultEvents.d.ts +6 -0
- package/dist/src/functions/{fees.js → vaultEvents.js} +132 -4
- package/dist/src/functions/vaultEvents.js.map +1 -0
- package/dist/src/functions/withdraw.d.ts +4 -0
- package/dist/src/functions/withdraw.js +227 -1
- package/dist/src/functions/withdraw.js.map +1 -1
- package/dist/src/graphql/queries.d.ts +2 -0
- package/dist/src/graphql/queries.js +8 -4
- package/dist/src/graphql/queries.js.map +1 -1
- package/dist/src/index.cjs.js +2 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.esm.js +2 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/src/functions/calculateDtr.d.ts +3 -0
- package/dist/src/src/functions/calculateFees.d.ts +2 -1
- package/dist/src/src/functions/deposit.d.ts +1 -0
- package/dist/src/src/functions/priceFromPool.d.ts +7 -0
- package/dist/src/src/functions/vaultEvents.d.ts +6 -0
- package/dist/src/src/functions/withdraw.d.ts +4 -0
- package/dist/src/src/graphql/queries.d.ts +2 -0
- package/dist/src/src/index.d.ts +1 -0
- package/dist/src/src/types/index.d.ts +19 -0
- package/dist/src/src/types/vaultQueryData.d.ts +7 -1
- package/dist/src/src/utils/amountWithSlippage.d.ts +2 -0
- package/dist/src/types/index.d.ts +19 -0
- package/dist/src/types/vaultQueryData.d.ts +7 -1
- package/dist/src/utils/amountWithSlippage.d.ts +2 -0
- package/dist/src/utils/amountWithSlippage.js +7 -0
- package/dist/src/utils/amountWithSlippage.js.map +1 -0
- package/dist/src/utils/config/addresses.js +3 -3
- package/package.json +1 -1
- package/dist/src/functions/fees.d.ts +0 -4
- package/dist/src/functions/fees.js.map +0 -1
- package/dist/src/src/functions/fees.d.ts +0 -4
package/README.md
CHANGED
@@ -11,18 +11,24 @@ This sdk contains collection of functions to interact with IchiVault's smart con
|
|
11
11
|
* [__Vault Functions__](#Vault)
|
12
12
|
* [`approveDepositToken()`](#1-approveDepositToken)
|
13
13
|
* [`deposit()`](#2-depositLP)
|
14
|
-
* [`
|
15
|
-
* [`
|
16
|
-
* [`
|
17
|
-
* [`
|
18
|
-
* [`
|
19
|
-
* [`
|
20
|
-
* [`
|
21
|
-
* [`
|
22
|
-
* [`
|
23
|
-
* [`
|
24
|
-
* [`
|
25
|
-
* [`
|
14
|
+
* [`depositNativeToken()`](#3-depositLP)
|
15
|
+
* [`approveVaultToken()`](#4-approveDepositToken)
|
16
|
+
* [`isVaultTokenApproved()`](#5-approveDepositToken)
|
17
|
+
* [`withdraw()`](#6-withdraw)
|
18
|
+
* [`withdrawWithSlippage()`](#7-withdraw)
|
19
|
+
* [`withdrawNativeToken()`](#8-withdraw)
|
20
|
+
* [`isDepositTokenApproved()`](#9-isDepositTokenApproved)
|
21
|
+
* [`isTokenAllowed()`](#10-isTokenAllowed)
|
22
|
+
* [`getMaxDepositAmount()`](#11-getMaxDepositAmount)
|
23
|
+
* [`getUserBalance()`](#12-getUserBalance)
|
24
|
+
* [`getUserAmounts()`](#13-getUserAmounts)
|
25
|
+
* [`getTotalSupply()`](#14-getTotalSupply)
|
26
|
+
* [`getTotalAmounts()`](#15-getTotalAmounts)
|
27
|
+
* [`getFeesCollected()`](#16-getFeesCollected)
|
28
|
+
* [`getFeesCollectedInfo()`](#17-getFeesCollectedInfo)
|
29
|
+
* [`getAverageDepositTokenRatios()`](#18-getAverageDepositTokenRatios)
|
30
|
+
* [`getIchiVaultInfo()`](#19-getIchiVaultInfo)
|
31
|
+
* [`getVaultsByTokens()`](#20-getVaultsByTokens)
|
26
32
|
|
27
33
|
## Installation
|
28
34
|
Install with
|
@@ -114,7 +120,113 @@ const txnDetails = await deposit(
|
|
114
120
|
)
|
115
121
|
```
|
116
122
|
|
117
|
-
#### 3. `
|
123
|
+
#### 3. `depositNativeToken()`
|
124
|
+
|
125
|
+
| param | type | default | required
|
126
|
+
| -------- | -------- | -------- | --------
|
127
|
+
| accountAddress | string | - | true
|
128
|
+
| amount0 | string \| number | - | true
|
129
|
+
| amount1 | string \| number | - | true
|
130
|
+
| vaultAddress | string | - | true
|
131
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
132
|
+
| dex | SupportedDex | - | true
|
133
|
+
| percentSlippage | number | 1 | false
|
134
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
135
|
+
|
136
|
+
<br/>
|
137
|
+
|
138
|
+
```typescript
|
139
|
+
import { Web3Provider } from '@ethersproject/providers';
|
140
|
+
import { deposit, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
141
|
+
|
142
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
143
|
+
const vaultAddress = "0x3ac9...a5f132"
|
144
|
+
const dex = SupportedDex.UniswapV3
|
145
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
146
|
+
|
147
|
+
const amount0 = 100
|
148
|
+
const amount1 = 0
|
149
|
+
|
150
|
+
const txnDetails = await depositNativeToken(
|
151
|
+
accountAddress,
|
152
|
+
amount0, // can be 0 when only depositing amount1
|
153
|
+
amount1, // can be 0 when only depositing amount0
|
154
|
+
vaultAddress,
|
155
|
+
web3Provider,
|
156
|
+
dex,
|
157
|
+
1 // acceptable slippage (percents)
|
158
|
+
)
|
159
|
+
```
|
160
|
+
|
161
|
+
#### 4. `approveVaultToken()`
|
162
|
+
|
163
|
+
| param | type | default | required
|
164
|
+
| -------- | -------- | -------- | --------
|
165
|
+
| accountAddress | string | - | true
|
166
|
+
| vaultAddress | string | - | true |
|
167
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
168
|
+
| dex | SupportedDex | - | true |
|
169
|
+
| shares | string \| number | undefined | false |
|
170
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
171
|
+
|
172
|
+
<br/>
|
173
|
+
|
174
|
+
```typescript
|
175
|
+
import { Web3Provider } from '@ethersproject/providers';
|
176
|
+
import { approveDepositToken, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
177
|
+
|
178
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
179
|
+
const vaultAddress = "0x3ac9...a5f132"
|
180
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
181
|
+
const amount = 100
|
182
|
+
const dex = SupportedDex.UniswapV3
|
183
|
+
|
184
|
+
const txnDetails = await approveVaultToken(
|
185
|
+
accountAddress,
|
186
|
+
vaultAddress,
|
187
|
+
web3Provider,
|
188
|
+
dex,
|
189
|
+
amount // (optional)
|
190
|
+
);
|
191
|
+
|
192
|
+
await txnDetails.wait();
|
193
|
+
|
194
|
+
// can now deposit token0
|
195
|
+
// ...
|
196
|
+
```
|
197
|
+
|
198
|
+
#### 5. `isVaultTokenApproved()`
|
199
|
+
|
200
|
+
| param | type | default | required
|
201
|
+
| -------- | -------- | -------- | --------
|
202
|
+
| accountAddress | string | - | true
|
203
|
+
| shares | string \| number, | - | true |
|
204
|
+
| vaultAddress | string | - | true |
|
205
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
206
|
+
| dex | SupportedDex | - | true |
|
207
|
+
|
208
|
+
<br/>
|
209
|
+
|
210
|
+
```typescript
|
211
|
+
import { Web3Provider } from '@ethersproject/providers';
|
212
|
+
import { isDepositTokenApproved, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
213
|
+
|
214
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
215
|
+
const vaultAddress = "0x3ac9...a5f132"
|
216
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
217
|
+
const amount = 100
|
218
|
+
const dex = SupportedDex.UniswapV3
|
219
|
+
|
220
|
+
const isToken0Approved: boolean = await isDepositTokenApproved(
|
221
|
+
accountAddress,
|
222
|
+
amount,
|
223
|
+
vaultAddress,
|
224
|
+
web3Provider,
|
225
|
+
dex
|
226
|
+
)
|
227
|
+
```
|
228
|
+
|
229
|
+
#### 6. `withdraw()`
|
118
230
|
|
119
231
|
| param | type | default | required
|
120
232
|
| -------- | -------- | -------- | --------
|
@@ -154,7 +266,89 @@ const txnDetails = await withdraw(
|
|
154
266
|
)
|
155
267
|
```
|
156
268
|
|
157
|
-
####
|
269
|
+
#### 7. `withdrawWithSlippage()`
|
270
|
+
|
271
|
+
| param | type | default | required
|
272
|
+
| -------- | -------- | -------- | --------
|
273
|
+
| accountAddress | string | - | true
|
274
|
+
| shares | string \| number | - | true
|
275
|
+
| vaultAddress | string | - | true
|
276
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
277
|
+
| dex | SupportedDex | - | true
|
278
|
+
| percentSlippage | number | 1 | false
|
279
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
280
|
+
|
281
|
+
<br/>
|
282
|
+
|
283
|
+
```typescript
|
284
|
+
import { Web3Provider } from '@ethersproject/providers';
|
285
|
+
import { getUserBalance, withdraw, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
286
|
+
|
287
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
288
|
+
const vaultAddress = "0x3ac9...a5f132"
|
289
|
+
const dex = SupportedDex.UniswapV3
|
290
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
291
|
+
|
292
|
+
const totalUserShares: string = await getUserBalance(
|
293
|
+
accountAddress,
|
294
|
+
vaultAddress,
|
295
|
+
web3Provider
|
296
|
+
dex,
|
297
|
+
)
|
298
|
+
|
299
|
+
let shares = Number(totalUserShare) * 0.5 // 50% of user deshare balance
|
300
|
+
|
301
|
+
const txnDetails = await withdraw(
|
302
|
+
accountAddress,
|
303
|
+
shares,
|
304
|
+
vaultAddress,
|
305
|
+
web3Provider,
|
306
|
+
dex
|
307
|
+
)
|
308
|
+
```
|
309
|
+
|
310
|
+
#### 8. `withdrawNativeToken()`
|
311
|
+
|
312
|
+
| param | type | default | required
|
313
|
+
| -------- | -------- | -------- | --------
|
314
|
+
| accountAddress | string | - | true
|
315
|
+
| shares | string \| number | - | true
|
316
|
+
| vaultAddress | string | - | true
|
317
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
318
|
+
| dex | SupportedDex | - | true
|
319
|
+
| percentSlippage | number | 1 | false
|
320
|
+
| overrides | [Overrides](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/contracts/lib/index.d.ts#L7) | undefined | false
|
321
|
+
|
322
|
+
<br/>
|
323
|
+
|
324
|
+
```typescript
|
325
|
+
import { Web3Provider } from '@ethersproject/providers';
|
326
|
+
import { getUserBalance, withdraw, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
327
|
+
|
328
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
329
|
+
const vaultAddress = "0x3ac9...a5f132"
|
330
|
+
const dex = SupportedDex.UniswapV3
|
331
|
+
const accountAddress = "0xaaaa...aaaaaa"
|
332
|
+
|
333
|
+
const totalUserShares: string = await getUserBalance(
|
334
|
+
accountAddress,
|
335
|
+
vaultAddress,
|
336
|
+
web3Provider
|
337
|
+
dex,
|
338
|
+
)
|
339
|
+
|
340
|
+
let shares = Number(totalUserShare) * 0.5 // 50% of user deshare balance
|
341
|
+
|
342
|
+
const txnDetails = await withdraw(
|
343
|
+
accountAddress,
|
344
|
+
shares,
|
345
|
+
vaultAddress,
|
346
|
+
web3Provider,
|
347
|
+
dex
|
348
|
+
)
|
349
|
+
```
|
350
|
+
|
351
|
+
#### 9. `isDepositTokenApproved()`
|
158
352
|
|
159
353
|
| param | type | default | required
|
160
354
|
| -------- | -------- | -------- | --------
|
@@ -187,7 +381,7 @@ const isToken0Approved: boolean = await isDepositTokenApproved(
|
|
187
381
|
)
|
188
382
|
```
|
189
383
|
|
190
|
-
####
|
384
|
+
#### 10. `isTokenAllowed()`
|
191
385
|
|
192
386
|
| param | type | default | required
|
193
387
|
| -------- | -------- | -------- | --------
|
@@ -215,7 +409,7 @@ const isAllowed = await isTokenAllowed(
|
|
215
409
|
|
216
410
|
```
|
217
411
|
|
218
|
-
####
|
412
|
+
#### 11. `getMaxDepositAmount()`
|
219
413
|
|
220
414
|
| param | type | default | required
|
221
415
|
| -------- | -------- | -------- | --------
|
@@ -243,7 +437,7 @@ const maxAmount = await getMaxDepositAmount(
|
|
243
437
|
|
244
438
|
```
|
245
439
|
|
246
|
-
####
|
440
|
+
#### 12. `getUserBalance()`
|
247
441
|
|
248
442
|
| param | type | default | required
|
249
443
|
| -------- | -------- | -------- | --------
|
@@ -282,7 +476,7 @@ const sharesBN: BigNumber = await getUserBalance(
|
|
282
476
|
)
|
283
477
|
```
|
284
478
|
|
285
|
-
####
|
479
|
+
#### 13. `getUserAmounts()`
|
286
480
|
|
287
481
|
| param | type | default | required
|
288
482
|
| -------- | -------- | -------- | --------
|
@@ -321,7 +515,7 @@ const amountsBN: [BigNumber, BigNumber] & {amount0: BigNumber, amount1: BigNumbe
|
|
321
515
|
)
|
322
516
|
```
|
323
517
|
|
324
|
-
####
|
518
|
+
#### 14. `getTotalSupply()`
|
325
519
|
|
326
520
|
| param | type | default | required
|
327
521
|
| -------- | -------- | -------- | --------
|
@@ -358,7 +552,7 @@ const sharesBN: BigNumber = await getTotalSupply(
|
|
358
552
|
)
|
359
553
|
```
|
360
554
|
|
361
|
-
####
|
555
|
+
#### 15. `getTotalAmounts()`
|
362
556
|
|
363
557
|
| param | type | default | required
|
364
558
|
| -------- | -------- | -------- | --------
|
@@ -396,7 +590,7 @@ const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber}
|
|
396
590
|
)
|
397
591
|
```
|
398
592
|
|
399
|
-
####
|
593
|
+
#### 16. `getFeesCollected()`
|
400
594
|
|
401
595
|
| param | type | default | required
|
402
596
|
| -------- | -------- | -------- | --------
|
@@ -452,7 +646,7 @@ const amountsBN: [BigNumber, BigNumber] & {total0: BigNumber, total1: BigNumber}
|
|
452
646
|
)
|
453
647
|
```
|
454
648
|
|
455
|
-
####
|
649
|
+
#### 17. `getFeesCollectedInfo()`
|
456
650
|
|
457
651
|
| param | type | default | required
|
458
652
|
| -------- | -------- | -------- | --------
|
@@ -490,7 +684,43 @@ const feesInfo: FeesInfo[] = await getFeesCollectedInfo(
|
|
490
684
|
)
|
491
685
|
```
|
492
686
|
|
493
|
-
####
|
687
|
+
#### 18. `getAverageDepositTokenRatios()`
|
688
|
+
|
689
|
+
| param | type | default | required
|
690
|
+
| -------- | -------- | -------- | --------
|
691
|
+
| vaultAddress | string | - | true |
|
692
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
693
|
+
| dex | SupportedDex | - | true
|
694
|
+
| timeIntervals | number[] | [1, 7, 30] | false |
|
695
|
+
|
696
|
+
<br/>
|
697
|
+
|
698
|
+
```typescript
|
699
|
+
import { Web3Provider } from '@ethersproject/providers';
|
700
|
+
import { getFeesCollectedInfo, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
701
|
+
|
702
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
703
|
+
const vaultAddress = "0x3ac9...a5f132";
|
704
|
+
const dex = SupportedDex.UniswapV3;
|
705
|
+
const days = [2, 5, 14, 60];
|
706
|
+
|
707
|
+
const averageDtr: AverageDepositTokenRatio[] = await getAverageDepositTokenRatios(
|
708
|
+
vaultAddress,
|
709
|
+
web3Provider
|
710
|
+
dex,
|
711
|
+
)
|
712
|
+
|
713
|
+
// - or -
|
714
|
+
|
715
|
+
const averageDtr: AverageDepositTokenRatio[] = await getAverageDepositTokenRatios(
|
716
|
+
vaultAddress,
|
717
|
+
web3Provider
|
718
|
+
dex,
|
719
|
+
days,
|
720
|
+
)
|
721
|
+
```
|
722
|
+
|
723
|
+
#### 19. `getIchiVaultInfo()`
|
494
724
|
|
495
725
|
| param | type | default | required
|
496
726
|
| -------- | -------- | -------- | --------
|
@@ -515,7 +745,7 @@ if (vaultInfo) {
|
|
515
745
|
}
|
516
746
|
```
|
517
747
|
|
518
|
-
####
|
748
|
+
#### 20. `getVaultsByTokens()`
|
519
749
|
|
520
750
|
| param | type | default | required
|
521
751
|
| -------- | -------- | -------- | --------
|
@@ -0,0 +1,3 @@
|
|
1
|
+
import { JsonRpcProvider } from '@ethersproject/providers';
|
2
|
+
import { AverageDepositTokenRatio, SupportedDex } from '../types';
|
3
|
+
export declare function getAverageDepositTokenRatios(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, timeIntervals?: number[]): Promise<AverageDepositTokenRatio[]>;
|
@@ -0,0 +1,220 @@
|
|
1
|
+
"use strict";
|
2
|
+
/* eslint-disable no-redeclare */
|
3
|
+
/* eslint-disable import/prefer-default-export */
|
4
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
5
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
6
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
7
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
8
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
9
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
10
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
11
|
+
});
|
12
|
+
};
|
13
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
14
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
15
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
16
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
17
|
+
function step(op) {
|
18
|
+
if (f) throw new TypeError("Generator is already executing.");
|
19
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
20
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
21
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
22
|
+
switch (op[0]) {
|
23
|
+
case 0: case 1: t = op; break;
|
24
|
+
case 4: _.label++; return { value: op[1], done: false };
|
25
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
26
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
27
|
+
default:
|
28
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
29
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
30
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
31
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
32
|
+
if (t[2]) _.ops.pop();
|
33
|
+
_.trys.pop(); continue;
|
34
|
+
}
|
35
|
+
op = body.call(thisArg, _);
|
36
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
37
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
38
|
+
}
|
39
|
+
};
|
40
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
41
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
42
|
+
if (ar || !(i in from)) {
|
43
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
44
|
+
ar[i] = from[i];
|
45
|
+
}
|
46
|
+
}
|
47
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
48
|
+
};
|
49
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
51
|
+
};
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
53
|
+
exports.getAverageDepositTokenRatios = void 0;
|
54
|
+
var bignumber_1 = require("@ethersproject/bignumber");
|
55
|
+
var types_1 = require("../types");
|
56
|
+
// eslint-disable-next-line import/no-cycle
|
57
|
+
var vault_1 = require("./vault");
|
58
|
+
var vaultEvents_1 = require("./vaultEvents");
|
59
|
+
var balances_1 = require("./balances");
|
60
|
+
var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
61
|
+
var timestamps_1 = __importDefault(require("../utils/timestamps"));
|
62
|
+
var deposit_1 = require("./deposit");
|
63
|
+
var getPrice_1 = __importDefault(require("../utils/getPrice"));
|
64
|
+
var calculateFees_1 = require("./calculateFees");
|
65
|
+
var priceFromPool_1 = require("./priceFromPool");
|
66
|
+
// total amounts at deposit or withdrawal in deposit tokens
|
67
|
+
function getTotalAmountsAtTransactionEvent(objTransactionEvent, isVaultInverted, token0Decimals, token1Decimals, beforeEvent) {
|
68
|
+
var price0 = !isVaultInverted
|
69
|
+
? 1
|
70
|
+
: (0, getPrice_1.default)(isVaultInverted, bignumber_1.BigNumber.from(objTransactionEvent.sqrtPrice), token0Decimals, token1Decimals);
|
71
|
+
var price1 = isVaultInverted
|
72
|
+
? 1
|
73
|
+
: (0, getPrice_1.default)(isVaultInverted, bignumber_1.BigNumber.from(objTransactionEvent.sqrtPrice), token0Decimals, token1Decimals);
|
74
|
+
var amount0 = beforeEvent
|
75
|
+
? Number((0, formatBigInt_1.default)(bignumber_1.BigNumber.from(objTransactionEvent.totalAmount0BeforeEvent), token0Decimals)) * price0
|
76
|
+
: Number((0, formatBigInt_1.default)(bignumber_1.BigNumber.from(objTransactionEvent.totalAmount0), token0Decimals)) * price0;
|
77
|
+
var amount1 = beforeEvent
|
78
|
+
? Number((0, formatBigInt_1.default)(bignumber_1.BigNumber.from(objTransactionEvent.totalAmount1BeforeEvent), token1Decimals)) * price1
|
79
|
+
: Number((0, formatBigInt_1.default)(bignumber_1.BigNumber.from(objTransactionEvent.totalAmount1), token1Decimals)) * price1;
|
80
|
+
return [amount0, amount1];
|
81
|
+
}
|
82
|
+
function getDtrAtTransactionEvent(objTransactionEvent, isVaultInverted, token0Decimals, token1Decimals, beforeEvent) {
|
83
|
+
if (beforeEvent === void 0) { beforeEvent = false; }
|
84
|
+
var timestamp = objTransactionEvent.createdAtTimestamp;
|
85
|
+
var totalAmounts = getTotalAmountsAtTransactionEvent(objTransactionEvent, isVaultInverted, token0Decimals, token1Decimals, beforeEvent);
|
86
|
+
var dtr = isVaultInverted
|
87
|
+
? (totalAmounts[1] / (totalAmounts[0] + totalAmounts[1])) * 100
|
88
|
+
: (totalAmounts[0] / (totalAmounts[0] + totalAmounts[1])) * 100;
|
89
|
+
return { atTimestamp: timestamp, percent: dtr };
|
90
|
+
}
|
91
|
+
function getDtrAtFeeCollectionEvent(objFeeCollectionEvent, isVaultInverted, token0Decimals, token1Decimals) {
|
92
|
+
var timestamp = objFeeCollectionEvent.createdAtTimestamp;
|
93
|
+
var totalAmounts = (0, calculateFees_1.getTotalAmountsAtFeeCollectionEvent)(objFeeCollectionEvent, isVaultInverted, token0Decimals, token1Decimals);
|
94
|
+
var dtr = isVaultInverted
|
95
|
+
? (totalAmounts[1] / (totalAmounts[0] + totalAmounts[1])) * 100
|
96
|
+
: (totalAmounts[0] / (totalAmounts[0] + totalAmounts[1])) * 100;
|
97
|
+
return { atTimestamp: timestamp, percent: dtr };
|
98
|
+
}
|
99
|
+
// time Interval in days
|
100
|
+
function getAllDtrsForTimeInterval(vaultAddress, jsonProvider, dex, timeInterval) {
|
101
|
+
return __awaiter(this, void 0, void 0, function () {
|
102
|
+
var chainId, vault, token0Decimals, token1Decimals, isVaultInverted, rebalances, collectedFees, deposits, withdraws, arrRebalances, arrOtherFees, arrDeposits, arrWithdraws, currentDtr, result;
|
103
|
+
var _a;
|
104
|
+
return __generator(this, function (_b) {
|
105
|
+
switch (_b.label) {
|
106
|
+
case 0: return [4 /*yield*/, jsonProvider.getNetwork()];
|
107
|
+
case 1:
|
108
|
+
chainId = (_b.sent()).chainId;
|
109
|
+
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
110
|
+
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
111
|
+
}
|
112
|
+
return [4 /*yield*/, (0, vault_1.getIchiVaultInfo)(chainId, dex, vaultAddress, jsonProvider)];
|
113
|
+
case 2:
|
114
|
+
vault = _b.sent();
|
115
|
+
if (!vault)
|
116
|
+
throw new Error("Vault ".concat(vaultAddress, " not found on chain ").concat(chainId, " and dex ").concat(dex));
|
117
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
|
118
|
+
case 3:
|
119
|
+
token0Decimals = _b.sent();
|
120
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
|
121
|
+
case 4:
|
122
|
+
token1Decimals = _b.sent();
|
123
|
+
return [4 /*yield*/, (0, deposit_1.isTokenAllowed)(1, vaultAddress, jsonProvider, dex)];
|
124
|
+
case 5:
|
125
|
+
isVaultInverted = _b.sent();
|
126
|
+
return [4 /*yield*/, (0, vaultEvents_1.getRebalances)(vaultAddress, jsonProvider, dex, timeInterval)];
|
127
|
+
case 6:
|
128
|
+
rebalances = _b.sent();
|
129
|
+
if (!rebalances)
|
130
|
+
throw new Error("Error getting vault rebalances on ".concat(chainId, " for ").concat(vaultAddress));
|
131
|
+
return [4 /*yield*/, (0, vaultEvents_1.getFeesCollectedEvents)(vaultAddress, jsonProvider, dex, timeInterval)];
|
132
|
+
case 7:
|
133
|
+
collectedFees = _b.sent();
|
134
|
+
if (!collectedFees)
|
135
|
+
throw new Error("Error getting vault collected fees on ".concat(chainId, " for ").concat(vaultAddress));
|
136
|
+
return [4 /*yield*/, (0, vaultEvents_1.getDeposits)(vaultAddress, jsonProvider, dex, timeInterval)];
|
137
|
+
case 8:
|
138
|
+
deposits = _b.sent();
|
139
|
+
if (!deposits)
|
140
|
+
throw new Error("Error getting vault deposits on ".concat(chainId, " for ").concat(vaultAddress));
|
141
|
+
return [4 /*yield*/, (0, vaultEvents_1.getWithdraws)(vaultAddress, jsonProvider, dex, timeInterval)];
|
142
|
+
case 9:
|
143
|
+
withdraws = _b.sent();
|
144
|
+
if (!withdraws)
|
145
|
+
throw new Error("Error getting vault withdraws on ".concat(chainId, " for ").concat(vaultAddress));
|
146
|
+
arrRebalances = rebalances
|
147
|
+
.slice()
|
148
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.default)(timeInterval); })
|
149
|
+
.map(function (e) { return getDtrAtFeeCollectionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
150
|
+
arrOtherFees = collectedFees
|
151
|
+
.slice()
|
152
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.default)(timeInterval); })
|
153
|
+
.map(function (e) { return getDtrAtFeeCollectionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
154
|
+
arrDeposits = deposits
|
155
|
+
.slice()
|
156
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.default)(timeInterval); })
|
157
|
+
.map(function (e) { return getDtrAtTransactionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
158
|
+
arrWithdraws = withdraws
|
159
|
+
.slice()
|
160
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.default)(timeInterval); })
|
161
|
+
.map(function (e) { return getDtrAtTransactionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
162
|
+
_a = {
|
163
|
+
atTimestamp: Math.floor(Date.now() / 1000).toString()
|
164
|
+
};
|
165
|
+
return [4 /*yield*/, (0, priceFromPool_1.getCurrentDtr)(vaultAddress, jsonProvider, dex, isVaultInverted, token0Decimals, token1Decimals)];
|
166
|
+
case 10:
|
167
|
+
currentDtr = (_a.percent = _b.sent(),
|
168
|
+
_a);
|
169
|
+
result = __spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([], arrDeposits, true), arrWithdraws, true), arrRebalances, true), arrOtherFees, true), [currentDtr], false).sort(function (a, b) { return Number(b.atTimestamp) - Number(a.atTimestamp); });
|
170
|
+
return [2 /*return*/, result];
|
171
|
+
}
|
172
|
+
});
|
173
|
+
});
|
174
|
+
}
|
175
|
+
function getAverageDtr(allDtrs) {
|
176
|
+
if (allDtrs.length === 0) {
|
177
|
+
return 0;
|
178
|
+
}
|
179
|
+
if (allDtrs.length === 1) {
|
180
|
+
return allDtrs[0].percent; // current value
|
181
|
+
}
|
182
|
+
var dtrsSum = 0;
|
183
|
+
for (var i = 0; i < allDtrs.length - 1; i += 1) {
|
184
|
+
dtrsSum +=
|
185
|
+
((allDtrs[i].percent + allDtrs[i + 1].percent) / 2) *
|
186
|
+
(Number(allDtrs[i + 1].atTimestamp) - Number(allDtrs[i].atTimestamp));
|
187
|
+
}
|
188
|
+
return dtrsSum / (Number(allDtrs[allDtrs.length - 1].atTimestamp) - Number(allDtrs[0].atTimestamp));
|
189
|
+
}
|
190
|
+
// timeInterval in days
|
191
|
+
function getAverageDepositTokenRatios(vaultAddress, jsonProvider, dex, timeIntervals) {
|
192
|
+
if (timeIntervals === void 0) { timeIntervals = [1, 7, 30]; }
|
193
|
+
return __awaiter(this, void 0, void 0, function () {
|
194
|
+
var forTimeIntervals, maxTimeInterval, allDtrs, result;
|
195
|
+
return __generator(this, function (_a) {
|
196
|
+
switch (_a.label) {
|
197
|
+
case 0:
|
198
|
+
forTimeIntervals = timeIntervals;
|
199
|
+
if (timeIntervals.length === 0) {
|
200
|
+
forTimeIntervals = [0];
|
201
|
+
}
|
202
|
+
maxTimeInterval = Math.max.apply(Math, forTimeIntervals);
|
203
|
+
return [4 /*yield*/, getAllDtrsForTimeInterval(vaultAddress, jsonProvider, dex, maxTimeInterval)];
|
204
|
+
case 1:
|
205
|
+
allDtrs = _a.sent();
|
206
|
+
result = [];
|
207
|
+
forTimeIntervals.forEach(function (interval) {
|
208
|
+
var dtrsForTimeInterval = interval === 0
|
209
|
+
? [allDtrs[0]]
|
210
|
+
: allDtrs.filter(function (elem) { return Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.default)(interval); });
|
211
|
+
var averageDtr = getAverageDtr(dtrsForTimeInterval);
|
212
|
+
result.push({ timePeriod: interval, percent: averageDtr });
|
213
|
+
});
|
214
|
+
return [2 /*return*/, result];
|
215
|
+
}
|
216
|
+
});
|
217
|
+
});
|
218
|
+
}
|
219
|
+
exports.getAverageDepositTokenRatios = getAverageDepositTokenRatios;
|
220
|
+
//# sourceMappingURL=calculateDtr.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"calculateDtr.js","sourceRoot":"","sources":["../../../src/functions/calculateDtr.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { JsonRpcProvider } from '@ethersproject/providers';
|
2
|
-
import { FeesInfo, SupportedDex, TotalAmounts, TotalAmountsBN } from '../types';
|
2
|
+
import { Fees, FeesInfo, SupportedDex, TotalAmounts, TotalAmountsBN } from '../types';
|
3
|
+
export declare function getTotalAmountsAtFeeCollectionEvent(objFees: Fees, isVaultInverted: boolean, token0Decimals: number, token1Decimals: number): [number, number];
|
3
4
|
export declare function getFeesCollected(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, days?: number): Promise<TotalAmounts>;
|
4
5
|
export declare function getFeesCollected(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, raw: true, days?: number): Promise<TotalAmountsBN>;
|
5
6
|
export declare function getFeesCollectedInfo(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, forDays?: number[]): Promise<FeesInfo[]>;
|