curvance 4.1.2 → 5.1.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 +65 -10
- package/dist/abis/OptimizerReader.json +43 -45
- package/dist/abis/ProtocolReader.json +279 -55
- package/dist/chains/arbitrum.js +3 -3
- package/dist/chains/arbitrum.js.map +1 -1
- package/dist/classes/Api.d.ts +2 -2
- package/dist/classes/Api.d.ts.map +1 -1
- package/dist/classes/Api.js +87 -14
- package/dist/classes/Api.js.map +1 -1
- package/dist/classes/BorrowableCToken.d.ts +9 -1
- package/dist/classes/BorrowableCToken.d.ts.map +1 -1
- package/dist/classes/BorrowableCToken.js +67 -12
- package/dist/classes/BorrowableCToken.js.map +1 -1
- package/dist/classes/CToken.d.ts +210 -21
- package/dist/classes/CToken.d.ts.map +1 -1
- package/dist/classes/CToken.js +692 -284
- package/dist/classes/CToken.js.map +1 -1
- package/dist/classes/Calldata.d.ts +2 -2
- package/dist/classes/Calldata.d.ts.map +1 -1
- package/dist/classes/Calldata.js +6 -2
- package/dist/classes/Calldata.js.map +1 -1
- package/dist/classes/DexAggregators/IDexAgg.d.ts +1 -1
- package/dist/classes/DexAggregators/Kuru.js +1 -1
- package/dist/classes/DexAggregators/Kuru.js.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.d.ts.map +1 -1
- package/dist/classes/DexAggregators/KyberSwap.js +112 -61
- package/dist/classes/DexAggregators/KyberSwap.js.map +1 -1
- package/dist/classes/DexAggregators/MultiDexAgg.d.ts +2 -2
- package/dist/classes/DexAggregators/MultiDexAgg.d.ts.map +1 -1
- package/dist/classes/DexAggregators/MultiDexAgg.js +30 -18
- package/dist/classes/DexAggregators/MultiDexAgg.js.map +1 -1
- package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts +19 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.d.ts.map +1 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.js +29 -0
- package/dist/classes/DexAggregators/UnsupportedDexAgg.js.map +1 -0
- package/dist/classes/DexAggregators/helpers.d.ts +30 -0
- package/dist/classes/DexAggregators/helpers.d.ts.map +1 -0
- package/dist/classes/DexAggregators/helpers.js +57 -0
- package/dist/classes/DexAggregators/helpers.js.map +1 -0
- package/dist/classes/DexAggregators/index.d.ts +2 -0
- package/dist/classes/DexAggregators/index.d.ts.map +1 -1
- package/dist/classes/DexAggregators/index.js +1 -0
- package/dist/classes/DexAggregators/index.js.map +1 -1
- package/dist/classes/ERC20.d.ts +3 -3
- package/dist/classes/ERC20.d.ts.map +1 -1
- package/dist/classes/ERC20.js +26 -10
- package/dist/classes/ERC20.js.map +1 -1
- package/dist/classes/FormatConverter.d.ts.map +1 -1
- package/dist/classes/FormatConverter.js +4 -1
- package/dist/classes/FormatConverter.js.map +1 -1
- package/dist/classes/Market.d.ts +46 -8
- package/dist/classes/Market.d.ts.map +1 -1
- package/dist/classes/Market.js +342 -111
- package/dist/classes/Market.js.map +1 -1
- package/dist/classes/NativeToken.d.ts +2 -2
- package/dist/classes/NativeToken.d.ts.map +1 -1
- package/dist/classes/NativeToken.js +21 -7
- package/dist/classes/NativeToken.js.map +1 -1
- package/dist/classes/OptimizerReader.d.ts +15 -7
- package/dist/classes/OptimizerReader.d.ts.map +1 -1
- package/dist/classes/OptimizerReader.js +108 -30
- package/dist/classes/OptimizerReader.js.map +1 -1
- package/dist/classes/OracleManager.d.ts.map +1 -1
- package/dist/classes/OracleManager.js +11 -4
- package/dist/classes/OracleManager.js.map +1 -1
- package/dist/classes/PositionManager.d.ts.map +1 -1
- package/dist/classes/PositionManager.js +1 -3
- package/dist/classes/PositionManager.js.map +1 -1
- package/dist/classes/ProtocolReader.d.ts +30 -9
- package/dist/classes/ProtocolReader.d.ts.map +1 -1
- package/dist/classes/ProtocolReader.js +158 -138
- package/dist/classes/ProtocolReader.js.map +1 -1
- package/dist/classes/Zapper.d.ts +5 -5
- package/dist/classes/Zapper.d.ts.map +1 -1
- package/dist/classes/Zapper.js +21 -18
- package/dist/classes/Zapper.js.map +1 -1
- package/dist/contracts/monad-mainnet.json +1 -1
- package/dist/feePolicy.d.ts +2 -0
- package/dist/feePolicy.d.ts.map +1 -1
- package/dist/feePolicy.js +19 -0
- package/dist/feePolicy.js.map +1 -1
- package/dist/format/borrow.d.ts.map +1 -1
- package/dist/format/borrow.js +7 -1
- package/dist/format/borrow.js.map +1 -1
- package/dist/format/health.d.ts +3 -2
- package/dist/format/health.d.ts.map +1 -1
- package/dist/format/health.js +10 -9
- package/dist/format/health.js.map +1 -1
- package/dist/format/leverage.js +5 -4
- package/dist/format/leverage.js.map +1 -1
- package/dist/helpers.d.ts +14 -11
- package/dist/helpers.d.ts.map +1 -1
- package/dist/helpers.js +171 -52
- package/dist/helpers.js.map +1 -1
- package/dist/integrations/merkl.d.ts +2 -1
- package/dist/integrations/merkl.d.ts.map +1 -1
- package/dist/integrations/merkl.js +199 -4
- package/dist/integrations/merkl.js.map +1 -1
- package/dist/integrations/snapshot.d.ts +28 -24
- package/dist/integrations/snapshot.d.ts.map +1 -1
- package/dist/integrations/snapshot.js +106 -42
- package/dist/integrations/snapshot.js.map +1 -1
- package/dist/retry-provider.d.ts +6 -0
- package/dist/retry-provider.d.ts.map +1 -1
- package/dist/retry-provider.js +103 -11
- package/dist/retry-provider.js.map +1 -1
- package/dist/setup.d.ts +8 -6
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +125 -45
- package/dist/setup.js.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +13 -7
- package/dist/validation.js.map +1 -1
- package/package.json +6 -3
package/dist/helpers.js
CHANGED
|
@@ -15,8 +15,11 @@ exports.getChainConfig = getChainConfig;
|
|
|
15
15
|
exports.validateProviderAsSigner = validateProviderAsSigner;
|
|
16
16
|
exports.requireSigner = requireSigner;
|
|
17
17
|
exports.requireAccount = requireAccount;
|
|
18
|
+
exports.resolveReadProvider = resolveReadProvider;
|
|
18
19
|
exports.contractSetup = contractSetup;
|
|
19
20
|
exports.getContractAddresses = getContractAddresses;
|
|
21
|
+
exports.aggregateMerklAprByToken = aggregateMerklAprByToken;
|
|
22
|
+
exports.getMerklTokenIncentiveApy = getMerklTokenIncentiveApy;
|
|
20
23
|
exports.getNativeYield = getNativeYield;
|
|
21
24
|
exports.getInterestYield = getInterestYield;
|
|
22
25
|
exports.getMerklDepositIncentives = getMerklDepositIncentives;
|
|
@@ -27,29 +30,34 @@ exports.contractWithGasBuffer = contractWithGasBuffer;
|
|
|
27
30
|
const ethers_1 = require("ethers");
|
|
28
31
|
const decimal_js_1 = require("decimal.js");
|
|
29
32
|
const contracts_1 = require("./contracts");
|
|
30
|
-
const setup_1 = require("./setup");
|
|
31
33
|
const FormatConverter_1 = __importDefault(require("./classes/FormatConverter"));
|
|
32
|
-
const chains_1 = require("./chains");
|
|
33
34
|
// Set Decimal.js precision to handle large numbers
|
|
34
35
|
decimal_js_1.Decimal.set({ precision: 50 });
|
|
35
|
-
exports.BPS =
|
|
36
|
-
exports.BPS_SQUARED =
|
|
37
|
-
exports.WAD =
|
|
38
|
-
exports.WAD_BPS =
|
|
39
|
-
exports.RAY =
|
|
40
|
-
exports.WAD_SQUARED =
|
|
41
|
-
exports.WAD_CUBED_BPS_OFFSET =
|
|
36
|
+
exports.BPS = 10000n;
|
|
37
|
+
exports.BPS_SQUARED = exports.BPS * exports.BPS;
|
|
38
|
+
exports.WAD = 10n ** 18n;
|
|
39
|
+
exports.WAD_BPS = exports.WAD * exports.BPS;
|
|
40
|
+
exports.RAY = 10n ** 27n;
|
|
41
|
+
exports.WAD_SQUARED = exports.WAD * exports.WAD;
|
|
42
|
+
exports.WAD_CUBED_BPS_OFFSET = exports.WAD * exports.WAD * exports.WAD / exports.BPS;
|
|
42
43
|
exports.WAD_DECIMAL = new decimal_js_1.Decimal(exports.WAD);
|
|
43
44
|
exports.SECONDS_PER_YEAR = 31536000n; // 365 days
|
|
44
45
|
exports.SECONDS_PER_MONTH = 2592000n; // 30 days
|
|
45
46
|
exports.SECONDS_PER_WEEK = 604800n; // 7 days
|
|
46
47
|
exports.SECONDS_PER_DAY = 86400n; // 1 day
|
|
47
48
|
exports.DEFAULT_SLIPPAGE_BPS = 100n; // 1%
|
|
49
|
+
const MAX_SWAP_SLIPPAGE_BPS = 9999n;
|
|
48
50
|
exports.UINT256_MAX = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
|
49
51
|
exports.UINT256_MAX_DECIMAL = (0, decimal_js_1.Decimal)(exports.UINT256_MAX);
|
|
50
52
|
exports.EMPTY_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
51
53
|
exports.NATIVE_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
52
54
|
exports.EMPTY_BYTES = "0x";
|
|
55
|
+
function getSetupConfig() {
|
|
56
|
+
return require("./setup").setup_config;
|
|
57
|
+
}
|
|
58
|
+
function getChainConfigMap() {
|
|
59
|
+
return require("./chains").chain_config;
|
|
60
|
+
}
|
|
53
61
|
function getRateSeconds(rate) {
|
|
54
62
|
switch (rate) {
|
|
55
63
|
case "year":
|
|
@@ -119,10 +127,12 @@ function toBigInt(value, decimals) {
|
|
|
119
127
|
* against LTV, not a slippage-tolerance expansion.
|
|
120
128
|
*/
|
|
121
129
|
function amplifyContractSlippage(baseSlippage, leverageDelta, bpsToAmplify) {
|
|
122
|
-
if (bpsToAmplify === 0n)
|
|
123
|
-
return baseSlippage;
|
|
130
|
+
if (bpsToAmplify === 0n) {
|
|
131
|
+
return baseSlippage > MAX_SWAP_SLIPPAGE_BPS ? MAX_SWAP_SLIPPAGE_BPS : baseSlippage;
|
|
132
|
+
}
|
|
124
133
|
const expansion = leverageDelta.mul(Number(bpsToAmplify)).ceil().toFixed(0);
|
|
125
|
-
|
|
134
|
+
const amplified = baseSlippage + BigInt(expansion);
|
|
135
|
+
return amplified > MAX_SWAP_SLIPPAGE_BPS ? MAX_SWAP_SLIPPAGE_BPS : amplified;
|
|
126
136
|
}
|
|
127
137
|
/**
|
|
128
138
|
* Compute the swap-layer slippage tolerance (in WAD-BPS form) for the
|
|
@@ -166,12 +176,19 @@ function amplifyContractSlippage(baseSlippage, leverageDelta, bpsToAmplify) {
|
|
|
166
176
|
*/
|
|
167
177
|
function toContractSwapSlippage(userSlippage, feeBps) {
|
|
168
178
|
const effective = feeBps && feeBps > 0n ? userSlippage + feeBps : userSlippage;
|
|
179
|
+
if (effective < 0n || effective > MAX_SWAP_SLIPPAGE_BPS) {
|
|
180
|
+
throw new Error(`Swap slippage out of range (0-9999 BPS): ${effective}`);
|
|
181
|
+
}
|
|
169
182
|
return effective ? FormatConverter_1.default.bpsToBpsWad(effective) : 0n;
|
|
170
183
|
}
|
|
171
|
-
function getChainConfig(chain
|
|
172
|
-
const
|
|
184
|
+
function getChainConfig(chain) {
|
|
185
|
+
const resolvedChain = chain ?? getSetupConfig()?.chain;
|
|
186
|
+
if (!resolvedChain) {
|
|
187
|
+
throw new Error("Chain is not configured. Pass a chain explicitly or initialize setupChain() first.");
|
|
188
|
+
}
|
|
189
|
+
const config = getChainConfigMap()[resolvedChain];
|
|
173
190
|
if (!config) {
|
|
174
|
-
throw new Error(`No configuration found for chain ${
|
|
191
|
+
throw new Error(`No configuration found for chain ${resolvedChain}`);
|
|
175
192
|
}
|
|
176
193
|
return config;
|
|
177
194
|
}
|
|
@@ -194,6 +211,21 @@ function requireAccount(account, signer = null) {
|
|
|
194
211
|
}
|
|
195
212
|
return requireSigner(signer).address;
|
|
196
213
|
}
|
|
214
|
+
function resolveReadProvider(provider, context) {
|
|
215
|
+
if (!("address" in provider)) {
|
|
216
|
+
return provider;
|
|
217
|
+
}
|
|
218
|
+
const signerProvider = provider.provider;
|
|
219
|
+
if (signerProvider != null) {
|
|
220
|
+
return signerProvider;
|
|
221
|
+
}
|
|
222
|
+
const defaultReadProvider = getSetupConfig()?.readProvider;
|
|
223
|
+
if (defaultReadProvider != null) {
|
|
224
|
+
return defaultReadProvider;
|
|
225
|
+
}
|
|
226
|
+
throw new Error(`Read provider is not configured for ${context}. ` +
|
|
227
|
+
`Pass a read provider explicitly, use a signer with .provider, or initialize setupChain() first.`);
|
|
228
|
+
}
|
|
197
229
|
function contractSetup(provider, contractAddress, abi) {
|
|
198
230
|
const contract = new ethers_1.Contract(contractAddress, abi, provider);
|
|
199
231
|
if (contract == undefined || contract == null) {
|
|
@@ -238,6 +270,19 @@ function supportsGasOverrides(contract, methodName) {
|
|
|
238
270
|
return false;
|
|
239
271
|
}
|
|
240
272
|
}
|
|
273
|
+
function getContractMethodInputCount(contract, methodName) {
|
|
274
|
+
if (typeof methodName !== "string") {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
try {
|
|
278
|
+
const fragment = contract?.interface?.getFunction(methodName);
|
|
279
|
+
const inputs = fragment?.inputs;
|
|
280
|
+
return Array.isArray(inputs) ? inputs.length : null;
|
|
281
|
+
}
|
|
282
|
+
catch {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
241
286
|
/**
|
|
242
287
|
* Attempts to estimate gas and add buffer to transaction arguments
|
|
243
288
|
* @param method The contract method to estimate gas for
|
|
@@ -245,24 +290,97 @@ function supportsGasOverrides(contract, methodName) {
|
|
|
245
290
|
* @param bufferPercent The gas buffer percentage
|
|
246
291
|
* @returns true if gas estimation was successful and added to args
|
|
247
292
|
*/
|
|
248
|
-
async function tryAddGasBuffer(method, args, bufferPercent) {
|
|
293
|
+
async function tryAddGasBuffer(method, args, bufferPercent, inputCount) {
|
|
249
294
|
if (!canEstimateGas(method)) {
|
|
250
295
|
return false;
|
|
251
296
|
}
|
|
252
297
|
const estimatedGas = await method.estimateGas(...args);
|
|
253
298
|
const gasLimit = calculateGasWithBuffer(estimatedGas, bufferPercent);
|
|
254
|
-
|
|
299
|
+
if (inputCount != null && args.length > inputCount) {
|
|
300
|
+
args[args.length - 1] = {
|
|
301
|
+
...args[args.length - 1],
|
|
302
|
+
gasLimit,
|
|
303
|
+
};
|
|
304
|
+
return true;
|
|
305
|
+
}
|
|
255
306
|
args.push({ gasLimit });
|
|
256
307
|
return true;
|
|
257
308
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
309
|
+
function isRecord(value) {
|
|
310
|
+
return typeof value === "object" && value != null;
|
|
311
|
+
}
|
|
312
|
+
function normalizeMerklTokenKey(value) {
|
|
313
|
+
if (typeof value !== "string") {
|
|
314
|
+
return null;
|
|
315
|
+
}
|
|
316
|
+
const normalized = value.trim().toLowerCase();
|
|
317
|
+
return normalized.length > 0 ? normalized : null;
|
|
318
|
+
}
|
|
319
|
+
function getMerklOpportunityTokenKeys(opportunity, mode) {
|
|
320
|
+
if (!isRecord(opportunity)) {
|
|
321
|
+
return [];
|
|
322
|
+
}
|
|
323
|
+
const tokens = Array.isArray(opportunity.tokens) ? opportunity.tokens : [];
|
|
324
|
+
const tokenKeys = Array.from(new Set(tokens
|
|
325
|
+
.map((token) => isRecord(token) ? normalizeMerklTokenKey(token.address) : null)
|
|
326
|
+
.filter((value) => value != null)));
|
|
327
|
+
const identifierKey = normalizeMerklTokenKey(opportunity.identifier);
|
|
328
|
+
if (mode === "borrow") {
|
|
329
|
+
if (identifierKey != null) {
|
|
330
|
+
return [identifierKey];
|
|
331
|
+
}
|
|
332
|
+
return tokenKeys;
|
|
333
|
+
}
|
|
334
|
+
if (tokenKeys.length > 0) {
|
|
335
|
+
return tokenKeys;
|
|
336
|
+
}
|
|
337
|
+
return identifierKey != null ? [identifierKey] : [];
|
|
338
|
+
}
|
|
339
|
+
function getMerklOpportunityApr(opportunity) {
|
|
340
|
+
if (!isRecord(opportunity)) {
|
|
341
|
+
return null;
|
|
342
|
+
}
|
|
343
|
+
const { apr } = opportunity;
|
|
344
|
+
if (typeof apr !== "number" && typeof apr !== "string" && typeof apr !== "bigint") {
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
try {
|
|
348
|
+
const parsed = new decimal_js_1.Decimal(typeof apr === "bigint" ? apr.toString() : apr);
|
|
349
|
+
return parsed.isFinite() && parsed.greaterThan(0) ? parsed : null;
|
|
350
|
+
}
|
|
351
|
+
catch {
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
function aggregateMerklAprByToken(opportunities, mode) {
|
|
356
|
+
const totals = new Map();
|
|
357
|
+
for (const opportunity of opportunities ?? []) {
|
|
358
|
+
const apr = getMerklOpportunityApr(opportunity);
|
|
359
|
+
if (apr == null) {
|
|
360
|
+
continue;
|
|
361
|
+
}
|
|
362
|
+
for (const tokenKey of getMerklOpportunityTokenKeys(opportunity, mode)) {
|
|
363
|
+
const current = totals.get(tokenKey) ?? new decimal_js_1.Decimal(0);
|
|
364
|
+
totals.set(tokenKey, current.add(apr.div(100)));
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return totals;
|
|
368
|
+
}
|
|
369
|
+
function getMerklTokenIncentiveApy(tokenAddress, opportunities, mode) {
|
|
370
|
+
const tokenKey = normalizeMerklTokenKey(tokenAddress);
|
|
371
|
+
if (tokenKey == null) {
|
|
372
|
+
return new decimal_js_1.Decimal(0);
|
|
373
|
+
}
|
|
374
|
+
return aggregateMerklAprByToken(opportunities, mode).get(tokenKey) ?? new decimal_js_1.Decimal(0);
|
|
375
|
+
}
|
|
376
|
+
function getTokenNativeApy(token) {
|
|
377
|
+
return new decimal_js_1.Decimal(token.nativeApy ?? token.nativeYield ?? 0);
|
|
378
|
+
}
|
|
379
|
+
// Real CToken instances expose nativeApy; nativeYield remains accepted for older helper-shaped objects.
|
|
263
380
|
function getNativeYield(token, apyOverrides) {
|
|
264
|
-
|
|
265
|
-
|
|
381
|
+
const nativeApy = getTokenNativeApy(token);
|
|
382
|
+
if (!nativeApy.isZero())
|
|
383
|
+
return nativeApy;
|
|
266
384
|
const symbol = token.asset.symbol.toLowerCase();
|
|
267
385
|
return new decimal_js_1.Decimal(apyOverrides?.[symbol]?.value ?? 0);
|
|
268
386
|
}
|
|
@@ -277,43 +395,23 @@ function getInterestYield(token) {
|
|
|
277
395
|
* Matches opportunities whose `tokens` array contains the given address.
|
|
278
396
|
*/
|
|
279
397
|
function getMerklDepositIncentives(tokenAddress, opportunities) {
|
|
280
|
-
|
|
281
|
-
return new decimal_js_1.Decimal(0);
|
|
282
|
-
const address = tokenAddress.toLowerCase();
|
|
283
|
-
const relevant = opportunities.filter((opp) => opp.tokens.some((t) => t.address.toLowerCase() === address));
|
|
284
|
-
if (!relevant.length)
|
|
285
|
-
return new decimal_js_1.Decimal(0);
|
|
286
|
-
let bestApr = 0;
|
|
287
|
-
for (const opp of relevant) {
|
|
288
|
-
for (const t of opp.tokens) {
|
|
289
|
-
if (t.address.toLowerCase() === address) {
|
|
290
|
-
bestApr = Math.max(bestApr, opp.apr ?? 0);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return new decimal_js_1.Decimal(bestApr / 100);
|
|
398
|
+
return getMerklTokenIncentiveApy(tokenAddress, opportunities, "deposit");
|
|
295
399
|
}
|
|
296
400
|
/**
|
|
297
401
|
* Returns the Merkl incentive APY for a *borrow* token.
|
|
298
402
|
* Matches opportunities whose `identifier` equals the given address.
|
|
299
403
|
*/
|
|
300
404
|
function getMerklBorrowIncentives(tokenAddress, opportunities) {
|
|
301
|
-
|
|
302
|
-
return new decimal_js_1.Decimal(0);
|
|
303
|
-
const address = tokenAddress.toLowerCase();
|
|
304
|
-
const relevant = opportunities.filter((opp) => opp.identifier.toLowerCase() === address);
|
|
305
|
-
if (!relevant.length)
|
|
306
|
-
return new decimal_js_1.Decimal(0);
|
|
307
|
-
const bestApr = relevant.reduce((max, opp) => Math.max(max, opp.apr ?? 0), 0);
|
|
308
|
-
return new decimal_js_1.Decimal(bestApr / 100);
|
|
405
|
+
return getMerklTokenIncentiveApy(tokenAddress, opportunities, "borrow");
|
|
309
406
|
}
|
|
310
407
|
/**
|
|
311
408
|
* Returns the total deposit APY for a token (native + interest + merkl).
|
|
312
409
|
* When `nativeYield` is nonzero it already includes interest, so we use it directly.
|
|
313
410
|
*/
|
|
314
411
|
function getDepositApy(token, opportunities, apyOverrides) {
|
|
315
|
-
const
|
|
316
|
-
|
|
412
|
+
const nativeApy = getTokenNativeApy(token);
|
|
413
|
+
const base = !nativeApy.isZero()
|
|
414
|
+
? nativeApy
|
|
317
415
|
: token.getApy().add(new decimal_js_1.Decimal(apyOverrides?.[token.asset.symbol.toLowerCase()]?.value ?? 0));
|
|
318
416
|
const merkl = getMerklDepositIncentives(token.address, opportunities);
|
|
319
417
|
return base.add(merkl);
|
|
@@ -338,14 +436,13 @@ function contractWithGasBuffer(contract, bufferPercent = 10) {
|
|
|
338
436
|
if (typeof originalMethod !== 'function' || methodName === 'populateTransaction') {
|
|
339
437
|
return originalMethod;
|
|
340
438
|
}
|
|
341
|
-
|
|
342
|
-
return async (...args) => {
|
|
439
|
+
const wrappedMethod = async (...args) => {
|
|
343
440
|
try {
|
|
344
441
|
// Gas estimation is only useful on state-changing methods.
|
|
345
442
|
// Estimating read-only functions adds an unnecessary RPC round-trip
|
|
346
443
|
// and breaks fork tests when estimateGas is restricted or slow.
|
|
347
444
|
if (supportsGasOverrides(target, methodName)) {
|
|
348
|
-
await tryAddGasBuffer(originalMethod, args, bufferPercent);
|
|
445
|
+
await tryAddGasBuffer(originalMethod, args, bufferPercent, getContractMethodInputCount(target, methodName));
|
|
349
446
|
}
|
|
350
447
|
// Call the original method with potentially modified args
|
|
351
448
|
return await originalMethod.apply(target, args);
|
|
@@ -356,6 +453,28 @@ function contractWithGasBuffer(contract, bufferPercent = 10) {
|
|
|
356
453
|
throw error;
|
|
357
454
|
}
|
|
358
455
|
};
|
|
456
|
+
return new Proxy(wrappedMethod, {
|
|
457
|
+
get(methodTarget, property, methodReceiver) {
|
|
458
|
+
if (property in methodTarget) {
|
|
459
|
+
return Reflect.get(methodTarget, property, methodReceiver);
|
|
460
|
+
}
|
|
461
|
+
const value = Reflect.get(originalMethod, property, originalMethod);
|
|
462
|
+
return typeof value === "function" ? value.bind(originalMethod) : value;
|
|
463
|
+
},
|
|
464
|
+
has(methodTarget, property) {
|
|
465
|
+
return property in methodTarget || property in originalMethod;
|
|
466
|
+
},
|
|
467
|
+
ownKeys(methodTarget) {
|
|
468
|
+
return [...new Set([
|
|
469
|
+
...Reflect.ownKeys(methodTarget),
|
|
470
|
+
...Reflect.ownKeys(originalMethod),
|
|
471
|
+
])];
|
|
472
|
+
},
|
|
473
|
+
getOwnPropertyDescriptor(methodTarget, property) {
|
|
474
|
+
return (Reflect.getOwnPropertyDescriptor(methodTarget, property) ??
|
|
475
|
+
Reflect.getOwnPropertyDescriptor(originalMethod, property));
|
|
476
|
+
},
|
|
477
|
+
});
|
|
359
478
|
}
|
|
360
479
|
});
|
|
361
480
|
}
|
package/dist/helpers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,8 @@ type FetchCampaignsParams = FetchOptions & {
|
|
|
92
92
|
export declare function fetchMerklCampaignsBySymbol({ tokenSymbol, signal, }: FetchCampaignsParams): Promise<MerklCampaign[]>;
|
|
93
93
|
type FetchOpportunitiesParams = FetchOptions & {
|
|
94
94
|
action?: 'LEND' | 'BORROW';
|
|
95
|
+
chainId?: number;
|
|
95
96
|
};
|
|
96
|
-
export declare function fetchMerklOpportunities({ signal, action, }: FetchOpportunitiesParams): Promise<MerklOpportunity[]>;
|
|
97
|
+
export declare function fetchMerklOpportunities({ signal, action, chainId, }: FetchOpportunitiesParams): Promise<MerklOpportunity[]>;
|
|
97
98
|
export {};
|
|
98
99
|
//# sourceMappingURL=merkl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkl.d.ts","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"merkl.d.ts","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/D,MAAM,MAAM,0BAA0B,GAAG;IACrC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,gBAAgB,CAAC;IACxB,UAAU,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,WAAW,EAAE,CAAC;CAC1B,CAAC,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC;IACtB,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,WAAW,EAAE,gBAAgB,CAAC;CACjC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9C,aAAa,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,0BAA0B,EAAE,CAAC;KAC7C,CAAC;CACL,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAsOF,wBAAsB,qBAAqB,CAAC,EACxC,MAAM,EACN,OAAO,EACP,MAAM,GACT,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAUxD;AAED,KAAK,oBAAoB,GAAG,YAAY,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,EAC9C,WAAW,EACX,MAAM,GACT,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAWjD;AAED,KAAK,wBAAwB,GAAG,YAAY,GAAG;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,uBAAuB,CAAC,EAC1C,MAAM,EACN,MAAM,EACN,OAAO,GACV,EAAE,wBAAwB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAsBxD"}
|
|
@@ -6,13 +6,201 @@ exports.fetchMerklOpportunities = fetchMerklOpportunities;
|
|
|
6
6
|
const validation_1 = require("../validation");
|
|
7
7
|
const MERKL_API_BASE_URL = 'https://api.merkl.xyz/v4';
|
|
8
8
|
const PROTOCOL_ID = 'curvance';
|
|
9
|
+
function isRecord(value) {
|
|
10
|
+
return typeof value === 'object' && value != null;
|
|
11
|
+
}
|
|
12
|
+
function isString(value) {
|
|
13
|
+
return typeof value === 'string';
|
|
14
|
+
}
|
|
15
|
+
function isFiniteNumber(value) {
|
|
16
|
+
return typeof value === 'number' && Number.isFinite(value);
|
|
17
|
+
}
|
|
18
|
+
function isNonnegativeFiniteNumber(value) {
|
|
19
|
+
return isFiniteNumber(value) && value >= 0;
|
|
20
|
+
}
|
|
21
|
+
function normalizeChainInfo(value) {
|
|
22
|
+
if (!isRecord(value) ||
|
|
23
|
+
!isFiniteNumber(value.id) ||
|
|
24
|
+
!isString(value.name)) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const chain = {
|
|
28
|
+
id: value.id,
|
|
29
|
+
name: value.name,
|
|
30
|
+
};
|
|
31
|
+
if (isString(value.icon)) {
|
|
32
|
+
chain.icon = value.icon;
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(value.explorer)) {
|
|
35
|
+
const explorer = value.explorer
|
|
36
|
+
.filter((entry) => isRecord(entry) && isString(entry.url))
|
|
37
|
+
.map((entry) => ({ url: entry.url }));
|
|
38
|
+
if (explorer.length > 0) {
|
|
39
|
+
chain.explorer = explorer;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (isNonnegativeFiniteNumber(value.liveCampaigns)) {
|
|
43
|
+
chain.liveCampaigns = value.liveCampaigns;
|
|
44
|
+
}
|
|
45
|
+
if (isNonnegativeFiniteNumber(value.endOfDisputePeriod)) {
|
|
46
|
+
chain.endOfDisputePeriod = value.endOfDisputePeriod;
|
|
47
|
+
}
|
|
48
|
+
return chain;
|
|
49
|
+
}
|
|
50
|
+
function normalizeRewardToken(value) {
|
|
51
|
+
if (!isRecord(value) ||
|
|
52
|
+
!isString(value.symbol) ||
|
|
53
|
+
!isString(value.address) ||
|
|
54
|
+
!isFiniteNumber(value.chainId) ||
|
|
55
|
+
!isNonnegativeFiniteNumber(value.decimals)) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const token = {
|
|
59
|
+
symbol: value.symbol,
|
|
60
|
+
address: value.address,
|
|
61
|
+
chainId: value.chainId,
|
|
62
|
+
decimals: value.decimals,
|
|
63
|
+
};
|
|
64
|
+
if (isString(value.id)) {
|
|
65
|
+
token.id = value.id;
|
|
66
|
+
}
|
|
67
|
+
if (isString(value.name)) {
|
|
68
|
+
token.name = value.name;
|
|
69
|
+
}
|
|
70
|
+
if (isString(value.icon)) {
|
|
71
|
+
token.icon = value.icon;
|
|
72
|
+
}
|
|
73
|
+
if (isFiniteNumber(value.price)) {
|
|
74
|
+
token.price = value.price;
|
|
75
|
+
}
|
|
76
|
+
if (isString(value.priceSource)) {
|
|
77
|
+
token.priceSource = value.priceSource;
|
|
78
|
+
}
|
|
79
|
+
return token;
|
|
80
|
+
}
|
|
81
|
+
function normalizeRewardBreakdown(value) {
|
|
82
|
+
if (!isRecord(value) ||
|
|
83
|
+
!isString(value.campaignId) ||
|
|
84
|
+
!isString(value.amount) ||
|
|
85
|
+
!isString(value.claimed)) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
const breakdown = {
|
|
89
|
+
campaignId: value.campaignId,
|
|
90
|
+
amount: value.amount,
|
|
91
|
+
claimed: value.claimed,
|
|
92
|
+
};
|
|
93
|
+
if (isString(value.pending)) {
|
|
94
|
+
breakdown.pending = value.pending;
|
|
95
|
+
}
|
|
96
|
+
if (isString(value.reason)) {
|
|
97
|
+
breakdown.reason = value.reason;
|
|
98
|
+
}
|
|
99
|
+
return breakdown;
|
|
100
|
+
}
|
|
101
|
+
function normalizeReward(value) {
|
|
102
|
+
if (!isRecord(value) ||
|
|
103
|
+
!isFiniteNumber(value.distributionChainId) ||
|
|
104
|
+
!isString(value.root) ||
|
|
105
|
+
!isString(value.recipient) ||
|
|
106
|
+
!isString(value.amount) ||
|
|
107
|
+
!isString(value.claimed)) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
const token = normalizeRewardToken(value.token);
|
|
111
|
+
if (token == null) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const breakdowns = Array.isArray(value.breakdowns)
|
|
115
|
+
? value.breakdowns
|
|
116
|
+
.map(normalizeRewardBreakdown)
|
|
117
|
+
.filter((breakdown) => breakdown != null)
|
|
118
|
+
: undefined;
|
|
119
|
+
const reward = {
|
|
120
|
+
distributionChainId: value.distributionChainId,
|
|
121
|
+
root: value.root,
|
|
122
|
+
recipient: value.recipient,
|
|
123
|
+
amount: value.amount,
|
|
124
|
+
claimed: value.claimed,
|
|
125
|
+
token,
|
|
126
|
+
};
|
|
127
|
+
if (isString(value.pending)) {
|
|
128
|
+
reward.pending = value.pending;
|
|
129
|
+
}
|
|
130
|
+
if (breakdowns != undefined) {
|
|
131
|
+
reward.breakdowns = breakdowns;
|
|
132
|
+
}
|
|
133
|
+
return reward;
|
|
134
|
+
}
|
|
135
|
+
function normalizeMerklUserRewardsResponse(value) {
|
|
136
|
+
if (!Array.isArray(value)) {
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
const rows = [];
|
|
140
|
+
for (const row of value) {
|
|
141
|
+
if (!isRecord(row) || !Array.isArray(row.rewards)) {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const chain = normalizeChainInfo(row.chain);
|
|
145
|
+
if (chain == null) {
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
rows.push({
|
|
149
|
+
chain,
|
|
150
|
+
rewards: row.rewards
|
|
151
|
+
.map(normalizeReward)
|
|
152
|
+
.filter((reward) => reward != null),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
return rows;
|
|
156
|
+
}
|
|
157
|
+
function normalizeCampaign(value) {
|
|
158
|
+
if (!isRecord(value) ||
|
|
159
|
+
!isString(value.id) ||
|
|
160
|
+
!isString(value.campaignId) ||
|
|
161
|
+
!isFiniteNumber(value.computeChainId) ||
|
|
162
|
+
!isFiniteNumber(value.distributionChainId)) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
const chain = normalizeChainInfo(value.chain);
|
|
166
|
+
const rewardToken = normalizeRewardToken(value.rewardToken);
|
|
167
|
+
if (chain == null || rewardToken == null) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
const distributionChain = value.distributionChain != undefined
|
|
171
|
+
? normalizeChainInfo(value.distributionChain)
|
|
172
|
+
: undefined;
|
|
173
|
+
if (value.distributionChain != undefined && distributionChain == null) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
const campaign = {
|
|
177
|
+
id: value.id,
|
|
178
|
+
campaignId: value.campaignId,
|
|
179
|
+
computeChainId: value.computeChainId,
|
|
180
|
+
distributionChainId: value.distributionChainId,
|
|
181
|
+
chain,
|
|
182
|
+
rewardToken,
|
|
183
|
+
};
|
|
184
|
+
if (distributionChain != undefined) {
|
|
185
|
+
campaign.distributionChain = distributionChain;
|
|
186
|
+
}
|
|
187
|
+
return campaign;
|
|
188
|
+
}
|
|
189
|
+
function normalizeMerklCampaigns(value) {
|
|
190
|
+
if (!Array.isArray(value)) {
|
|
191
|
+
return [];
|
|
192
|
+
}
|
|
193
|
+
return value
|
|
194
|
+
.map(normalizeCampaign)
|
|
195
|
+
.filter((campaign) => campaign != null);
|
|
196
|
+
}
|
|
9
197
|
async function fetchMerklUserRewards({ wallet, chainId, signal, }) {
|
|
10
198
|
const url = new URL(`${MERKL_API_BASE_URL}/users/${wallet}/rewards?chainId=${chainId}`);
|
|
11
199
|
const response = await (0, validation_1.fetchWithTimeout)(url.toString(), { signal: signal ?? null, cache: 'no-store' });
|
|
12
200
|
if (!response.ok) {
|
|
13
201
|
throw new Error('Failed to fetch Merkl rewards');
|
|
14
202
|
}
|
|
15
|
-
return (await response.json());
|
|
203
|
+
return normalizeMerklUserRewardsResponse(await response.json());
|
|
16
204
|
}
|
|
17
205
|
async function fetchMerklCampaignsBySymbol({ tokenSymbol, signal, }) {
|
|
18
206
|
const url = new URL(`${MERKL_API_BASE_URL}/campaigns`);
|
|
@@ -21,18 +209,25 @@ async function fetchMerklCampaignsBySymbol({ tokenSymbol, signal, }) {
|
|
|
21
209
|
if (!response.ok) {
|
|
22
210
|
throw new Error('Failed to fetch Merkl campaigns');
|
|
23
211
|
}
|
|
24
|
-
return (await response.json());
|
|
212
|
+
return normalizeMerklCampaigns(await response.json());
|
|
25
213
|
}
|
|
26
|
-
async function fetchMerklOpportunities({ signal, action, }) {
|
|
214
|
+
async function fetchMerklOpportunities({ signal, action, chainId, }) {
|
|
27
215
|
const url = new URL(`${MERKL_API_BASE_URL}/opportunities?items=100&tokenTypes=TOKEN`);
|
|
28
216
|
url.searchParams.set('mainProtocolId', PROTOCOL_ID);
|
|
29
217
|
if (action) {
|
|
30
218
|
url.searchParams.set('action', action);
|
|
31
219
|
}
|
|
220
|
+
if (chainId != undefined) {
|
|
221
|
+
url.searchParams.set('chainId', String(chainId));
|
|
222
|
+
}
|
|
32
223
|
const response = await (0, validation_1.fetchWithTimeout)(url.toString(), { signal: signal ?? null, cache: 'no-store' });
|
|
33
224
|
if (!response.ok) {
|
|
34
225
|
throw new Error('Failed to fetch Merkl opportunities');
|
|
35
226
|
}
|
|
36
|
-
|
|
227
|
+
const body = await response.json();
|
|
228
|
+
if (!Array.isArray(body)) {
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
return body;
|
|
37
232
|
}
|
|
38
233
|
//# sourceMappingURL=merkl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merkl.js","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"merkl.js","sourceRoot":"","sources":["../../src/integrations/merkl.ts"],"names":[],"mappings":"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"}
|