@ichidao/ichi-vaults-sdk 0.0.24 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +109 -4
- package/dist/src/__tests__/index.test.js +116 -17
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/functions/calculateApr.d.ts +4 -0
- package/dist/src/functions/calculateApr.js +152 -0
- package/dist/src/functions/calculateApr.js.map +1 -0
- package/dist/src/functions/calculateDtr.js +6 -6
- package/dist/src/functions/calculateDtr.js.map +1 -1
- package/dist/src/functions/calculateFees.js +4 -6
- package/dist/src/functions/calculateFees.js.map +1 -1
- package/dist/src/functions/deposit.js +3 -0
- package/dist/src/functions/deposit.js.map +1 -1
- package/dist/src/functions/priceFromPool.d.ts +2 -1
- package/dist/src/functions/priceFromPool.js +58 -18
- package/dist/src/functions/priceFromPool.js.map +1 -1
- package/dist/src/functions/vault.d.ts +5 -1
- package/dist/src/functions/vault.js +24 -1
- package/dist/src/functions/vault.js.map +1 -1
- package/dist/src/functions/vaultEvents.d.ts +3 -1
- package/dist/src/functions/vaultEvents.js +71 -8
- package/dist/src/functions/vaultEvents.js.map +1 -1
- package/dist/src/graphql/constants.js +40 -25
- package/dist/src/graphql/constants.js.map +1 -1
- package/dist/src/graphql/queries.js +4 -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/calculateApr.d.ts +4 -0
- package/dist/src/src/functions/priceFromPool.d.ts +2 -1
- package/dist/src/src/functions/vault.d.ts +5 -1
- package/dist/src/src/functions/vaultEvents.d.ts +3 -1
- package/dist/src/src/index.d.ts +1 -0
- package/dist/src/src/types/index.d.ts +24 -2
- package/dist/src/src/utils/timestamps.d.ts +2 -1
- package/dist/src/types/index.d.ts +24 -2
- package/dist/src/types/index.js +5 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/utils/config/addresses.js +75 -31
- package/dist/src/utils/config/addresses.js.map +1 -1
- package/dist/src/utils/timestamps.d.ts +2 -1
- package/dist/src/utils/timestamps.js +6 -1
- package/dist/src/utils/timestamps.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
@@ -27,8 +27,10 @@ This sdk contains collection of functions to interact with IchiVault's smart con
|
|
27
27
|
* [`getFeesCollected()`](#16-getFeesCollected)
|
28
28
|
* [`getFeesCollectedInfo()`](#17-getFeesCollectedInfo)
|
29
29
|
* [`getAverageDepositTokenRatios()`](#18-getAverageDepositTokenRatios)
|
30
|
-
* [`
|
31
|
-
* [`
|
30
|
+
* [`getLpApr()`](#19-getLpApr)
|
31
|
+
* [`getLpPriceChange()`](#20-getLpPriceChange)
|
32
|
+
* [`getIchiVaultInfo()`](#21-getIchiVaultInfo)
|
33
|
+
* [`getVaultsByTokens()`](#22-getVaultsByTokens)
|
32
34
|
|
33
35
|
## Installation
|
34
36
|
Install with
|
@@ -720,7 +722,79 @@ const averageDtr: AverageDepositTokenRatio[] = await getAverageDepositTokenRatio
|
|
720
722
|
)
|
721
723
|
```
|
722
724
|
|
723
|
-
#### 19. `
|
725
|
+
#### 19. `getLpApr()`
|
726
|
+
|
727
|
+
| param | type | default | required
|
728
|
+
| -------- | -------- | -------- | --------
|
729
|
+
| vaultAddress | string | - | true |
|
730
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
731
|
+
| dex | SupportedDex | - | true
|
732
|
+
| timeIntervals | number[] | [1, 7, 30] | false |
|
733
|
+
|
734
|
+
<br/>
|
735
|
+
|
736
|
+
```typescript
|
737
|
+
import { Web3Provider } from '@ethersproject/providers';
|
738
|
+
import { getLpApr, SupportedDex, VaultApr } from '@ichidao/ichi-vaults-sdk';
|
739
|
+
|
740
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
741
|
+
const vaultAddress = "0x3ac9...a5f132";
|
742
|
+
const dex = SupportedDex.UniswapV3;
|
743
|
+
const days = [2, 5, 14, 60];
|
744
|
+
|
745
|
+
const averageDtr: VaultApr[] = await getLpApr(
|
746
|
+
vaultAddress,
|
747
|
+
web3Provider
|
748
|
+
dex,
|
749
|
+
)
|
750
|
+
|
751
|
+
// - or -
|
752
|
+
|
753
|
+
const averageDtr: VaultApr[] = await getLpApr(
|
754
|
+
vaultAddress,
|
755
|
+
web3Provider
|
756
|
+
dex,
|
757
|
+
days,
|
758
|
+
)
|
759
|
+
```
|
760
|
+
|
761
|
+
#### 20. `getAverageDepositTokenRatios()`
|
762
|
+
|
763
|
+
| param | type | default | required
|
764
|
+
| -------- | -------- | -------- | --------
|
765
|
+
| vaultAddress | string | - | true |
|
766
|
+
| jsonProvider | [JsonRpcProvider](https://github.com/ethers-io/ethers.js/blob/f97b92bbb1bde22fcc44100af78d7f31602863ab/packages/providers/src.ts/json-rpc-provider.ts#L393) | - | true
|
767
|
+
| dex | SupportedDex | - | true
|
768
|
+
| timeIntervals | number[] | [1, 7, 30] | false |
|
769
|
+
|
770
|
+
<br/>
|
771
|
+
|
772
|
+
```typescript
|
773
|
+
import { Web3Provider } from '@ethersproject/providers';
|
774
|
+
import { getFeesCollectedInfo, SupportedDex } from '@ichidao/ichi-vaults-sdk';
|
775
|
+
|
776
|
+
const web3Provider = new Web3Provider(YOUR_WEB3_PROVIDER);
|
777
|
+
const vaultAddress = "0x3ac9...a5f132";
|
778
|
+
const dex = SupportedDex.UniswapV3;
|
779
|
+
const days = [2, 5, 14, 60];
|
780
|
+
|
781
|
+
const averageDtr: AverageDepositTokenRatio[] = await getAverageDepositTokenRatios(
|
782
|
+
vaultAddress,
|
783
|
+
web3Provider
|
784
|
+
dex,
|
785
|
+
)
|
786
|
+
|
787
|
+
// - or -
|
788
|
+
|
789
|
+
const averageDtr: AverageDepositTokenRatio[] = await getAverageDepositTokenRatios(
|
790
|
+
vaultAddress,
|
791
|
+
web3Provider
|
792
|
+
dex,
|
793
|
+
days,
|
794
|
+
)
|
795
|
+
```
|
796
|
+
|
797
|
+
#### 21. `getIchiVaultInfo()`
|
724
798
|
|
725
799
|
| param | type | default | required
|
726
800
|
| -------- | -------- | -------- | --------
|
@@ -745,7 +819,7 @@ if (vaultInfo) {
|
|
745
819
|
}
|
746
820
|
```
|
747
821
|
|
748
|
-
####
|
822
|
+
#### 22. `getVaultsByTokens()`
|
749
823
|
|
750
824
|
| param | type | default | required
|
751
825
|
| -------- | -------- | -------- | --------
|
@@ -780,13 +854,16 @@ if (!vault) {
|
|
780
854
|
```typescript
|
781
855
|
enum SupportedChainId {
|
782
856
|
arbitrum = 42161,
|
857
|
+
base = 8453,
|
783
858
|
bsc = 56,
|
859
|
+
celo = 42220,
|
784
860
|
eon = 7332,
|
785
861
|
evmos = 9001,
|
786
862
|
fantom = 250,
|
787
863
|
hedera_testnet = 296,
|
788
864
|
linea = 59144,
|
789
865
|
mainnet = 1,
|
866
|
+
mantle = 5000,
|
790
867
|
polygon = 137,
|
791
868
|
zksync_era = 324,
|
792
869
|
zksync_era_testnet = 280,
|
@@ -799,6 +876,7 @@ enum SupportedChainId {
|
|
799
876
|
enum SupportedDex {
|
800
877
|
Ascent = 'Ascent',
|
801
878
|
Blueprint = 'Blueprint',
|
879
|
+
Cleo = 'Cleo',
|
802
880
|
Equalizer = 'Equalizer',
|
803
881
|
Forge = 'Forge',
|
804
882
|
Horiza = 'Horiza',
|
@@ -837,3 +915,30 @@ type FeesInfo = {
|
|
837
915
|
pctAPR: number; // yearly APR based on the timePeriod
|
838
916
|
}
|
839
917
|
```
|
918
|
+
|
919
|
+
### AverageDepositTokenRatio
|
920
|
+
|
921
|
+
```typescript
|
922
|
+
type AverageDepositTokenRatio = {
|
923
|
+
timePeriod: number; // in days
|
924
|
+
percent: number;
|
925
|
+
}
|
926
|
+
```
|
927
|
+
|
928
|
+
### VaultApr
|
929
|
+
|
930
|
+
```typescript
|
931
|
+
type VaultApr = {
|
932
|
+
timeInterval: number; // in days
|
933
|
+
apr: number; // percent
|
934
|
+
}
|
935
|
+
```
|
936
|
+
|
937
|
+
### PriceChange
|
938
|
+
|
939
|
+
```typescript
|
940
|
+
type PriceChange = {
|
941
|
+
timeInterval: number; // in days
|
942
|
+
priceChange: number;
|
943
|
+
}
|
944
|
+
```
|
@@ -52,23 +52,23 @@ var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
|
52
52
|
var parseBigInt_1 = __importDefault(require("../utils/parseBigInt"));
|
53
53
|
var hdWalletProvider = new hdwallet_provider_1.default([process.env.PRIVATE_KEY], process.env.PROVIDER_URL, 0, 1);
|
54
54
|
var provider = new providers_1.Web3Provider(hdWalletProvider, {
|
55
|
-
chainId: types_1.SupportedChainId.
|
56
|
-
name: '
|
55
|
+
chainId: types_1.SupportedChainId.bsc,
|
56
|
+
name: 'Binance Smart Chain',
|
57
57
|
});
|
58
58
|
var account = process.env.ACCOUNT;
|
59
59
|
var vault = {
|
60
|
-
address: '
|
61
|
-
chainId: types_1.SupportedChainId.
|
62
|
-
dex: types_1.SupportedDex.
|
60
|
+
address: '0x92ce6311d4df089591a0b438265667c452d23fd0',
|
61
|
+
chainId: types_1.SupportedChainId.bsc,
|
62
|
+
dex: types_1.SupportedDex.Thena,
|
63
63
|
};
|
64
64
|
var tokens = {
|
65
|
-
pairedToken: '
|
66
|
-
depositToken: '
|
65
|
+
pairedToken: '0x0EF4A107b48163ab4b57FCa36e1352151a587Be4',
|
66
|
+
depositToken: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
|
67
67
|
};
|
68
68
|
var iface = new ethers_1.ethers.utils.Interface(IchiVault_json_1.default);
|
69
|
-
var
|
70
|
-
var
|
71
|
-
var sharesToWithdraw = '0.
|
69
|
+
var amount1 = '0.5';
|
70
|
+
var amount0 = '0';
|
71
|
+
var sharesToWithdraw = '0.004';
|
72
72
|
var bigAmount = '1000';
|
73
73
|
describe('Vault', function () {
|
74
74
|
var share = null;
|
@@ -90,13 +90,13 @@ describe('Vault', function () {
|
|
90
90
|
switch (_a.label) {
|
91
91
|
case 0:
|
92
92
|
approve = null;
|
93
|
-
return [4 /*yield*/, (0, index_1.approveDepositToken)(account,
|
93
|
+
return [4 /*yield*/, (0, index_1.approveDepositToken)(account, 1, vault.address, provider, vault.dex, amount1)];
|
94
94
|
case 1:
|
95
95
|
approve = _a.sent();
|
96
96
|
return [4 /*yield*/, approve.wait()];
|
97
97
|
case 2:
|
98
98
|
_a.sent();
|
99
|
-
return [4 /*yield*/, (0, index_1.isDepositTokenApproved)(account,
|
99
|
+
return [4 /*yield*/, (0, index_1.isDepositTokenApproved)(account, 1, amount1, vault.address, provider, vault.dex)];
|
100
100
|
case 3:
|
101
101
|
isApproved = _a.sent();
|
102
102
|
expect(isApproved).toEqual(true);
|
@@ -108,7 +108,7 @@ describe('Vault', function () {
|
|
108
108
|
var isApproved;
|
109
109
|
return __generator(this, function (_a) {
|
110
110
|
switch (_a.label) {
|
111
|
-
case 0: return [4 /*yield*/, (0, index_1.isDepositTokenApproved)(account,
|
111
|
+
case 0: return [4 /*yield*/, (0, index_1.isDepositTokenApproved)(account, 1, bigAmount, vault.address, provider, vault.dex)];
|
112
112
|
case 1:
|
113
113
|
isApproved = _a.sent();
|
114
114
|
expect(isApproved).toEqual(false);
|
@@ -169,7 +169,65 @@ describe('Vault', function () {
|
|
169
169
|
.find(function (e) { return e && e.name === 'Deposit'; })) === null || _a === void 0 ? void 0 : _a.args;
|
170
170
|
console.log('Deposit:', result);
|
171
171
|
share = (0, formatBigInt_1.default)(result.shares);
|
172
|
-
console.log('Deposit share:',
|
172
|
+
console.log('Deposit share:', share);
|
173
|
+
return [2 /*return*/];
|
174
|
+
}
|
175
|
+
});
|
176
|
+
}); });
|
177
|
+
it.skip('depositNativeToken', function () { return __awaiter(void 0, void 0, void 0, function () {
|
178
|
+
var isAllowed0, isAllowed1, maxDeposit0, maxDeposit1, vaultFromQuery, token0Decimals, token1Decimals, r, a, result;
|
179
|
+
var _a;
|
180
|
+
return __generator(this, function (_b) {
|
181
|
+
switch (_b.label) {
|
182
|
+
case 0: return [4 /*yield*/, (0, index_1.isTokenAllowed)(0, vault.address, provider, vault.dex)];
|
183
|
+
case 1:
|
184
|
+
isAllowed0 = _b.sent();
|
185
|
+
return [4 /*yield*/, (0, index_1.isTokenAllowed)(1, vault.address, provider, vault.dex)];
|
186
|
+
case 2:
|
187
|
+
isAllowed1 = _b.sent();
|
188
|
+
return [4 /*yield*/, (0, index_1.getMaxDepositAmount)(0, vault.address, provider, vault.dex)];
|
189
|
+
case 3:
|
190
|
+
maxDeposit0 = _b.sent();
|
191
|
+
return [4 /*yield*/, (0, index_1.getMaxDepositAmount)(1, vault.address, provider, vault.dex)];
|
192
|
+
case 4:
|
193
|
+
maxDeposit1 = _b.sent();
|
194
|
+
return [4 /*yield*/, (0, index_1.getIchiVaultInfo)(vault.chainId, vault.dex, vault.address, provider)];
|
195
|
+
case 5:
|
196
|
+
vaultFromQuery = _b.sent();
|
197
|
+
if (!vaultFromQuery)
|
198
|
+
throw new Error("Vault ".concat(vault.address, " not found on chain ").concat(vault.chainId, " and dex ").concat(vault.dex, "]"));
|
199
|
+
return [4 /*yield*/, (0, index_1.getTokenDecimals)(vaultFromQuery.tokenA, provider)];
|
200
|
+
case 6:
|
201
|
+
token0Decimals = _b.sent();
|
202
|
+
return [4 /*yield*/, (0, index_1.getTokenDecimals)(vaultFromQuery.tokenB, provider)];
|
203
|
+
case 7:
|
204
|
+
token1Decimals = _b.sent();
|
205
|
+
if (!isAllowed0 && Number(amount0) > 0)
|
206
|
+
return [2 /*return*/];
|
207
|
+
if (!isAllowed1 && Number(amount1) > 0)
|
208
|
+
return [2 /*return*/];
|
209
|
+
if ((0, parseBigInt_1.default)(amount0, token0Decimals).gt(maxDeposit0) || (0, parseBigInt_1.default)(amount1, token1Decimals).gt(maxDeposit1))
|
210
|
+
return [2 /*return*/];
|
211
|
+
return [4 /*yield*/, (0, index_1.depositNativeToken)(account, amount0, amount1, vault.address, provider, vault.dex)];
|
212
|
+
case 8:
|
213
|
+
r = _b.sent();
|
214
|
+
return [4 /*yield*/, r.wait()];
|
215
|
+
case 9:
|
216
|
+
a = _b.sent();
|
217
|
+
result = (_a = a.logs
|
218
|
+
.map(function (e) {
|
219
|
+
try {
|
220
|
+
console.log('iface.parseLog(e):', iface.parseLog(e));
|
221
|
+
return iface.parseLog(e);
|
222
|
+
}
|
223
|
+
catch (error) {
|
224
|
+
return null;
|
225
|
+
}
|
226
|
+
})
|
227
|
+
.find(function (e) { return e && e.name === 'Deposit'; })) === null || _a === void 0 ? void 0 : _a.args;
|
228
|
+
console.log('Deposit:', result);
|
229
|
+
share = (0, formatBigInt_1.default)(result.shares);
|
230
|
+
console.log('Deposit share:', share);
|
173
231
|
return [2 /*return*/];
|
174
232
|
}
|
175
233
|
});
|
@@ -181,7 +239,7 @@ describe('Vault', function () {
|
|
181
239
|
case 0: return [4 /*yield*/, (0, index_1.getUserBalance)(account, vault.address, provider, vault.dex)];
|
182
240
|
case 1:
|
183
241
|
userShares = _a.sent();
|
184
|
-
expect(Number(userShares)).
|
242
|
+
expect(Number(userShares)).toBeGreaterThanOrEqual(0);
|
185
243
|
return [2 /*return*/];
|
186
244
|
}
|
187
245
|
});
|
@@ -205,7 +263,7 @@ describe('Vault', function () {
|
|
205
263
|
case 0: return [4 /*yield*/, (0, index_1.getUserAmounts)(account, vault.address, provider, vault.dex)];
|
206
264
|
case 1:
|
207
265
|
amounts = _a.sent();
|
208
|
-
expect(Number(amounts.amount0)).
|
266
|
+
expect(Number(amounts.amount0)).toBeGreaterThanOrEqual(0);
|
209
267
|
return [2 /*return*/];
|
210
268
|
}
|
211
269
|
});
|
@@ -226,7 +284,7 @@ describe('Vault', function () {
|
|
226
284
|
var dataPoints;
|
227
285
|
return __generator(this, function (_a) {
|
228
286
|
switch (_a.label) {
|
229
|
-
case 0: return [4 /*yield*/, (0, index_1.getFeesCollectedInfo)(vault.address, provider, vault.dex, [
|
287
|
+
case 0: return [4 /*yield*/, (0, index_1.getFeesCollectedInfo)(vault.address, provider, vault.dex, [1, 7, 30, 1000])];
|
230
288
|
case 1:
|
231
289
|
dataPoints = _a.sent();
|
232
290
|
expect(Number(dataPoints[0].pctAPR)).toBeGreaterThanOrEqual(0);
|
@@ -234,6 +292,46 @@ describe('Vault', function () {
|
|
234
292
|
}
|
235
293
|
});
|
236
294
|
}); });
|
295
|
+
it('getAverageDepositTokenRatios', function () { return __awaiter(void 0, void 0, void 0, function () {
|
296
|
+
var dataPoints;
|
297
|
+
return __generator(this, function (_a) {
|
298
|
+
switch (_a.label) {
|
299
|
+
case 0: return [4 /*yield*/, (0, index_1.getAverageDepositTokenRatios)(vault.address, provider, vault.dex, [1, 7, 30, 1000])];
|
300
|
+
case 1:
|
301
|
+
dataPoints = _a.sent();
|
302
|
+
expect(Number(dataPoints[0].percent)).toBeGreaterThanOrEqual(0);
|
303
|
+
return [2 /*return*/];
|
304
|
+
}
|
305
|
+
});
|
306
|
+
}); });
|
307
|
+
it('getLpApr', function () { return __awaiter(void 0, void 0, void 0, function () {
|
308
|
+
var aprs;
|
309
|
+
var _a;
|
310
|
+
return __generator(this, function (_b) {
|
311
|
+
switch (_b.label) {
|
312
|
+
case 0: return [4 /*yield*/, (0, index_1.getLpApr)(vault.address, provider, vault.dex, [1, 7, 30, 1000])];
|
313
|
+
case 1:
|
314
|
+
aprs = _b.sent();
|
315
|
+
console.log({ aprs: aprs });
|
316
|
+
expect(Number((_a = aprs[0]) === null || _a === void 0 ? void 0 : _a.timeInterval)).toEqual(1);
|
317
|
+
return [2 /*return*/];
|
318
|
+
}
|
319
|
+
});
|
320
|
+
}); });
|
321
|
+
it('getLpPriceChange', function () { return __awaiter(void 0, void 0, void 0, function () {
|
322
|
+
var priceChange;
|
323
|
+
var _a;
|
324
|
+
return __generator(this, function (_b) {
|
325
|
+
switch (_b.label) {
|
326
|
+
case 0: return [4 /*yield*/, (0, index_1.getLpPriceChange)(vault.address, provider, vault.dex, [1, 7, 30, 1000])];
|
327
|
+
case 1:
|
328
|
+
priceChange = _b.sent();
|
329
|
+
console.log({ priceChange: priceChange });
|
330
|
+
expect(Number((_a = priceChange[0]) === null || _a === void 0 ? void 0 : _a.timeInterval)).toEqual(1);
|
331
|
+
return [2 /*return*/];
|
332
|
+
}
|
333
|
+
});
|
334
|
+
}); });
|
237
335
|
it.skip('withdraw:deposited', function () { return __awaiter(void 0, void 0, void 0, function () {
|
238
336
|
return __generator(this, function (_a) {
|
239
337
|
switch (_a.label) {
|
@@ -283,6 +381,7 @@ describe('GraphQL', function () {
|
|
283
381
|
case 0: return [4 /*yield*/, (0, index_1.getVaultsByTokens)(vault.chainId, vault.dex, tokens.depositToken, tokens.pairedToken)];
|
284
382
|
case 1:
|
285
383
|
a = _a.sent();
|
384
|
+
console.log(a[0]);
|
286
385
|
expect(a).toBeTruthy();
|
287
386
|
return [2 /*return*/];
|
288
387
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7B,yBAAuB;AAEvB,iFAA0D;AAC1D,sDAAwD;AACxD,iCAAgC;AAChC,kCAA0D;AAC1D,0EAAmD;AACnD,
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../src/__tests__/index.test.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7B,yBAAuB;AAEvB,iFAA0D;AAC1D,sDAAwD;AACxD,iCAAgC;AAChC,kCAA0D;AAC1D,0EAAmD;AACnD,kCAoBkB;AAClB,uEAAiD;AACjD,qEAA+C;AAE/C,IAAM,gBAAgB,GAAG,IAAI,2BAAgB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,WAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,YAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE3G,IAAM,QAAQ,GAAG,IAAI,wBAAY,CAAC,gBAAgB,EAAE;IAClD,OAAO,EAAE,wBAAgB,CAAC,GAAG;IAC7B,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AACH,IAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAC;AAErC,IAAM,KAAK,GAAG;IACZ,OAAO,EAAE,4CAA4C;IACrD,OAAO,EAAE,wBAAgB,CAAC,GAAG;IAC7B,GAAG,EAAE,oBAAY,CAAC,KAAK;CACxB,CAAC;AAEF,IAAM,MAAM,GAAG;IACb,WAAW,EAAE,4CAA4C;IACzD,YAAY,EAAE,4CAA4C;CAC3D,CAAC;AAEF,IAAM,KAAK,GAAG,IAAI,eAAM,CAAC,KAAK,CAAC,SAAS,CAAC,wBAAa,CAAC,CAAC;AACxD,IAAM,OAAO,GAAG,KAAK,CAAC;AACtB,IAAM,OAAO,GAAG,GAAG,CAAC;AACpB,IAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,IAAM,SAAS,GAAG,MAAM,CAAC;AAEzB,QAAQ,CAAC,OAAO,EAAE;IAChB,IAAI,KAAK,GAAkB,IAAI,CAAC;IAEhC,EAAE,CAAC,gBAAgB,EAAE;;;;wBACC,qBAAM,IAAA,sBAAc,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAtE,WAAW,GAAG,SAAwD;oBAE5E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;;;SAChD,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;;;;;oBACb,OAAO,GAAsC,IAAI,CAAC;oBAC5C,qBAAM,IAAA,2BAAmB,EAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAA;;oBAA5F,OAAO,GAAG,SAAkF,CAAC;oBAC7F,qBAAM,OAAO,CAAC,IAAI,EAAE,EAAA;;oBAApB,SAAoB,CAAC;oBACF,qBAAM,IAAA,8BAAsB,EAAC,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAlG,UAAU,GAAG,SAAqF;oBACxG,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;;SAClC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE;;;;wBACR,qBAAM,IAAA,8BAAsB,EAAC,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAApG,UAAU,GAAG,SAAuF;oBAC1G,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;;;SACnC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE;;;;;wBACE,qBAAM,IAAA,sBAAc,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAxE,UAAU,GAAG,SAA2D;oBAC3D,qBAAM,IAAA,sBAAc,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAxE,UAAU,GAAG,SAA2D;oBAE1D,qBAAM,IAAA,2BAAmB,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA9E,WAAW,GAAG,SAAgE;oBAChE,qBAAM,IAAA,2BAAmB,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA9E,WAAW,GAAG,SAAgE;oBAE7D,qBAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;oBAA1F,cAAc,GAAG,SAAyE;oBAChG,IAAI,CAAC,cAAc;wBACjB,MAAM,IAAI,KAAK,CAAC,gBAAS,KAAK,CAAC,OAAO,iCAAuB,KAAK,CAAC,OAAO,sBAAY,KAAK,CAAC,GAAG,MAAG,CAAC,CAAC;oBAC/E,qBAAM,IAAA,wBAAgB,EAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAA;;oBAAxE,cAAc,GAAG,SAAuD;oBACvD,qBAAM,IAAA,wBAAgB,EAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAA;;oBAAxE,cAAc,GAAG,SAAuD;oBAE9E,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;wBAAE,sBAAO;oBAC/C,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;wBAAE,sBAAO;oBAC/C,IAAI,IAAA,qBAAW,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAA,qBAAW,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;wBAC9G,sBAAO;oBAEC,qBAAM,IAAA,eAAO,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAhF,CAAC,GAAG,SAA4E;oBAC5E,qBAAM,CAAC,CAAC,IAAI,EAAE,EAAA;;oBAAlB,CAAC,GAAG,SAAc;oBAElB,MAAM,GAAQ,MAAA,CAAC,CAAC,IAAI;yBACvB,GAAG,CAAC,UAAC,CAAM;wBACV,IAAI;4BACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBAC1B;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,IAAI,CAAC;yBACb;oBACH,CAAC,CAAC;yBACD,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAzB,CAAyB,CAAC,0CAAE,IAAI,CAAC;oBAErD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAEhC,KAAK,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;;;;SACtC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;;;;;wBACT,qBAAM,IAAA,sBAAc,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAxE,UAAU,GAAG,SAA2D;oBAC3D,qBAAM,IAAA,sBAAc,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAxE,UAAU,GAAG,SAA2D;oBAE1D,qBAAM,IAAA,2BAAmB,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA9E,WAAW,GAAG,SAAgE;oBAChE,qBAAM,IAAA,2BAAmB,EAAC,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA9E,WAAW,GAAG,SAAgE;oBAE7D,qBAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;oBAA1F,cAAc,GAAG,SAAyE;oBAChG,IAAI,CAAC,cAAc;wBACjB,MAAM,IAAI,KAAK,CAAC,gBAAS,KAAK,CAAC,OAAO,iCAAuB,KAAK,CAAC,OAAO,sBAAY,KAAK,CAAC,GAAG,MAAG,CAAC,CAAC;oBAC/E,qBAAM,IAAA,wBAAgB,EAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAA;;oBAAxE,cAAc,GAAG,SAAuD;oBACvD,qBAAM,IAAA,wBAAgB,EAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAA;;oBAAxE,cAAc,GAAG,SAAuD;oBAE9E,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;wBAAE,sBAAO;oBAC/C,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;wBAAE,sBAAO;oBAC/C,IAAI,IAAA,qBAAW,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAA,qBAAW,EAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;wBAC9G,sBAAO;oBAEC,qBAAM,IAAA,0BAAkB,EAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA3F,CAAC,GAAG,SAAuF;oBACvF,qBAAM,CAAC,CAAC,IAAI,EAAE,EAAA;;oBAAlB,CAAC,GAAG,SAAc;oBAElB,MAAM,GAAQ,MAAA,CAAC,CAAC,IAAI;yBACvB,GAAG,CAAC,UAAC,CAAM;wBACV,IAAI;4BACF,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;4BACrD,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;yBAC1B;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,IAAI,CAAC;yBACb;oBACH,CAAC,CAAC;yBACD,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAzB,CAAyB,CAAC,0CAAE,IAAI,CAAC;oBAErD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;oBAEhC,KAAK,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACpC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;;;;SACtC,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE;;;;wBACA,qBAAM,IAAA,sBAAc,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA9E,UAAU,GAAG,SAAiE;oBAEpF,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;SACtD,CAAC,CAAC;IAEH,EAAE,CAAC,iBAAiB,EAAE;;;;wBACC,qBAAM,IAAA,uBAAe,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAAxE,YAAY,GAAG,SAAyD;oBAE9E,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;;;;SACxD,CAAC,CAAC;IAEH,EAAE,CAAC,gBAAgB,EAAE;;;;wBACH,qBAAM,IAAA,sBAAc,EAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAA3E,OAAO,GAAG,SAAiE;oBAEjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;SAC3D,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;;;;wBACT,qBAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,EAAA;;oBAApE,OAAO,GAAG,SAA0D;oBAE1E,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;SACtD,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE;;;;wBACN,qBAAM,IAAA,4BAAoB,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAA;;oBAA7F,UAAU,GAAG,SAAgF;oBAEnG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;SAChE,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;;;;wBACd,qBAAM,IAAA,oCAA4B,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAA;;oBAArG,UAAU,GAAG,SAAwF;oBAE3G,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;;;;SACjE,CAAC,CAAC;IAEH,EAAE,CAAC,UAAU,EAAE;;;;;wBACA,qBAAM,IAAA,gBAAQ,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAA;;oBAA3E,IAAI,GAAG,SAAoE;oBACjF,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC;oBACtB,MAAM,CAAC,MAAM,CAAC,MAAA,IAAI,CAAC,CAAC,CAAC,0CAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;;;SAClD,CAAC,CAAC;IACH,EAAE,CAAC,kBAAkB,EAAE;;;;;wBACD,qBAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC,EAAA;;oBAA1F,WAAW,GAAG,SAA4E;oBAChG,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,aAAA,EAAE,CAAC,CAAC;oBAC7B,MAAM,CAAC,MAAM,CAAC,MAAA,WAAW,CAAC,CAAC,CAAC,0CAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;;;SACzD,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;;;;oBAC5B,KAAK,GAAG,gBAAgB,CAAC;oBAEzB,qBAAM,IAAA,gBAAQ,EAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;6BAC/D,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC;6BACrB,IAAI,CAAC,UAAC,CAAC;;4BACN,IAAM,MAAM,GAAQ,MAAA,CAAC,CAAC,IAAI;iCACvB,GAAG,CAAC,UAAC,CAAM;gCACV,IAAI;oCACF,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iCAC1B;gCAAC,OAAO,KAAK,EAAE;oCACd,OAAO,IAAI,CAAC;iCACb;4BACH,CAAC,CAAC;iCACD,IAAI,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAA1B,CAA0B,CAAC,0CAAE,IAAI,CAAC;4BAEtD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;4BACjC,MAAM,CAAC,IAAA,sBAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACrD,CAAC,CAAC,EAAA;;oBAfJ,SAeI,CAAC;;;;SACN,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE;IAClB,EAAE,CAAC,kBAAkB,EAAE;;;;wBACX,qBAAM,IAAA,wBAAgB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAA;;oBAA7E,CAAC,GAAG,SAAyE;oBACnF,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;;;;SACxB,CAAC,CAAC;IACH,EAAE,CAAC,sBAAsB,EAAE;;;;wBACf,qBAAM,IAAA,yBAAiB,EAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,EAAA;;oBAA9F,CAAC,GAAG,SAA0F;oBACpG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAClB,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;;;;SACxB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { JsonRpcProvider } from '@ethersproject/providers';
|
2
|
+
import { PriceChange, SupportedDex, VaultApr } from '../types';
|
3
|
+
export declare function getLpApr(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, timeIntervals?: number[]): Promise<(VaultApr | null)[]>;
|
4
|
+
export declare function getLpPriceChange(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, timeIntervals?: number[]): Promise<(PriceChange | null)[]>;
|
@@ -0,0 +1,152 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
18
|
+
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;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
36
|
+
}
|
37
|
+
};
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
40
|
+
};
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
42
|
+
exports.getLpPriceChange = exports.getLpApr = void 0;
|
43
|
+
var ethers_1 = require("ethers");
|
44
|
+
// eslint-disable-next-line import/no-cycle
|
45
|
+
var vault_1 = require("./vault");
|
46
|
+
var balances_1 = require("./balances");
|
47
|
+
var priceFromPool_1 = require("./priceFromPool");
|
48
|
+
var vaultEvents_1 = require("./vaultEvents");
|
49
|
+
var timestamps_1 = require("../utils/timestamps");
|
50
|
+
var getPrice_1 = __importDefault(require("../utils/getPrice"));
|
51
|
+
function getLpPriceAt(vaultEvents, daysAgo, isVaultInverted, token0decimals, token1decimals) {
|
52
|
+
var e = (0, vaultEvents_1.getVaultStateAt)(vaultEvents, daysAgo);
|
53
|
+
if (!e) {
|
54
|
+
return null;
|
55
|
+
}
|
56
|
+
else {
|
57
|
+
var depositTokenDecimals = isVaultInverted ? token1decimals : token0decimals;
|
58
|
+
var scarseTokenDecimals = isVaultInverted ? token0decimals : token1decimals;
|
59
|
+
var totalAmount0 = e.totalAmount0;
|
60
|
+
var totalAmount1 = e.totalAmount1;
|
61
|
+
var sqrtPrice = e.sqrtPrice;
|
62
|
+
var price = (0, getPrice_1.default)(isVaultInverted, ethers_1.BigNumber.from(sqrtPrice), depositTokenDecimals, scarseTokenDecimals, 15);
|
63
|
+
var tvl = !isVaultInverted
|
64
|
+
? Number(totalAmount0) + Number(totalAmount1) * price
|
65
|
+
: Number(totalAmount1) + Number(totalAmount0) * price;
|
66
|
+
var totalSupply = Number(e.totalSupply);
|
67
|
+
var days = (0, timestamps_1.millisecondsToDays)(Date.now() - Number(e.createdAtTimestamp) * 1000);
|
68
|
+
if (totalSupply === 0) {
|
69
|
+
return null;
|
70
|
+
}
|
71
|
+
return { timeInterval: days, priceChange: tvl / totalSupply };
|
72
|
+
}
|
73
|
+
}
|
74
|
+
function getLpApr(vaultAddress, jsonProvider, dex, timeIntervals) {
|
75
|
+
return __awaiter(this, void 0, void 0, function () {
|
76
|
+
var vault, decimals0, decimals1, isInv, currLpPrice, arrDays, result, vaultEvents;
|
77
|
+
return __generator(this, function (_a) {
|
78
|
+
switch (_a.label) {
|
79
|
+
case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
|
80
|
+
case 1:
|
81
|
+
vault = (_a.sent()).vault;
|
82
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
|
83
|
+
case 2:
|
84
|
+
decimals0 = _a.sent();
|
85
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
|
86
|
+
case 3:
|
87
|
+
decimals1 = _a.sent();
|
88
|
+
isInv = vault.allowTokenB;
|
89
|
+
return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
|
90
|
+
case 4:
|
91
|
+
currLpPrice = _a.sent();
|
92
|
+
arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
|
93
|
+
result = [];
|
94
|
+
return [4 /*yield*/, (0, vaultEvents_1.getAllVaultEvents)(vaultAddress, jsonProvider, dex)];
|
95
|
+
case 5:
|
96
|
+
vaultEvents = _a.sent();
|
97
|
+
arrDays.forEach(function (d) {
|
98
|
+
var objLpPrice = getLpPriceAt(vaultEvents, d, isInv, decimals0, decimals1);
|
99
|
+
if (!(objLpPrice === null || objLpPrice === void 0 ? void 0 : objLpPrice.priceChange)) {
|
100
|
+
result.push({ timeInterval: d, apr: null });
|
101
|
+
}
|
102
|
+
else {
|
103
|
+
var days = objLpPrice.timeInterval;
|
104
|
+
var apr = ((currLpPrice - objLpPrice.priceChange) / ((objLpPrice.priceChange * days) / 365)) * 100;
|
105
|
+
result.push({ timeInterval: d, apr: apr });
|
106
|
+
}
|
107
|
+
});
|
108
|
+
return [2 /*return*/, result];
|
109
|
+
}
|
110
|
+
});
|
111
|
+
});
|
112
|
+
}
|
113
|
+
exports.getLpApr = getLpApr;
|
114
|
+
function getLpPriceChange(vaultAddress, jsonProvider, dex, timeIntervals) {
|
115
|
+
return __awaiter(this, void 0, void 0, function () {
|
116
|
+
var vault, decimals0, decimals1, isInv, currLpPrice, arrDays, result, vaultEvents;
|
117
|
+
return __generator(this, function (_a) {
|
118
|
+
switch (_a.label) {
|
119
|
+
case 0: return [4 /*yield*/, (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex)];
|
120
|
+
case 1:
|
121
|
+
vault = (_a.sent()).vault;
|
122
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenA, jsonProvider)];
|
123
|
+
case 2:
|
124
|
+
decimals0 = _a.sent();
|
125
|
+
return [4 /*yield*/, (0, balances_1.getTokenDecimals)(vault.tokenB, jsonProvider)];
|
126
|
+
case 3:
|
127
|
+
decimals1 = _a.sent();
|
128
|
+
isInv = vault.allowTokenB;
|
129
|
+
return [4 /*yield*/, (0, priceFromPool_1.getCurrLpPrice)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
|
130
|
+
case 4:
|
131
|
+
currLpPrice = _a.sent();
|
132
|
+
arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
|
133
|
+
result = [];
|
134
|
+
return [4 /*yield*/, (0, vaultEvents_1.getAllVaultEvents)(vaultAddress, jsonProvider, dex)];
|
135
|
+
case 5:
|
136
|
+
vaultEvents = _a.sent();
|
137
|
+
arrDays.forEach(function (d) {
|
138
|
+
var objLpPrice = getLpPriceAt(vaultEvents, d, isInv, decimals0, decimals1);
|
139
|
+
if (!(objLpPrice === null || objLpPrice === void 0 ? void 0 : objLpPrice.priceChange)) {
|
140
|
+
result.push({ timeInterval: d, priceChange: null });
|
141
|
+
}
|
142
|
+
else {
|
143
|
+
result.push({ timeInterval: d, priceChange: currLpPrice - objLpPrice.priceChange });
|
144
|
+
}
|
145
|
+
});
|
146
|
+
return [2 /*return*/, result];
|
147
|
+
}
|
148
|
+
});
|
149
|
+
});
|
150
|
+
}
|
151
|
+
exports.getLpPriceChange = getLpPriceChange;
|
152
|
+
//# sourceMappingURL=calculateApr.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"calculateApr.js","sourceRoot":"","sources":["../../../src/functions/calculateApr.ts"],"names":[],"mappings":"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"}
|
@@ -58,7 +58,7 @@ var vault_1 = require("./vault");
|
|
58
58
|
var vaultEvents_1 = require("./vaultEvents");
|
59
59
|
var balances_1 = require("./balances");
|
60
60
|
var formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
61
|
-
var timestamps_1 =
|
61
|
+
var timestamps_1 = require("../utils/timestamps");
|
62
62
|
var deposit_1 = require("./deposit");
|
63
63
|
var getPrice_1 = __importDefault(require("../utils/getPrice"));
|
64
64
|
var calculateFees_1 = require("./calculateFees");
|
@@ -145,19 +145,19 @@ function getAllDtrsForTimeInterval(vaultAddress, jsonProvider, dex, timeInterval
|
|
145
145
|
throw new Error("Error getting vault withdraws on ".concat(chainId, " for ").concat(vaultAddress));
|
146
146
|
arrRebalances = rebalances
|
147
147
|
.slice()
|
148
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.
|
148
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(timeInterval); })
|
149
149
|
.map(function (e) { return getDtrAtFeeCollectionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
150
150
|
arrOtherFees = collectedFees
|
151
151
|
.slice()
|
152
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.
|
152
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(timeInterval); })
|
153
153
|
.map(function (e) { return getDtrAtFeeCollectionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
154
154
|
arrDeposits = deposits
|
155
155
|
.slice()
|
156
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.
|
156
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(timeInterval); })
|
157
157
|
.map(function (e) { return getDtrAtTransactionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
158
158
|
arrWithdraws = withdraws
|
159
159
|
.slice()
|
160
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.
|
160
|
+
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(timeInterval); })
|
161
161
|
.map(function (e) { return getDtrAtTransactionEvent(e, isVaultInverted, token0Decimals, token1Decimals); });
|
162
162
|
_a = {
|
163
163
|
atTimestamp: Math.floor(Date.now() / 1000).toString()
|
@@ -207,7 +207,7 @@ function getAverageDepositTokenRatios(vaultAddress, jsonProvider, dex, timeInter
|
|
207
207
|
forTimeIntervals.forEach(function (interval) {
|
208
208
|
var dtrsForTimeInterval = interval === 0
|
209
209
|
? [allDtrs[0]]
|
210
|
-
: allDtrs.filter(function (elem) { return Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.
|
210
|
+
: allDtrs.filter(function (elem) { return Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.daysToMilliseconds)(interval); });
|
211
211
|
var averageDtr = getAverageDtr(dtrsForTimeInterval);
|
212
212
|
result.push({ timePeriod: interval, percent: averageDtr });
|
213
213
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"calculateDtr.js","sourceRoot":"","sources":["../../../src/functions/calculateDtr.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC,iDAAiD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGjD,sDAAqD;AACrD,kCAOkB;AAClB,2CAA2C;AAC3C,iCAA2C;AAC3C,6CAAiG;AACjG,uCAA8C;AAC9C,uEAAiD;AACjD,
|
1
|
+
{"version":3,"file":"calculateDtr.js","sourceRoot":"","sources":["../../../src/functions/calculateDtr.ts"],"names":[],"mappings":"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"}
|