@ichidao/ichi-vaults-sdk 0.1.42 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -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 +376 -700
- 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 +211 -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 +3 -2
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.esm.js +3 -2
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- 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/index.d.ts +1 -0
- package/dist/src/src/types/calculateGasMargin.d.ts +1 -2
- package/dist/src/src/types/index.d.ts +11 -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/getConfigByFactory.d.ts +33 -0
- 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 +11 -13
- 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 +267 -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.d.ts +33 -0
- package/dist/src/utils/getConfigByFactory.js +79 -0
- package/dist/src/utils/getConfigByFactory.js.map +1 -0
- 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,63 +1,21 @@
|
|
|
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.getAllRewardVaults = exports.getChainByProvider = exports.validateVaultData = exports.getVaultsByPool = exports.getVaultsByTokens = exports.getIchiVaultInfo = void 0;
|
|
52
7
|
// eslint-disable-next-line import/no-unresolved
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
8
|
+
const graphql_request_1 = require("graphql-request");
|
|
9
|
+
const types_1 = require("../types");
|
|
10
|
+
const contracts_1 = require("../contracts");
|
|
11
|
+
const queries_1 = require("../graphql/queries");
|
|
12
|
+
const getGraphUrls_1 = require("../utils/getGraphUrls");
|
|
13
|
+
const cache_1 = __importDefault(require("../utils/cache"));
|
|
59
14
|
function normalizeVaultData(vaultData) {
|
|
60
|
-
|
|
15
|
+
// If vaultData is null or undefined, throw an error
|
|
16
|
+
if (!vaultData) {
|
|
17
|
+
throw new Error('Vault data is null or undefined');
|
|
18
|
+
}
|
|
61
19
|
// If it's a v2 response (has token0/token1)
|
|
62
20
|
if ('token0' in vaultData && 'token1' in vaultData) {
|
|
63
21
|
return {
|
|
@@ -68,359 +26,221 @@ function normalizeVaultData(vaultData) {
|
|
|
68
26
|
allowTokenB: vaultData.allowToken1,
|
|
69
27
|
fee: vaultData.fee,
|
|
70
28
|
holdersCount: vaultData.holdersCount,
|
|
71
|
-
farmingContract:
|
|
72
|
-
rewardTokens:
|
|
29
|
+
farmingContract: vaultData.farmingContract?.id,
|
|
30
|
+
rewardTokens: vaultData.farmingContract?.rewardTokens,
|
|
73
31
|
};
|
|
74
32
|
}
|
|
75
33
|
// If it's a v1 response (already has tokenA/tokenB)
|
|
76
34
|
return vaultData;
|
|
77
35
|
}
|
|
78
|
-
function getVaultInfoFromContract(vaultAddress, jsonProvider) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
case 2:
|
|
98
|
-
_a.tokenA = _e.sent();
|
|
99
|
-
_b = vault;
|
|
100
|
-
return [4 /*yield*/, vaultContract.token1()];
|
|
101
|
-
case 3:
|
|
102
|
-
_b.tokenB = _e.sent();
|
|
103
|
-
_c = vault;
|
|
104
|
-
return [4 /*yield*/, vaultContract.allowToken0()];
|
|
105
|
-
case 4:
|
|
106
|
-
_c.allowTokenA = _e.sent();
|
|
107
|
-
_d = vault;
|
|
108
|
-
return [4 /*yield*/, vaultContract.allowToken1()];
|
|
109
|
-
case 5:
|
|
110
|
-
_d.allowTokenB = _e.sent();
|
|
111
|
-
return [3 /*break*/, 7];
|
|
112
|
-
case 6:
|
|
113
|
-
error_1 = _e.sent();
|
|
114
|
-
throw new Error("Could not get vault info for ".concat(vaultAddress));
|
|
115
|
-
case 7: return [2 /*return*/, vault];
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
});
|
|
36
|
+
async function getVaultInfoFromContract(vaultAddress, jsonProvider) {
|
|
37
|
+
const vault = {
|
|
38
|
+
id: vaultAddress,
|
|
39
|
+
tokenA: '',
|
|
40
|
+
tokenB: '',
|
|
41
|
+
allowTokenA: false,
|
|
42
|
+
allowTokenB: false,
|
|
43
|
+
};
|
|
44
|
+
try {
|
|
45
|
+
const vaultContract = (0, contracts_1.getIchiVaultContract)(vaultAddress, jsonProvider);
|
|
46
|
+
vault.tokenA = await vaultContract.token0();
|
|
47
|
+
vault.tokenB = await vaultContract.token1();
|
|
48
|
+
vault.allowTokenA = await vaultContract.allowToken0();
|
|
49
|
+
vault.allowTokenB = await vaultContract.allowToken1();
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
throw new Error(`Could not get vault info for ${vaultAddress}`);
|
|
53
|
+
}
|
|
54
|
+
return vault;
|
|
119
55
|
}
|
|
120
|
-
function sendVaultQueryRequest(url, vaultAddress, query) {
|
|
121
|
-
return
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
vaultAddress: vaultAddress.toLowerCase(),
|
|
125
|
-
}).then(function (_a) {
|
|
126
|
-
var ichiVault = _a.ichiVault;
|
|
127
|
-
return ichiVault;
|
|
128
|
-
})];
|
|
129
|
-
});
|
|
130
|
-
});
|
|
56
|
+
async function sendVaultQueryRequest(url, vaultAddress, query) {
|
|
57
|
+
return (0, graphql_request_1.request)(url, query, {
|
|
58
|
+
vaultAddress: vaultAddress.toLowerCase(),
|
|
59
|
+
}).then(({ ichiVault }) => ichiVault);
|
|
131
60
|
}
|
|
132
|
-
function sendVaultsByTokensRequest(url, token1, token2, query) {
|
|
133
|
-
return
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
addressTokenB: token2,
|
|
138
|
-
}).then(function (_a) {
|
|
139
|
-
var ichiVaults = _a.ichiVaults;
|
|
140
|
-
return ichiVaults;
|
|
141
|
-
})];
|
|
142
|
-
});
|
|
143
|
-
});
|
|
61
|
+
async function sendVaultsByTokensRequest(url, token1, token2, query) {
|
|
62
|
+
return (0, graphql_request_1.request)(url, query, {
|
|
63
|
+
addressTokenA: token1,
|
|
64
|
+
addressTokenB: token2,
|
|
65
|
+
}).then(({ ichiVaults }) => ichiVaults);
|
|
144
66
|
}
|
|
145
|
-
function sendVaultsByPoolQueryRequest(url, poolAddress, query) {
|
|
146
|
-
return
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
poolAddress: poolAddress.toLowerCase(),
|
|
150
|
-
}).then(function (_a) {
|
|
151
|
-
var deployICHIVaults = _a.deployICHIVaults;
|
|
152
|
-
return deployICHIVaults;
|
|
153
|
-
})];
|
|
154
|
-
});
|
|
155
|
-
});
|
|
67
|
+
async function sendVaultsByPoolQueryRequest(url, poolAddress, query) {
|
|
68
|
+
return (0, graphql_request_1.request)(url, query, {
|
|
69
|
+
poolAddress: poolAddress.toLowerCase(),
|
|
70
|
+
}).then(({ deployICHIVaults }) => deployICHIVaults);
|
|
156
71
|
}
|
|
157
|
-
function sendAllRewardVaultsQueryRequest(url, query) {
|
|
158
|
-
return
|
|
159
|
-
return __generator(this, function (_a) {
|
|
160
|
-
return [2 /*return*/, (0, graphql_request_1.request)(url, query).then(function (_a) {
|
|
161
|
-
var ichiVaults = _a.ichiVaults;
|
|
162
|
-
return ichiVaults;
|
|
163
|
-
})];
|
|
164
|
-
});
|
|
165
|
-
});
|
|
72
|
+
async function sendAllRewardVaultsQueryRequest(url, query) {
|
|
73
|
+
return (0, graphql_request_1.request)(url, query).then(({ ichiVaults }) => ichiVaults);
|
|
166
74
|
}
|
|
167
|
-
function getIchiVaultInfo(chainId, dex, vaultAddress, jsonProvider) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
cache_1.default.set(key, normalizedResult, ttl);
|
|
210
|
-
return [2 /*return*/, normalizedResult];
|
|
211
|
-
case 8:
|
|
212
|
-
error2_1 = _b.sent();
|
|
213
|
-
console.error('Request to public graph URL failed:', error2_1);
|
|
214
|
-
if (!jsonProvider) return [3 /*break*/, 10];
|
|
215
|
-
return [4 /*yield*/, getVaultInfoFromContract(vaultAddress, jsonProvider)];
|
|
216
|
-
case 9:
|
|
217
|
-
result = _b.sent();
|
|
218
|
-
cache_1.default.set(key, result, ttl);
|
|
219
|
-
return [2 /*return*/, result];
|
|
220
|
-
case 10: throw new Error("Could not get vault info for ".concat(vaultAddress));
|
|
221
|
-
case 11: return [3 /*break*/, 12];
|
|
222
|
-
case 12: return [3 /*break*/, 13];
|
|
223
|
-
case 13: return [2 /*return*/];
|
|
75
|
+
async function getIchiVaultInfo(chainId, dex, vaultAddress, jsonProvider) {
|
|
76
|
+
const key = `vault-${chainId}-${vaultAddress}`;
|
|
77
|
+
const ttl = 6 * 60 * 60 * 1000; // 6 hours
|
|
78
|
+
const cachedData = cache_1.default.get(key);
|
|
79
|
+
if (cachedData) {
|
|
80
|
+
return cachedData;
|
|
81
|
+
}
|
|
82
|
+
const { url, publishedUrl } = (0, getGraphUrls_1.getGraphUrls)(chainId, dex);
|
|
83
|
+
const thisQuery = (0, queries_1.getVaultQuery)(chainId, dex);
|
|
84
|
+
if (url === 'none' && jsonProvider) {
|
|
85
|
+
const result = await getVaultInfoFromContract(vaultAddress, jsonProvider);
|
|
86
|
+
cache_1.default.set(key, result, ttl);
|
|
87
|
+
return result;
|
|
88
|
+
}
|
|
89
|
+
try {
|
|
90
|
+
if (publishedUrl) {
|
|
91
|
+
const result = await sendVaultQueryRequest(publishedUrl, vaultAddress, thisQuery);
|
|
92
|
+
const normalizedResult = normalizeVaultData(result);
|
|
93
|
+
cache_1.default.set(key, normalizedResult, ttl);
|
|
94
|
+
return normalizedResult;
|
|
95
|
+
}
|
|
96
|
+
throw new Error(`Published URL is invalid for ${vaultAddress}`);
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
if (publishedUrl) {
|
|
100
|
+
console.error('Request to published graph URL failed:', error);
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const result = await sendVaultQueryRequest(url, vaultAddress, thisQuery);
|
|
104
|
+
const normalizedResult = normalizeVaultData(result);
|
|
105
|
+
cache_1.default.set(key, normalizedResult, ttl);
|
|
106
|
+
return normalizedResult;
|
|
107
|
+
}
|
|
108
|
+
catch (error2) {
|
|
109
|
+
console.error('Request to public graph URL failed:', error2);
|
|
110
|
+
if (jsonProvider) {
|
|
111
|
+
const result = await getVaultInfoFromContract(vaultAddress, jsonProvider);
|
|
112
|
+
cache_1.default.set(key, result, ttl);
|
|
113
|
+
return result;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
throw new Error(`Could not get vault info for ${vaultAddress}`);
|
|
224
117
|
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
227
120
|
}
|
|
228
121
|
exports.getIchiVaultInfo = getIchiVaultInfo;
|
|
229
|
-
function getVaultsByTokensAB(chainId, dex, tokenA, tokenB) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return [4 /*yield*/, sendVaultsByTokensRequest(url, tokenA, tokenB, strVaultByTokensQuery)];
|
|
263
|
-
case 7:
|
|
264
|
-
result = _b.sent();
|
|
265
|
-
cache_1.default.set(key, result, ttl);
|
|
266
|
-
return [2 /*return*/, result];
|
|
267
|
-
case 8:
|
|
268
|
-
error2_2 = _b.sent();
|
|
269
|
-
console.error('Request to public graph URL failed:', error2_2);
|
|
270
|
-
throw new Error("Could not get vaults by tokens, dex ".concat(dex, " on chain ").concat(chainId));
|
|
271
|
-
case 9: return [3 /*break*/, 10];
|
|
272
|
-
case 10: return [2 /*return*/];
|
|
273
|
-
}
|
|
274
|
-
});
|
|
275
|
-
});
|
|
122
|
+
async function getVaultsByTokensAB(chainId, dex, tokenA, tokenB) {
|
|
123
|
+
const key = `vaultByTokens-${chainId}-${tokenA}-${tokenB}`;
|
|
124
|
+
const cachedData = cache_1.default.get(key);
|
|
125
|
+
if (cachedData) {
|
|
126
|
+
return cachedData;
|
|
127
|
+
}
|
|
128
|
+
const ttl = 3600000;
|
|
129
|
+
const { url, publishedUrl, version } = (0, getGraphUrls_1.getGraphUrls)(chainId, dex, true);
|
|
130
|
+
const strVaultByTokensQuery = (0, queries_1.vaultByTokensQuery)(version);
|
|
131
|
+
try {
|
|
132
|
+
if (publishedUrl) {
|
|
133
|
+
const result = await sendVaultsByTokensRequest(publishedUrl, tokenA, tokenB, strVaultByTokensQuery);
|
|
134
|
+
cache_1.default.set(key, result, ttl);
|
|
135
|
+
return result;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
throw new Error(`Published URL is invalid for dex ${dex} on chain ${chainId}`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (error) {
|
|
142
|
+
if (publishedUrl) {
|
|
143
|
+
console.error('Request to published graph URL failed:', error);
|
|
144
|
+
}
|
|
145
|
+
try {
|
|
146
|
+
const result = await sendVaultsByTokensRequest(url, tokenA, tokenB, strVaultByTokensQuery);
|
|
147
|
+
cache_1.default.set(key, result, ttl);
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
catch (error2) {
|
|
151
|
+
console.error('Request to public graph URL failed:', error2);
|
|
152
|
+
throw new Error(`Could not get vaults by tokens, dex ${dex} on chain ${chainId}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
276
155
|
}
|
|
277
|
-
function getVaultsByTokens(chainId, dex, depositTokenAddress, pairedTokenAddress) {
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
case 0: return [4 /*yield*/, getVaultsByTokensAB(chainId, dex, depositTokenAddress, pairedTokenAddress)];
|
|
283
|
-
case 1:
|
|
284
|
-
arrVaults1 = (_a.sent()).filter(function (v) { return v.allowTokenA; });
|
|
285
|
-
return [4 /*yield*/, getVaultsByTokensAB(chainId, dex, pairedTokenAddress, depositTokenAddress)];
|
|
286
|
-
case 2:
|
|
287
|
-
arrVaults2 = (_a.sent()).filter(function (v) { return v.allowTokenB; });
|
|
288
|
-
// eslint-disable-next-line no-return-await
|
|
289
|
-
return [2 /*return*/, __spreadArray(__spreadArray([], arrVaults1, true), arrVaults2, true)];
|
|
290
|
-
}
|
|
291
|
-
});
|
|
292
|
-
});
|
|
156
|
+
async function getVaultsByTokens(chainId, dex, depositTokenAddress, pairedTokenAddress) {
|
|
157
|
+
const arrVaults1 = (await getVaultsByTokensAB(chainId, dex, depositTokenAddress, pairedTokenAddress)).filter((v) => v.allowTokenA);
|
|
158
|
+
const arrVaults2 = (await getVaultsByTokensAB(chainId, dex, pairedTokenAddress, depositTokenAddress)).filter((v) => v.allowTokenB);
|
|
159
|
+
// eslint-disable-next-line no-return-await
|
|
160
|
+
return [...arrVaults1, ...arrVaults2];
|
|
293
161
|
}
|
|
294
162
|
exports.getVaultsByTokens = getVaultsByTokens;
|
|
295
|
-
function getVaultsByPool(poolAddress, chainId, dex) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
_b.trys.push([5, 7, , 8]);
|
|
326
|
-
return [4 /*yield*/, sendVaultsByPoolQueryRequest(url, poolAddress, queries_1.vaultByPoolQuery)];
|
|
327
|
-
case 6:
|
|
328
|
-
result = _b.sent();
|
|
329
|
-
cache_1.default.set(key, result, ttl);
|
|
330
|
-
return [2 /*return*/, result];
|
|
331
|
-
case 7:
|
|
332
|
-
error2_3 = _b.sent();
|
|
333
|
-
console.error('Request to public graph URL failed:', error2_3);
|
|
334
|
-
throw new Error("Could not get vaults by pool ".concat(poolAddress));
|
|
335
|
-
case 8: return [3 /*break*/, 9];
|
|
336
|
-
case 9: return [2 /*return*/];
|
|
337
|
-
}
|
|
338
|
-
});
|
|
339
|
-
});
|
|
163
|
+
async function getVaultsByPool(poolAddress, chainId, dex) {
|
|
164
|
+
const key = `pool-${chainId}-${poolAddress}`;
|
|
165
|
+
const cachedData = cache_1.default.get(key);
|
|
166
|
+
if (cachedData) {
|
|
167
|
+
return cachedData;
|
|
168
|
+
}
|
|
169
|
+
const { url, publishedUrl } = (0, getGraphUrls_1.getGraphUrls)(chainId, dex, true);
|
|
170
|
+
const ttl = 3600000;
|
|
171
|
+
try {
|
|
172
|
+
if (publishedUrl) {
|
|
173
|
+
const result = await sendVaultsByPoolQueryRequest(publishedUrl, poolAddress, queries_1.vaultByPoolQuery);
|
|
174
|
+
cache_1.default.set(key, result, ttl);
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
177
|
+
throw new Error(`Published URL is invalid for dex ${dex} on chain ${chainId}`);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
if (publishedUrl) {
|
|
181
|
+
console.error('Request to published graph URL failed:', error);
|
|
182
|
+
}
|
|
183
|
+
try {
|
|
184
|
+
const result = await sendVaultsByPoolQueryRequest(url, poolAddress, queries_1.vaultByPoolQuery);
|
|
185
|
+
cache_1.default.set(key, result, ttl);
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
catch (error2) {
|
|
189
|
+
console.error('Request to public graph URL failed:', error2);
|
|
190
|
+
throw new Error(`Could not get vaults by pool ${poolAddress}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
340
193
|
}
|
|
341
194
|
exports.getVaultsByPool = getVaultsByPool;
|
|
342
|
-
function validateVaultData(vaultAddress, jsonProvider, dex) {
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
|
351
|
-
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
|
352
|
-
}
|
|
353
|
-
return [4 /*yield*/, getIchiVaultInfo(chainId, dex, vaultAddress, jsonProvider)];
|
|
354
|
-
case 2:
|
|
355
|
-
vault = _a.sent();
|
|
356
|
-
return [2 /*return*/, { chainId: chainId, vault: vault }];
|
|
357
|
-
}
|
|
358
|
-
});
|
|
359
|
-
});
|
|
195
|
+
async function validateVaultData(vaultAddress, jsonProvider, dex) {
|
|
196
|
+
const network = await jsonProvider.getNetwork();
|
|
197
|
+
const chainId = Number(network.chainId);
|
|
198
|
+
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
|
199
|
+
throw new Error(`Unsupported chainId: ${chainId ?? 'undefined'}`);
|
|
200
|
+
}
|
|
201
|
+
const vault = await getIchiVaultInfo(chainId, dex, vaultAddress, jsonProvider);
|
|
202
|
+
return { chainId, vault };
|
|
360
203
|
}
|
|
361
204
|
exports.validateVaultData = validateVaultData;
|
|
362
|
-
function getChainByProvider(jsonProvider) {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
chainId = (_a.sent()).chainId;
|
|
370
|
-
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
|
371
|
-
throw new Error("Unsupported chainId: ".concat(chainId !== null && chainId !== void 0 ? chainId : 'undefined'));
|
|
372
|
-
}
|
|
373
|
-
return [2 /*return*/, { chainId: chainId }];
|
|
374
|
-
}
|
|
375
|
-
});
|
|
376
|
-
});
|
|
205
|
+
async function getChainByProvider(jsonProvider) {
|
|
206
|
+
const network = await jsonProvider.getNetwork();
|
|
207
|
+
const chainId = Number(network.chainId);
|
|
208
|
+
if (!Object.values(types_1.SupportedChainId).includes(chainId)) {
|
|
209
|
+
throw new Error(`Unsupported chainId: ${chainId ?? 'undefined'}`);
|
|
210
|
+
}
|
|
211
|
+
return { chainId };
|
|
377
212
|
}
|
|
378
213
|
exports.getChainByProvider = getChainByProvider;
|
|
379
|
-
function getAllRewardVaults(chainId, dex) {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
_b.trys.push([5, 7, , 8]);
|
|
410
|
-
return [4 /*yield*/, sendAllRewardVaultsQueryRequest(url, queries_1.allRewardVaults)];
|
|
411
|
-
case 6:
|
|
412
|
-
result = _b.sent();
|
|
413
|
-
cache_1.default.set(key, result, ttl);
|
|
414
|
-
return [2 /*return*/, result];
|
|
415
|
-
case 7:
|
|
416
|
-
error2_4 = _b.sent();
|
|
417
|
-
console.error('Request to public graph URL failed:', error2_4);
|
|
418
|
-
throw new Error("Could not get reward vaults on dex ".concat(dex));
|
|
419
|
-
case 8: return [3 /*break*/, 9];
|
|
420
|
-
case 9: return [2 /*return*/];
|
|
421
|
-
}
|
|
422
|
-
});
|
|
423
|
-
});
|
|
214
|
+
async function getAllRewardVaults(chainId, dex) {
|
|
215
|
+
const key = `allvaults-${chainId}-${dex}`;
|
|
216
|
+
const cachedData = cache_1.default.get(key);
|
|
217
|
+
if (cachedData) {
|
|
218
|
+
return cachedData;
|
|
219
|
+
}
|
|
220
|
+
const { url, publishedUrl } = (0, getGraphUrls_1.getGraphUrls)(chainId, dex, true);
|
|
221
|
+
const ttl = 3600000;
|
|
222
|
+
try {
|
|
223
|
+
if (publishedUrl) {
|
|
224
|
+
const result = await sendAllRewardVaultsQueryRequest(publishedUrl, queries_1.allRewardVaults);
|
|
225
|
+
cache_1.default.set(key, result, ttl);
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
throw new Error(`Published URL is invalid for dex ${dex} on chain ${chainId}`);
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
if (publishedUrl) {
|
|
232
|
+
console.error('Request to published graph URL failed:', error);
|
|
233
|
+
}
|
|
234
|
+
try {
|
|
235
|
+
const result = await sendAllRewardVaultsQueryRequest(url, queries_1.allRewardVaults);
|
|
236
|
+
cache_1.default.set(key, result, ttl);
|
|
237
|
+
return result;
|
|
238
|
+
}
|
|
239
|
+
catch (error2) {
|
|
240
|
+
console.error('Request to public graph URL failed:', error2);
|
|
241
|
+
throw new Error(`Could not get reward vaults on dex ${dex}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
424
244
|
}
|
|
425
245
|
exports.getAllRewardVaults = getAllRewardVaults;
|
|
426
246
|
//# sourceMappingURL=vault.js.map
|