@ichidao/ichi-vaults-sdk 0.1.43 → 2.0.1
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 +62 -208
- package/dist/abis/types/AlgebraIntegralPool.d.ts +702 -793
- package/dist/abis/types/AlgebraPool.d.ts +693 -730
- package/dist/abis/types/ClPool.d.ts +789 -871
- package/dist/abis/types/DepositGuard.d.ts +193 -178
- package/dist/abis/types/DepositGuardWithHtsWrapping.d.ts +300 -297
- package/dist/abis/types/ERC20.d.ts +120 -147
- package/dist/abis/types/ERC20Wrapper.d.ts +147 -155
- package/dist/abis/types/IchiVault.d.ts +598 -728
- package/dist/abis/types/MultiFeeDistributer.d.ts +314 -423
- package/dist/abis/types/Multicall.d.ts +58 -73
- package/dist/abis/types/UniswapV3Pool.d.ts +654 -693
- package/dist/abis/types/common.d.ts +40 -12
- package/dist/abis/types/factories/AlgebraIntegralPool__factory.d.ts +2 -3
- package/dist/abis/types/factories/AlgebraIntegralPool__factory.js +10 -13
- package/dist/abis/types/factories/AlgebraIntegralPool__factory.js.map +1 -1
- package/dist/abis/types/factories/AlgebraPool__factory.d.ts +2 -3
- package/dist/abis/types/factories/AlgebraPool__factory.js +10 -13
- package/dist/abis/types/factories/AlgebraPool__factory.js.map +1 -1
- package/dist/abis/types/factories/ClPool__factory.d.ts +2 -3
- package/dist/abis/types/factories/ClPool__factory.js +10 -13
- package/dist/abis/types/factories/ClPool__factory.js.map +1 -1
- package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.d.ts +2 -3
- package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.js +10 -13
- package/dist/abis/types/factories/DepositGuardWithHtsWrapping__factory.js.map +1 -1
- package/dist/abis/types/factories/DepositGuard__factory.d.ts +2 -3
- package/dist/abis/types/factories/DepositGuard__factory.js +10 -13
- package/dist/abis/types/factories/DepositGuard__factory.js.map +1 -1
- package/dist/abis/types/factories/ERC20Wrapper__factory.d.ts +2 -3
- package/dist/abis/types/factories/ERC20Wrapper__factory.js +10 -13
- package/dist/abis/types/factories/ERC20Wrapper__factory.js.map +1 -1
- package/dist/abis/types/factories/ERC20__factory.d.ts +2 -3
- package/dist/abis/types/factories/ERC20__factory.js +10 -13
- package/dist/abis/types/factories/ERC20__factory.js.map +1 -1
- package/dist/abis/types/factories/IchiVault__factory.d.ts +2 -3
- package/dist/abis/types/factories/IchiVault__factory.js +10 -13
- package/dist/abis/types/factories/IchiVault__factory.js.map +1 -1
- package/dist/abis/types/factories/MultiFeeDistributer__factory.d.ts +2 -3
- package/dist/abis/types/factories/MultiFeeDistributer__factory.js +10 -13
- package/dist/abis/types/factories/MultiFeeDistributer__factory.js.map +1 -1
- package/dist/abis/types/factories/Multicall__factory.d.ts +2 -3
- package/dist/abis/types/factories/Multicall__factory.js +10 -13
- package/dist/abis/types/factories/Multicall__factory.js.map +1 -1
- package/dist/abis/types/factories/UniswapV3Pool__factory.d.ts +2 -3
- package/dist/abis/types/factories/UniswapV3Pool__factory.js +10 -13
- package/dist/abis/types/factories/UniswapV3Pool__factory.js.map +1 -1
- package/dist/src/__tests__/index.test.js +356 -738
- package/dist/src/__tests__/index.test.js.map +1 -1
- package/dist/src/abis/types/AlgebraIntegralPool.d.ts +702 -793
- package/dist/src/abis/types/AlgebraPool.d.ts +693 -730
- package/dist/src/abis/types/ClPool.d.ts +789 -871
- package/dist/src/abis/types/DepositGuard.d.ts +193 -178
- package/dist/src/abis/types/DepositGuardWithHtsWrapping.d.ts +300 -297
- package/dist/src/abis/types/ERC20.d.ts +120 -147
- package/dist/src/abis/types/ERC20Wrapper.d.ts +147 -155
- package/dist/src/abis/types/IchiVault.d.ts +598 -728
- package/dist/src/abis/types/MultiFeeDistributer.d.ts +314 -423
- package/dist/src/abis/types/Multicall.d.ts +58 -73
- package/dist/src/abis/types/UniswapV3Pool.d.ts +654 -693
- package/dist/src/abis/types/common.d.ts +40 -12
- package/dist/src/abis/types/factories/AlgebraIntegralPool__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/AlgebraPool__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/ClPool__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/DepositGuardWithHtsWrapping__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/DepositGuard__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/ERC20Wrapper__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/ERC20__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/IchiVault__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/MultiFeeDistributer__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/Multicall__factory.d.ts +2 -3
- package/dist/src/abis/types/factories/UniswapV3Pool__factory.d.ts +2 -3
- package/dist/src/contracts/index.d.ts +1 -1
- package/dist/src/contracts/index.js +12 -12
- package/dist/src/contracts/index.js.map +1 -1
- package/dist/src/functions/_totalBalances.d.ts +2 -3
- package/dist/src/functions/_totalBalances.js +46 -117
- package/dist/src/functions/_totalBalances.js.map +1 -1
- package/dist/src/functions/_vaultEvents.js +347 -488
- package/dist/src/functions/_vaultEvents.js.map +1 -1
- package/dist/src/functions/_withdrawHelpers.d.ts +2 -3
- package/dist/src/functions/_withdrawHelpers.js +13 -62
- package/dist/src/functions/_withdrawHelpers.js.map +1 -1
- package/dist/src/functions/calculateApr.d.ts +1 -1
- package/dist/src/functions/calculateApr.js +77 -150
- package/dist/src/functions/calculateApr.js.map +1 -1
- package/dist/src/functions/calculateDtr.d.ts +1 -1
- package/dist/src/functions/calculateDtr.js +84 -169
- package/dist/src/functions/calculateDtr.js.map +1 -1
- package/dist/src/functions/calculateFees.d.ts +1 -1
- package/dist/src/functions/calculateFees.js +97 -172
- package/dist/src/functions/calculateFees.js.map +1 -1
- package/dist/src/functions/chains.js +6 -6
- package/dist/src/functions/chains.js.map +1 -1
- package/dist/src/functions/claimRewards.d.ts +3 -4
- package/dist/src/functions/claimRewards.js +29 -92
- package/dist/src/functions/claimRewards.js.map +1 -1
- package/dist/src/functions/deposit.d.ts +7 -9
- package/dist/src/functions/deposit.js +199 -364
- package/dist/src/functions/deposit.js.map +1 -1
- package/dist/src/functions/depositWithHtsWrapping.d.ts +4 -6
- package/dist/src/functions/depositWithHtsWrapping.js +109 -226
- package/dist/src/functions/depositWithHtsWrapping.js.map +1 -1
- package/dist/src/functions/getFeeAprs.d.ts +1 -1
- package/dist/src/functions/getFeeAprs.js +55 -111
- package/dist/src/functions/getFeeAprs.js.map +1 -1
- package/dist/src/functions/priceFromPool.d.ts +3 -4
- package/dist/src/functions/priceFromPool.js +99 -208
- package/dist/src/functions/priceFromPool.js.map +1 -1
- package/dist/src/functions/rewardInfo.js +79 -159
- package/dist/src/functions/rewardInfo.js.map +1 -1
- package/dist/src/functions/totalBalances.d.ts +2 -3
- package/dist/src/functions/totalBalances.js +14 -67
- package/dist/src/functions/totalBalances.js.map +1 -1
- package/dist/src/functions/userBalances.d.ts +2 -3
- package/dist/src/functions/userBalances.js +244 -368
- package/dist/src/functions/userBalances.js.map +1 -1
- package/dist/src/functions/userRewards.d.ts +1 -1
- package/dist/src/functions/userRewards.js +87 -145
- package/dist/src/functions/userRewards.js.map +1 -1
- package/dist/src/functions/vault.d.ts +1 -1
- package/dist/src/functions/vault.js +203 -383
- package/dist/src/functions/vault.js.map +1 -1
- package/dist/src/functions/vaultBasics.js +6 -7
- package/dist/src/functions/vaultBasics.js.map +1 -1
- package/dist/src/functions/vaultMetrics.d.ts +1 -1
- package/dist/src/functions/vaultMetrics.js +111 -189
- package/dist/src/functions/vaultMetrics.js.map +1 -1
- package/dist/src/functions/vaultPositions.d.ts +1 -1
- package/dist/src/functions/vaultPositions.js +69 -134
- package/dist/src/functions/vaultPositions.js.map +1 -1
- package/dist/src/functions/vaultTvl.d.ts +1 -1
- package/dist/src/functions/vaultTvl.js +80 -165
- package/dist/src/functions/vaultTvl.js.map +1 -1
- package/dist/src/functions/withdraw.d.ts +6 -8
- package/dist/src/functions/withdraw.js +165 -295
- package/dist/src/functions/withdraw.js.map +1 -1
- package/dist/src/functions/withdrawWithErc20Wrapping.d.ts +2 -4
- package/dist/src/functions/withdrawWithErc20Wrapping.js +59 -126
- package/dist/src/functions/withdrawWithErc20Wrapping.js.map +1 -1
- package/dist/src/graphql/constants.js +217 -212
- package/dist/src/graphql/constants.js.map +1 -1
- package/dist/src/graphql/functions.js +30 -102
- package/dist/src/graphql/functions.js.map +1 -1
- package/dist/src/graphql/queries.js +407 -42
- package/dist/src/graphql/queries.js.map +1 -1
- package/dist/src/index.cjs.js +2 -2
- package/dist/src/index.esm.js +2 -2
- package/dist/src/src/contracts/index.d.ts +1 -1
- package/dist/src/src/functions/_totalBalances.d.ts +2 -3
- package/dist/src/src/functions/_withdrawHelpers.d.ts +2 -3
- package/dist/src/src/functions/calculateApr.d.ts +1 -1
- package/dist/src/src/functions/calculateDtr.d.ts +1 -1
- package/dist/src/src/functions/calculateFees.d.ts +1 -1
- package/dist/src/src/functions/claimRewards.d.ts +3 -4
- package/dist/src/src/functions/deposit.d.ts +7 -9
- package/dist/src/src/functions/depositWithHtsWrapping.d.ts +4 -6
- package/dist/src/src/functions/getFeeAprs.d.ts +1 -1
- package/dist/src/src/functions/priceFromPool.d.ts +3 -4
- package/dist/src/src/functions/totalBalances.d.ts +2 -3
- package/dist/src/src/functions/userBalances.d.ts +2 -3
- package/dist/src/src/functions/userRewards.d.ts +1 -1
- package/dist/src/src/functions/vault.d.ts +1 -1
- package/dist/src/src/functions/vaultMetrics.d.ts +1 -1
- package/dist/src/src/functions/vaultPositions.d.ts +1 -1
- package/dist/src/src/functions/vaultTvl.d.ts +1 -1
- package/dist/src/src/functions/withdraw.d.ts +6 -8
- package/dist/src/src/functions/withdrawWithErc20Wrapping.d.ts +2 -4
- package/dist/src/src/types/calculateGasMargin.d.ts +1 -2
- package/dist/src/src/types/index.d.ts +12 -13
- package/dist/src/src/utils/amountWithSlippage.d.ts +1 -2
- package/dist/src/src/utils/config/addresses.d.ts +1 -1
- package/dist/src/src/utils/formatBigInt.d.ts +1 -2
- package/dist/src/src/utils/getPrice.d.ts +1 -2
- package/dist/src/src/utils/multicallUtils.d.ts +9 -10
- package/dist/src/src/utils/parseBigInt.d.ts +1 -2
- package/dist/src/types/calculateGasMargin.d.ts +1 -2
- package/dist/src/types/calculateGasMargin.js +4 -5
- package/dist/src/types/calculateGasMargin.js.map +1 -1
- package/dist/src/types/index.d.ts +12 -13
- package/dist/src/types/index.js +1 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/utils/amountWithSlippage.d.ts +1 -2
- package/dist/src/utils/amountWithSlippage.js +1 -1
- package/dist/src/utils/amountWithSlippage.js.map +1 -1
- package/dist/src/utils/cache.js +2 -2
- package/dist/src/utils/cache.js.map +1 -1
- package/dist/src/utils/config/addresses.d.ts +1 -1
- package/dist/src/utils/config/addresses.js +276 -268
- package/dist/src/utils/config/addresses.js.map +1 -1
- package/dist/src/utils/formatBigInt.d.ts +1 -2
- package/dist/src/utils/formatBigInt.js +4 -5
- package/dist/src/utils/formatBigInt.js.map +1 -1
- package/dist/src/utils/getConfigByFactory.js +24 -28
- package/dist/src/utils/getConfigByFactory.js.map +1 -1
- package/dist/src/utils/getGraphUrls.js +8 -12
- package/dist/src/utils/getGraphUrls.js.map +1 -1
- package/dist/src/utils/getPrice.d.ts +1 -2
- package/dist/src/utils/getPrice.js +5 -6
- package/dist/src/utils/getPrice.js.map +1 -1
- package/dist/src/utils/isVelodrome.js +2 -3
- package/dist/src/utils/isVelodrome.js.map +1 -1
- package/dist/src/utils/multicallUtils.d.ts +9 -10
- package/dist/src/utils/multicallUtils.js +38 -93
- package/dist/src/utils/multicallUtils.js.map +1 -1
- package/dist/src/utils/parseBigInt.d.ts +1 -2
- package/dist/src/utils/parseBigInt.js +5 -7
- package/dist/src/utils/parseBigInt.js.map +1 -1
- package/dist/src/utils/positionKey.js +2 -4
- package/dist/src/utils/positionKey.js.map +1 -1
- package/package.json +5 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/functions/vault.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../../src/functions/vault.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const types_1 = require("../types");
|
|
4
|
+
const addresses_1 = require("../utils/config/addresses");
|
|
5
5
|
function getVaultDeployer(vaultAddress, chainId, dex) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var polVaults = [
|
|
6
|
+
let vaultDeployerAddress = addresses_1.addressConfig[chainId][dex]?.vaultDeployerAddress;
|
|
7
|
+
const polVaults = [
|
|
9
8
|
'0x4aef5144131db95c110af41c8ec09f46295a7c4b'.toLowerCase(),
|
|
10
9
|
'0x711901e4b9136119Fb047ABe8c43D49339f161c3'.toLowerCase(),
|
|
11
10
|
'0xE5bf5D33C617556B91558aAfb7BeadB68E9Cea81'.toLowerCase(),
|
|
12
11
|
];
|
|
13
|
-
|
|
12
|
+
const polDeployer = '0xC30220fc19e2db669eaa3fa042C07b28F0c10737';
|
|
14
13
|
if (chainId === types_1.SupportedChainId.polygon && polVaults.includes(vaultAddress.toLowerCase())) {
|
|
15
14
|
vaultDeployerAddress = polDeployer;
|
|
16
15
|
}
|
|
17
16
|
if (!vaultDeployerAddress) {
|
|
18
|
-
throw new Error(
|
|
17
|
+
throw new Error(`Vault deployer not found for vault ${vaultAddress} on chain ${chainId} and dex ${dex}`);
|
|
19
18
|
}
|
|
20
19
|
return vaultDeployerAddress;
|
|
21
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaultBasics.js","sourceRoot":"","sources":["../../../src/functions/vaultBasics.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"vaultBasics.js","sourceRoot":"","sources":["../../../src/functions/vaultBasics.ts"],"names":[],"mappings":";;AAAA,oCAA0D;AAC1D,yDAA0D;AAE1D,SAAwB,gBAAgB,CAAC,YAAoB,EAAE,OAAyB,EAAE,GAAiB;IACzG,IAAI,oBAAoB,GAAG,yBAAa,CAAC,OAA2B,CAAE,CAAC,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAElG,MAAM,SAAS,GAAG;QAChB,4CAA4C,CAAC,WAAW,EAAE;QAC1D,4CAA4C,CAAC,WAAW,EAAE;QAC1D,4CAA4C,CAAC,WAAW,EAAE;KAC3D,CAAC;IACF,MAAM,WAAW,GAAG,4CAA4C,CAAC;IAEjE,IAAI,OAAO,KAAK,wBAAgB,CAAC,OAAO,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE;QAC1F,oBAAoB,GAAG,WAAW,CAAC;KACpC;IAED,IAAI,CAAC,oBAAoB,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,sCAAsC,YAAY,aAAa,OAAO,YAAY,GAAG,EAAE,CAAC,CAAC;KAC1G;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAlBD,mCAkBC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { JsonRpcProvider } from '
|
|
1
|
+
import { JsonRpcProvider } from 'ethers';
|
|
2
2
|
import { SupportedDex, VaultMetrics } from '../types';
|
|
3
3
|
export declare function getVaultMetrics(vaultAddress: string, jsonProvider: JsonRpcProvider, dex: SupportedDex, timeIntervals?: number[]): Promise<(VaultMetrics | null)[]>;
|
|
@@ -1,201 +1,123 @@
|
|
|
1
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
39
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
40
|
-
if (ar || !(i in from)) {
|
|
41
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
42
|
-
ar[i] = from[i];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
46
|
-
};
|
|
47
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
48
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
49
4
|
};
|
|
50
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
51
6
|
exports.getVaultMetrics = void 0;
|
|
52
|
-
|
|
7
|
+
const types_1 = require("../types");
|
|
53
8
|
// eslint-disable-next-line import/no-cycle
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
function getVaultMetrics(vaultAddress, jsonProvider, dex, timeIntervals) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
return [4 /*yield*/, (0, priceFromPool_1.getCurrentDtr)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1)];
|
|
164
|
-
case 15:
|
|
165
|
-
currentDtr = (_b.percent = _c.sent(),
|
|
166
|
-
_b);
|
|
167
|
-
allDtrs = __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); });
|
|
168
|
-
result = [];
|
|
169
|
-
arrDays.forEach(function (d) {
|
|
170
|
-
var objLpPrice = (0, calculateApr_1.getLpPriceAt)(vaultEvents, d, isInv, decimals0, decimals1);
|
|
171
|
-
var prevLpPrice = objLpPrice === null || objLpPrice === void 0 ? void 0 : objLpPrice.priceChange;
|
|
172
|
-
var priceChange = !prevLpPrice || prevLpPrice === 0 ? null : ((currLpPrice - prevLpPrice) / prevLpPrice) * 100;
|
|
173
|
-
var lpApr = !prevLpPrice
|
|
174
|
-
? null
|
|
175
|
-
: ((currLpPrice - prevLpPrice) / ((prevLpPrice * objLpPrice.timeInterval) / 365)) * 100;
|
|
176
|
-
var dtrsForTimeInterval = allDtrs.filter(function (elem) { return Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
|
|
177
|
-
var averageDtr = (0, calculateDtr_1.getAverageDtr)(dtrsForTimeInterval);
|
|
178
|
-
var filteredRebalances = rebalances
|
|
179
|
-
.slice()
|
|
180
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
|
|
181
|
-
var filteredFees = collectedFees
|
|
182
|
-
.slice()
|
|
183
|
-
.filter(function (r) { return Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d); });
|
|
184
|
-
var totalFeesAmount = (0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredRebalances, decimals0, decimals1, isInv) +
|
|
185
|
-
(0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredFees, decimals0, decimals1, isInv);
|
|
186
|
-
var feeApr = d !== 0 && currTvl !== 0 ? (((totalFeesAmount / d) * 365) / currTvl) * 100 : 0;
|
|
187
|
-
result.push({
|
|
188
|
-
timeInterval: d,
|
|
189
|
-
lpPriceChange: priceChange,
|
|
190
|
-
lpApr: lpApr,
|
|
191
|
-
avgDtr: averageDtr,
|
|
192
|
-
feeApr: feeApr,
|
|
193
|
-
});
|
|
194
|
-
});
|
|
195
|
-
return [2 /*return*/, result];
|
|
196
|
-
}
|
|
9
|
+
const vault_1 = require("./vault");
|
|
10
|
+
const _totalBalances_1 = require("./_totalBalances");
|
|
11
|
+
const priceFromPool_1 = require("./priceFromPool");
|
|
12
|
+
const timestamps_1 = require("../utils/timestamps");
|
|
13
|
+
const getPrice_1 = __importDefault(require("../utils/getPrice"));
|
|
14
|
+
const contracts_1 = require("../contracts");
|
|
15
|
+
const formatBigInt_1 = __importDefault(require("../utils/formatBigInt"));
|
|
16
|
+
const calculateDtr_1 = require("./calculateDtr");
|
|
17
|
+
const calculateFees_1 = require("./calculateFees");
|
|
18
|
+
const calculateApr_1 = require("./calculateApr");
|
|
19
|
+
const _vaultEvents_1 = require("./_vaultEvents");
|
|
20
|
+
async function getVaultMetrics(vaultAddress, jsonProvider, dex, timeIntervals) {
|
|
21
|
+
const { chainId, vault } = await (0, vault_1.validateVaultData)(vaultAddress, jsonProvider, dex);
|
|
22
|
+
const decimals0 = await (0, _totalBalances_1.getTokenDecimals)(vault.tokenA, jsonProvider, chainId);
|
|
23
|
+
const decimals1 = await (0, _totalBalances_1.getTokenDecimals)(vault.tokenB, jsonProvider, chainId);
|
|
24
|
+
const isInv = vault.allowTokenB;
|
|
25
|
+
const depositTokenDecimals = isInv ? decimals1 : decimals0;
|
|
26
|
+
const scarceTokenDecimals = isInv ? decimals0 : decimals1;
|
|
27
|
+
const vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
|
28
|
+
// to remove/rewrite
|
|
29
|
+
const arrDays = timeIntervals && timeIntervals.length > 0 ? timeIntervals : [1, 7, 30];
|
|
30
|
+
const maxTimeInterval = Math.max(...arrDays);
|
|
31
|
+
// const allDtrs = await getAllDtrsForTimeInterval(vaultAddress, jsonProvider, dex, maxTimeInterval);
|
|
32
|
+
let currLpPrice = 0;
|
|
33
|
+
let currTvl = 0;
|
|
34
|
+
try {
|
|
35
|
+
const totalAmountsBN = await vaultContract.getTotalAmounts();
|
|
36
|
+
const totalAmounts = {
|
|
37
|
+
total0: (0, formatBigInt_1.default)(totalAmountsBN.total0, decimals0),
|
|
38
|
+
total1: (0, formatBigInt_1.default)(totalAmountsBN.total1, decimals1),
|
|
39
|
+
0: (0, formatBigInt_1.default)(totalAmountsBN.total0, decimals0),
|
|
40
|
+
1: (0, formatBigInt_1.default)(totalAmountsBN.total1, decimals1),
|
|
41
|
+
};
|
|
42
|
+
const poolAddress = await vaultContract.pool();
|
|
43
|
+
const sqrtPrice = await (0, priceFromPool_1.getSqrtPriceFromPool)(poolAddress, jsonProvider, chainId, dex);
|
|
44
|
+
const price = (0, getPrice_1.default)(isInv, sqrtPrice, depositTokenDecimals, scarceTokenDecimals, 15);
|
|
45
|
+
currTvl = !isInv
|
|
46
|
+
? Number(totalAmounts.total0) + Number(totalAmounts.total1) * price
|
|
47
|
+
: Number(totalAmounts.total1) + Number(totalAmounts.total0) * price;
|
|
48
|
+
const totalSupplyBN = await vaultContract.totalSupply();
|
|
49
|
+
const totalSupply = (0, formatBigInt_1.default)(totalSupplyBN, types_1.ichiVaultDecimals);
|
|
50
|
+
if (Number(totalSupply) === 0) {
|
|
51
|
+
throw new Error(`Could not get LP price. Vault total supply is 0 for vault ${vaultAddress} on chain ${chainId}`);
|
|
52
|
+
}
|
|
53
|
+
currLpPrice = currTvl / Number(totalSupply);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
console.error(`Could not get LP price from vault ${vaultAddress} `);
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
59
|
+
const rebalances = (await (0, _vaultEvents_1._getRebalances)(vaultAddress, chainId, dex));
|
|
60
|
+
if (!rebalances)
|
|
61
|
+
throw new Error(`Error getting vault rebalances on ${chainId} for ${vaultAddress}`);
|
|
62
|
+
const collectedFees = (await (0, _vaultEvents_1._getFeesCollectedEvents)(vaultAddress, chainId, dex));
|
|
63
|
+
if (!collectedFees)
|
|
64
|
+
throw new Error(`Error getting vault collected fees on ${chainId} for ${vaultAddress}`);
|
|
65
|
+
const deposits = (await (0, _vaultEvents_1._getDeposits)(vaultAddress, chainId, dex));
|
|
66
|
+
if (!deposits)
|
|
67
|
+
throw new Error(`Error getting vault deposits on ${chainId} for ${vaultAddress}`);
|
|
68
|
+
const withdraws = (await (0, _vaultEvents_1._getWithdraws)(vaultAddress, chainId, dex));
|
|
69
|
+
if (!withdraws)
|
|
70
|
+
throw new Error(`Error getting vault withdraws on ${chainId} for ${vaultAddress}`);
|
|
71
|
+
const vaultEvents = [...deposits, ...withdraws, ...rebalances, ...collectedFees].sort((a, b) => Number(b.createdAtTimestamp) - Number(a.createdAtTimestamp));
|
|
72
|
+
const arrRebalances = rebalances
|
|
73
|
+
.slice()
|
|
74
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval))
|
|
75
|
+
.map((e) => (0, calculateDtr_1.getDtrAtFeeCollectionEvent)(e, isInv, decimals0, decimals1));
|
|
76
|
+
const arrOtherFees = collectedFees
|
|
77
|
+
.slice()
|
|
78
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval))
|
|
79
|
+
.map((e) => (0, calculateDtr_1.getDtrAtFeeCollectionEvent)(e, isInv, decimals0, decimals1));
|
|
80
|
+
const arrDeposits = deposits
|
|
81
|
+
.slice()
|
|
82
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval))
|
|
83
|
+
.map((e) => (0, calculateDtr_1.getDtrAtTransactionEvent)(e, isInv, decimals0, decimals1));
|
|
84
|
+
const arrWithdraws = withdraws
|
|
85
|
+
.slice()
|
|
86
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(maxTimeInterval))
|
|
87
|
+
.map((e) => (0, calculateDtr_1.getDtrAtTransactionEvent)(e, isInv, decimals0, decimals1));
|
|
88
|
+
const currentDtr = {
|
|
89
|
+
atTimestamp: Math.floor(Date.now() / 1000).toString(),
|
|
90
|
+
percent: await (0, priceFromPool_1.getCurrentDtr)(vaultAddress, jsonProvider, dex, isInv, decimals0, decimals1),
|
|
91
|
+
};
|
|
92
|
+
const allDtrs = [...arrDeposits, ...arrWithdraws, ...arrRebalances, ...arrOtherFees, currentDtr].sort((a, b) => Number(b.atTimestamp) - Number(a.atTimestamp));
|
|
93
|
+
const result = [];
|
|
94
|
+
arrDays.forEach((d) => {
|
|
95
|
+
const objLpPrice = (0, calculateApr_1.getLpPriceAt)(vaultEvents, d, isInv, decimals0, decimals1);
|
|
96
|
+
const prevLpPrice = objLpPrice?.priceChange;
|
|
97
|
+
const priceChange = !prevLpPrice || prevLpPrice === 0 ? null : ((currLpPrice - prevLpPrice) / prevLpPrice) * 100;
|
|
98
|
+
const lpApr = !prevLpPrice
|
|
99
|
+
? null
|
|
100
|
+
: ((currLpPrice - prevLpPrice) / ((prevLpPrice * objLpPrice.timeInterval) / 365)) * 100;
|
|
101
|
+
const dtrsForTimeInterval = allDtrs.filter((elem) => Number(elem.atTimestamp) * 1000 >= Date.now() - (0, timestamps_1.daysToMilliseconds)(d));
|
|
102
|
+
const averageDtr = (0, calculateDtr_1.getAverageDtr)(dtrsForTimeInterval);
|
|
103
|
+
const filteredRebalances = rebalances
|
|
104
|
+
.slice()
|
|
105
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d));
|
|
106
|
+
const filteredFees = collectedFees
|
|
107
|
+
.slice()
|
|
108
|
+
.filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - (0, timestamps_1.daysToMilliseconds)(d));
|
|
109
|
+
const totalFeesAmount = (0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredRebalances, decimals0, decimals1, isInv) +
|
|
110
|
+
(0, calculateFees_1.getTotalFeesAmountInBaseTokens)(filteredFees, decimals0, decimals1, isInv);
|
|
111
|
+
const feeApr = d !== 0 && currTvl !== 0 ? (((totalFeesAmount / d) * 365) / currTvl) * 100 : 0;
|
|
112
|
+
result.push({
|
|
113
|
+
timeInterval: d,
|
|
114
|
+
lpPriceChange: priceChange,
|
|
115
|
+
lpApr,
|
|
116
|
+
avgDtr: averageDtr,
|
|
117
|
+
feeApr,
|
|
197
118
|
});
|
|
198
119
|
});
|
|
120
|
+
return result;
|
|
199
121
|
}
|
|
200
122
|
exports.getVaultMetrics = getVaultMetrics;
|
|
201
123
|
//# sourceMappingURL=vaultMetrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaultMetrics.js","sourceRoot":"","sources":["../../../src/functions/vaultMetrics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vaultMetrics.js","sourceRoot":"","sources":["../../../src/functions/vaultMetrics.ts"],"names":[],"mappings":"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"}
|