@strkfarm/sdk 1.1.5 → 1.1.6
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/dist/index.browser.global.js +393 -246
- package/dist/index.browser.mjs +171 -36
- package/dist/index.d.ts +4 -1
- package/dist/index.js +171 -36
- package/dist/index.mjs +171 -36
- package/package.json +2 -1
- package/src/global.ts +32 -0
- package/src/interfaces/common.tsx +1 -0
- package/src/modules/harvests.ts +2 -1
- package/src/modules/pricer.ts +25 -8
- package/src/strategies/constants.ts +5 -1
- package/src/strategies/ekubo-cl-vault.tsx +95 -18
- package/src/strategies/universal-adapters/vesu-adapter.ts +2 -1
- package/src/strategies/vesu-rebalance.tsx +3 -3
package/dist/index.browser.mjs
CHANGED
|
@@ -200,6 +200,7 @@ var defaultTokens = [{
|
|
|
200
200
|
address: ContractAddr.from("0x0593e034dda23eea82d2ba9a30960ed42cf4a01502cc2351dc9b9881f9931a68"),
|
|
201
201
|
decimals: 18,
|
|
202
202
|
coingeckId: void 0,
|
|
203
|
+
priceProxySymbol: "WBTC",
|
|
203
204
|
displayDecimals: 6,
|
|
204
205
|
priceCheckAmount: 1e-4
|
|
205
206
|
// 112000 * 0.0001 = $11.2
|
|
@@ -211,6 +212,40 @@ var defaultTokens = [{
|
|
|
211
212
|
decimals: 8,
|
|
212
213
|
coingeckId: void 0,
|
|
213
214
|
displayDecimals: 6,
|
|
215
|
+
priceProxySymbol: "WBTC",
|
|
216
|
+
priceCheckAmount: 1e-4
|
|
217
|
+
// 112000 * 0.0001 = $11.2
|
|
218
|
+
}, {
|
|
219
|
+
name: "xWBTC",
|
|
220
|
+
symbol: "xWBTC",
|
|
221
|
+
logo: "https://assets.strkfarm.com/integrations/tokens/xwbtc.svg",
|
|
222
|
+
address: ContractAddr.from("0x6a567e68c805323525fe1649adb80b03cddf92c23d2629a6779f54192dffc13"),
|
|
223
|
+
decimals: 8,
|
|
224
|
+
coingeckId: void 0,
|
|
225
|
+
displayDecimals: 6,
|
|
226
|
+
priceProxySymbol: "WBTC",
|
|
227
|
+
priceCheckAmount: 1e-4
|
|
228
|
+
// 112000 * 0.0001 = $11.2
|
|
229
|
+
}, {
|
|
230
|
+
name: "xsBTC",
|
|
231
|
+
symbol: "xsBTC",
|
|
232
|
+
logo: "https://assets.strkfarm.com/integrations/tokens/xsbtc_solv.svg",
|
|
233
|
+
address: ContractAddr.from("0x580f3dc564a7b82f21d40d404b3842d490ae7205e6ac07b1b7af2b4a5183dc9"),
|
|
234
|
+
decimals: 18,
|
|
235
|
+
coingeckId: void 0,
|
|
236
|
+
displayDecimals: 6,
|
|
237
|
+
priceProxySymbol: "WBTC",
|
|
238
|
+
priceCheckAmount: 1e-4
|
|
239
|
+
// 112000 * 0.0001 = $11.2
|
|
240
|
+
}, {
|
|
241
|
+
name: "xtBTC",
|
|
242
|
+
symbol: "xtBTC",
|
|
243
|
+
logo: "https://assets.strkfarm.com/integrations/tokens/xtbtc.svg",
|
|
244
|
+
address: ContractAddr.from("0x43a35c1425a0125ef8c171f1a75c6f31ef8648edcc8324b55ce1917db3f9b91"),
|
|
245
|
+
decimals: 8,
|
|
246
|
+
coingeckId: void 0,
|
|
247
|
+
displayDecimals: 6,
|
|
248
|
+
priceProxySymbol: "WBTC",
|
|
214
249
|
priceCheckAmount: 1e-4
|
|
215
250
|
// 112000 * 0.0001 = $11.2
|
|
216
251
|
}];
|
|
@@ -300,9 +335,11 @@ var PricerBase = class {
|
|
|
300
335
|
// src/modules/pricer.ts
|
|
301
336
|
var Pricer = class extends PricerBase {
|
|
302
337
|
// e.g. ETH/USDC
|
|
303
|
-
constructor(config, tokens2) {
|
|
338
|
+
constructor(config, tokens2, refreshInterval = 3e4, staleTime = 6e4) {
|
|
304
339
|
super(config, tokens2);
|
|
305
340
|
this.prices = {};
|
|
341
|
+
this.refreshInterval = 3e4;
|
|
342
|
+
this.staleTime = 6e4;
|
|
306
343
|
// code populates this map during runtime to determine which method to use for a given token
|
|
307
344
|
// The method set will be the first one to try after first attempt
|
|
308
345
|
this.methodToUse = {};
|
|
@@ -311,6 +348,8 @@ var Pricer = class extends PricerBase {
|
|
|
311
348
|
*/
|
|
312
349
|
this.PRICE_API = `https://api.coinbase.com/v2/prices/{{PRICER_KEY}}/buy`;
|
|
313
350
|
this.EKUBO_API = "https://quoter-mainnet-api.ekubo.org/{{AMOUNT}}/{{TOKEN_ADDRESS}}/0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8";
|
|
351
|
+
this.refreshInterval = refreshInterval;
|
|
352
|
+
this.staleTime = staleTime;
|
|
314
353
|
}
|
|
315
354
|
isReady() {
|
|
316
355
|
const allPricesExist = Object.keys(this.prices).length === this.tokens.length;
|
|
@@ -343,10 +382,10 @@ var Pricer = class extends PricerBase {
|
|
|
343
382
|
this._loadPrices();
|
|
344
383
|
setInterval(() => {
|
|
345
384
|
this._loadPrices();
|
|
346
|
-
},
|
|
385
|
+
}, this.refreshInterval);
|
|
347
386
|
}
|
|
348
387
|
isStale(timestamp, tokenName) {
|
|
349
|
-
const STALE_TIME =
|
|
388
|
+
const STALE_TIME = this.staleTime;
|
|
350
389
|
return (/* @__PURE__ */ new Date()).getTime() - timestamp.getTime() > STALE_TIME;
|
|
351
390
|
}
|
|
352
391
|
assertNotStale(timestamp, tokenName) {
|
|
@@ -372,13 +411,25 @@ var Pricer = class extends PricerBase {
|
|
|
372
411
|
onUpdate(token.symbol);
|
|
373
412
|
return;
|
|
374
413
|
}
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
414
|
+
if (token.priceProxySymbol) {
|
|
415
|
+
const proxyToken = this.tokens.find((t) => t.symbol === token.priceProxySymbol);
|
|
416
|
+
if (!proxyToken) {
|
|
417
|
+
throw new FatalError(`Price proxy token ${token.priceProxySymbol} not found`);
|
|
418
|
+
}
|
|
419
|
+
const price = await this._getPrice(proxyToken);
|
|
420
|
+
this.prices[token.symbol] = {
|
|
421
|
+
price,
|
|
422
|
+
timestamp: /* @__PURE__ */ new Date()
|
|
423
|
+
};
|
|
424
|
+
} else {
|
|
425
|
+
const price = await this._getPrice(token);
|
|
426
|
+
this.prices[token.symbol] = {
|
|
427
|
+
price,
|
|
428
|
+
timestamp: /* @__PURE__ */ new Date()
|
|
429
|
+
};
|
|
430
|
+
}
|
|
380
431
|
onUpdate(token.symbol);
|
|
381
|
-
logger.verbose(`Fetched price of ${token.name} as ${price}`);
|
|
432
|
+
logger.verbose(`Fetched price of ${token.name} as ${this.prices[token.symbol].price}`);
|
|
382
433
|
break;
|
|
383
434
|
} catch (error) {
|
|
384
435
|
if (retry < MAX_RETRIES) {
|
|
@@ -3810,6 +3861,18 @@ async function getAPIUsingHeadlessBrowser(url) {
|
|
|
3810
3861
|
|
|
3811
3862
|
// src/modules/harvests.ts
|
|
3812
3863
|
import { Contract as Contract4, num as num3 } from "starknet";
|
|
3864
|
+
|
|
3865
|
+
// src/strategies/constants.ts
|
|
3866
|
+
var COMMON_CONTRACTS = [{
|
|
3867
|
+
address: ContractAddr.from("0x0636a3f51cc37f5729e4da4b1de6a8549a28f3c0d5bf3b17f150971e451ff9c2"),
|
|
3868
|
+
name: "Access Controller",
|
|
3869
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/blob/main/src/components/accessControl.cairo"
|
|
3870
|
+
}];
|
|
3871
|
+
var ENDPOINTS = {
|
|
3872
|
+
VESU_BASE: "https://cache-server-t2me.onrender.com/vesu"
|
|
3873
|
+
};
|
|
3874
|
+
|
|
3875
|
+
// src/modules/harvests.ts
|
|
3813
3876
|
var Harvests = class _Harvests {
|
|
3814
3877
|
constructor(config) {
|
|
3815
3878
|
this.config = config;
|
|
@@ -3869,7 +3932,7 @@ var EkuboHarvests = class extends Harvests {
|
|
|
3869
3932
|
var VESU_REWARDS_CONTRACT = ContractAddr.from("0x0387f3eb1d98632fbe3440a9f1385Aec9d87b6172491d3Dd81f1c35A7c61048F");
|
|
3870
3933
|
var VesuHarvests = class _VesuHarvests extends Harvests {
|
|
3871
3934
|
async getHarvests(addr) {
|
|
3872
|
-
const result = await fetch(
|
|
3935
|
+
const result = await fetch(`${ENDPOINTS.VESU_BASE}/users/${addr.address}/strk-rewards/calldata`);
|
|
3873
3936
|
const data = await result.json();
|
|
3874
3937
|
const rewardsContract = VESU_REWARDS_CONTRACT;
|
|
3875
3938
|
const cls = await this.config.provider.getClassAt(rewardsContract.address);
|
|
@@ -9347,13 +9410,6 @@ var vesu_pools_default = {
|
|
|
9347
9410
|
]
|
|
9348
9411
|
};
|
|
9349
9412
|
|
|
9350
|
-
// src/strategies/constants.ts
|
|
9351
|
-
var COMMON_CONTRACTS = [{
|
|
9352
|
-
address: ContractAddr.from("0x0636a3f51cc37f5729e4da4b1de6a8549a28f3c0d5bf3b17f150971e451ff9c2"),
|
|
9353
|
-
name: "Access Controller",
|
|
9354
|
-
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/blob/main/src/components/accessControl.cairo"
|
|
9355
|
-
}];
|
|
9356
|
-
|
|
9357
9413
|
// src/strategies/vesu-rebalance.tsx
|
|
9358
9414
|
import { jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
9359
9415
|
var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
@@ -9482,7 +9538,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
9482
9538
|
};
|
|
9483
9539
|
}
|
|
9484
9540
|
static async getAllPossibleVerifiedPools(asset) {
|
|
9485
|
-
const data = await getAPIUsingHeadlessBrowser(
|
|
9541
|
+
const data = await getAPIUsingHeadlessBrowser(`${ENDPOINTS.VESU_BASE}/pools`);
|
|
9486
9542
|
const verifiedPools = data.data.filter((d) => d.isVerified);
|
|
9487
9543
|
const pools = verifiedPools.map((p) => {
|
|
9488
9544
|
const hasMyAsset = p.assets.find((a) => asset.eqString(a.address));
|
|
@@ -9659,7 +9715,7 @@ var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
|
9659
9715
|
let pools = [];
|
|
9660
9716
|
try {
|
|
9661
9717
|
const data = await getAPIUsingHeadlessBrowser(
|
|
9662
|
-
|
|
9718
|
+
`${ENDPOINTS.VESU_BASE}/pools`
|
|
9663
9719
|
);
|
|
9664
9720
|
pools = data.data;
|
|
9665
9721
|
for (const pool of vesu_pools_default.data) {
|
|
@@ -16296,6 +16352,15 @@ var faqs2 = [
|
|
|
16296
16352
|
] })
|
|
16297
16353
|
}
|
|
16298
16354
|
];
|
|
16355
|
+
function getLSTFAQs(lstSymbol) {
|
|
16356
|
+
return [
|
|
16357
|
+
...faqs2,
|
|
16358
|
+
{
|
|
16359
|
+
question: "Why might I see a negative APY?",
|
|
16360
|
+
answer: `A negative APY can occur when ${lstSymbol}'s price drops on DEXes. This is usually temporary and tends to recover within a few days or a week.`
|
|
16361
|
+
}
|
|
16362
|
+
];
|
|
16363
|
+
}
|
|
16299
16364
|
var xSTRKSTRK = {
|
|
16300
16365
|
name: "Ekubo xSTRK/STRK",
|
|
16301
16366
|
description: /* @__PURE__ */ jsx3(Fragment2, {}),
|
|
@@ -16334,13 +16399,7 @@ var xSTRKSTRK = {
|
|
|
16334
16399
|
},
|
|
16335
16400
|
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "STRK")
|
|
16336
16401
|
},
|
|
16337
|
-
faqs:
|
|
16338
|
-
...faqs2,
|
|
16339
|
-
{
|
|
16340
|
-
question: "Why might I see a negative APY?",
|
|
16341
|
-
answer: "A negative APY can occur when xSTRK's price drops on DEXes. This is usually temporary and tends to recover within a few days or a week."
|
|
16342
|
-
}
|
|
16343
|
-
],
|
|
16402
|
+
faqs: getLSTFAQs("xSTRK"),
|
|
16344
16403
|
points: [{
|
|
16345
16404
|
multiplier: 1,
|
|
16346
16405
|
logo: "https://endur.fi/favicon.ico",
|
|
@@ -16349,6 +16408,78 @@ var xSTRKSTRK = {
|
|
|
16349
16408
|
contractDetails: [],
|
|
16350
16409
|
investmentSteps: []
|
|
16351
16410
|
};
|
|
16411
|
+
var lstStrategies = [
|
|
16412
|
+
xSTRKSTRK,
|
|
16413
|
+
{
|
|
16414
|
+
...xSTRKSTRK,
|
|
16415
|
+
name: "Ekubo xWBTC/WBTC",
|
|
16416
|
+
description: /* @__PURE__ */ jsx3(Fragment2, {}),
|
|
16417
|
+
address: ContractAddr.from(
|
|
16418
|
+
"0x2ea99b4971d3c277fa4a9b4beb7d4d7d169e683393a29eef263d5d57b4380a"
|
|
16419
|
+
),
|
|
16420
|
+
launchBlock: 2338309,
|
|
16421
|
+
// must be same order as poolKey token0 and token1
|
|
16422
|
+
depositTokens: [
|
|
16423
|
+
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
16424
|
+
Global.getDefaultTokens().find((t) => t.symbol === "xWBTC")
|
|
16425
|
+
],
|
|
16426
|
+
additionalInfo: {
|
|
16427
|
+
...xSTRKSTRK.additionalInfo,
|
|
16428
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
16429
|
+
lstContract: Global.getDefaultTokens().find((t) => t.symbol === "xWBTC").address
|
|
16430
|
+
},
|
|
16431
|
+
faqs: getLSTFAQs("xWBTC"),
|
|
16432
|
+
points: [],
|
|
16433
|
+
contractDetails: [],
|
|
16434
|
+
investmentSteps: []
|
|
16435
|
+
},
|
|
16436
|
+
{
|
|
16437
|
+
...xSTRKSTRK,
|
|
16438
|
+
name: "Ekubo xtBTC/tBTC",
|
|
16439
|
+
description: /* @__PURE__ */ jsx3(Fragment2, {}),
|
|
16440
|
+
address: ContractAddr.from(
|
|
16441
|
+
"0x785dc3dfc4e80ef2690a99512481e3ed3a5266180adda5a47e856245d68a4af"
|
|
16442
|
+
),
|
|
16443
|
+
launchBlock: 2344809,
|
|
16444
|
+
// must be same order as poolKey token0 and token1
|
|
16445
|
+
depositTokens: [
|
|
16446
|
+
Global.getDefaultTokens().find((t) => t.symbol === "xtBTC"),
|
|
16447
|
+
Global.getDefaultTokens().find((t) => t.symbol === "tBTC")
|
|
16448
|
+
],
|
|
16449
|
+
additionalInfo: {
|
|
16450
|
+
...xSTRKSTRK.additionalInfo,
|
|
16451
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "tBTC"),
|
|
16452
|
+
lstContract: Global.getDefaultTokens().find((t) => t.symbol === "xtBTC").address
|
|
16453
|
+
},
|
|
16454
|
+
faqs: getLSTFAQs("xtBTC"),
|
|
16455
|
+
points: [],
|
|
16456
|
+
contractDetails: [],
|
|
16457
|
+
investmentSteps: []
|
|
16458
|
+
},
|
|
16459
|
+
{
|
|
16460
|
+
...xSTRKSTRK,
|
|
16461
|
+
name: "Ekubo xsBTC/solvBTC",
|
|
16462
|
+
description: /* @__PURE__ */ jsx3(Fragment2, {}),
|
|
16463
|
+
address: ContractAddr.from(
|
|
16464
|
+
"0x3af1c7faa7c464cf2c494e988972ad1939f1103dbfb6e47e9bf0c47e49b14ef"
|
|
16465
|
+
),
|
|
16466
|
+
launchBlock: 2344809,
|
|
16467
|
+
// must be same order as poolKey token0 and token1
|
|
16468
|
+
depositTokens: [
|
|
16469
|
+
Global.getDefaultTokens().find((t) => t.symbol === "xsBTC"),
|
|
16470
|
+
Global.getDefaultTokens().find((t) => t.symbol === "solvBTC")
|
|
16471
|
+
],
|
|
16472
|
+
additionalInfo: {
|
|
16473
|
+
...xSTRKSTRK.additionalInfo,
|
|
16474
|
+
quoteAsset: Global.getDefaultTokens().find((t) => t.symbol === "solvBTC"),
|
|
16475
|
+
lstContract: Global.getDefaultTokens().find((t) => t.symbol === "xsBTC").address
|
|
16476
|
+
},
|
|
16477
|
+
faqs: getLSTFAQs("xsBTC"),
|
|
16478
|
+
points: [],
|
|
16479
|
+
contractDetails: [],
|
|
16480
|
+
investmentSteps: []
|
|
16481
|
+
}
|
|
16482
|
+
];
|
|
16352
16483
|
var ETHUSDCRe7Strategy = {
|
|
16353
16484
|
...xSTRKSTRK,
|
|
16354
16485
|
name: "Ekubo ETH/USDC",
|
|
@@ -16356,7 +16487,7 @@ var ETHUSDCRe7Strategy = {
|
|
|
16356
16487
|
address: ContractAddr.from(
|
|
16357
16488
|
"0x160d8fa4569ef6a12e6bf47cb943d7b5ebba8a41a69a14c1d943050ba5ff947"
|
|
16358
16489
|
),
|
|
16359
|
-
launchBlock:
|
|
16490
|
+
launchBlock: 1504232,
|
|
16360
16491
|
// must be same order as poolKey token0 and token1
|
|
16361
16492
|
depositTokens: [
|
|
16362
16493
|
Global.getDefaultTokens().find((t) => t.symbol === "ETH"),
|
|
@@ -16397,7 +16528,7 @@ var RE7Strategies = [
|
|
|
16397
16528
|
address: ContractAddr.from(
|
|
16398
16529
|
"0x3a4f8debaf12af97bb911099bc011d63d6c208d4c5ba8e15d7f437785b0aaa2"
|
|
16399
16530
|
),
|
|
16400
|
-
launchBlock:
|
|
16531
|
+
launchBlock: 1506139,
|
|
16401
16532
|
// must be same order as poolKey token0 and token1
|
|
16402
16533
|
depositTokens: [
|
|
16403
16534
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
@@ -16412,7 +16543,7 @@ var RE7Strategies = [
|
|
|
16412
16543
|
address: ContractAddr.from(
|
|
16413
16544
|
"0x351b36d0d9d8b40010658825adeeddb1397436cd41acd0ff6c6e23aaa8b5b30"
|
|
16414
16545
|
),
|
|
16415
|
-
launchBlock:
|
|
16546
|
+
launchBlock: 1504079,
|
|
16416
16547
|
// must be same order as poolKey token0 and token1
|
|
16417
16548
|
depositTokens: [
|
|
16418
16549
|
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
@@ -16427,7 +16558,7 @@ var RE7Strategies = [
|
|
|
16427
16558
|
address: ContractAddr.from(
|
|
16428
16559
|
"0x4ce3024b0ee879009112d7b0e073f8a87153dd35b029347d4247ffe48d28f51"
|
|
16429
16560
|
),
|
|
16430
|
-
launchBlock:
|
|
16561
|
+
launchBlock: 1504149,
|
|
16431
16562
|
// must be same order as poolKey token0 and token1
|
|
16432
16563
|
depositTokens: [
|
|
16433
16564
|
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
@@ -16442,7 +16573,7 @@ var RE7Strategies = [
|
|
|
16442
16573
|
address: ContractAddr.from(
|
|
16443
16574
|
"0x2bcaef2eb7706875a5fdc6853dd961a0590f850bc3a031c59887189b5e84ba1"
|
|
16444
16575
|
),
|
|
16445
|
-
launchBlock:
|
|
16576
|
+
launchBlock: 1506144,
|
|
16446
16577
|
// must be same order as poolKey token0 and token1
|
|
16447
16578
|
depositTokens: [
|
|
16448
16579
|
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
@@ -16472,7 +16603,7 @@ var RE7Strategies = [
|
|
|
16472
16603
|
address: ContractAddr.from(
|
|
16473
16604
|
"0x1c9232b8186d9317652f05055615f18a120c2ad9e5ee96c39e031c257fb945b"
|
|
16474
16605
|
),
|
|
16475
|
-
launchBlock:
|
|
16606
|
+
launchBlock: 1506145,
|
|
16476
16607
|
// must be same order as poolKey token0 and token1
|
|
16477
16608
|
depositTokens: [
|
|
16478
16609
|
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
@@ -16487,7 +16618,7 @@ var RE7Strategies = [
|
|
|
16487
16618
|
address: ContractAddr.from(
|
|
16488
16619
|
"0x1248e385c23a929a015ec298a26560fa7745bbd6e41a886550e337b02714b1b"
|
|
16489
16620
|
),
|
|
16490
|
-
launchBlock:
|
|
16621
|
+
launchBlock: 1506147,
|
|
16491
16622
|
// must be same order as poolKey token0 and token1
|
|
16492
16623
|
depositTokens: [
|
|
16493
16624
|
Global.getDefaultTokens().find((t) => t.symbol === "WBTC"),
|
|
@@ -16497,7 +16628,7 @@ var RE7Strategies = [
|
|
|
16497
16628
|
}
|
|
16498
16629
|
];
|
|
16499
16630
|
var EkuboCLVaultStrategies = [
|
|
16500
|
-
|
|
16631
|
+
...[lstStrategies[0]],
|
|
16501
16632
|
...RE7Strategies
|
|
16502
16633
|
];
|
|
16503
16634
|
EkuboCLVaultStrategies.forEach((s) => {
|
|
@@ -16528,7 +16659,11 @@ EkuboCLVaultStrategies.forEach((s) => {
|
|
|
16528
16659
|
/* @__PURE__ */ jsx3("h4", { style: { fontWeight: "bold" }, children: "Key points to note:" }),
|
|
16529
16660
|
/* @__PURE__ */ jsxs2("div", { style: { display: "flex", flexDirection: "column", gap: "10px", color: "var(--chakra-colors-text_secondary)" }, children: [
|
|
16530
16661
|
/* @__PURE__ */ jsx3("p", { style: {}, children: "1. During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices." }),
|
|
16531
|
-
s.
|
|
16662
|
+
s.additionalInfo.lstContract && /* @__PURE__ */ jsxs2("p", { style: {}, children: [
|
|
16663
|
+
"2. Sometimes you might see a negative APY \u2014 this is usually not a big deal. It happens when ",
|
|
16664
|
+
s.name.split(" ")[1].split("/")[0],
|
|
16665
|
+
"'s price drops on DEXes, but things typically bounce back within a few days or a week."
|
|
16666
|
+
] })
|
|
16532
16667
|
] })
|
|
16533
16668
|
] })
|
|
16534
16669
|
] });
|
|
@@ -21310,7 +21445,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
21310
21445
|
let pools = [];
|
|
21311
21446
|
try {
|
|
21312
21447
|
const data = await getAPIUsingHeadlessBrowser(
|
|
21313
|
-
|
|
21448
|
+
`${ENDPOINTS.VESU_BASE}/pools`
|
|
21314
21449
|
);
|
|
21315
21450
|
pools = data.data;
|
|
21316
21451
|
for (const pool of vesu_pools_default.data) {
|
package/dist/index.d.ts
CHANGED
|
@@ -73,6 +73,7 @@ interface TokenInfo {
|
|
|
73
73
|
logo: string;
|
|
74
74
|
coingeckId?: string;
|
|
75
75
|
displayDecimals: number;
|
|
76
|
+
priceProxySymbol?: string;
|
|
76
77
|
priceCheckAmount?: number;
|
|
77
78
|
}
|
|
78
79
|
declare enum Network {
|
|
@@ -236,13 +237,15 @@ declare class Pricer extends PricerBase {
|
|
|
236
237
|
protected prices: {
|
|
237
238
|
[key: string]: PriceInfo;
|
|
238
239
|
};
|
|
240
|
+
refreshInterval: number;
|
|
241
|
+
staleTime: number;
|
|
239
242
|
private methodToUse;
|
|
240
243
|
/**
|
|
241
244
|
* TOKENA and TOKENB are the two token names to get price of TokenA in terms of TokenB
|
|
242
245
|
*/
|
|
243
246
|
protected PRICE_API: string;
|
|
244
247
|
protected EKUBO_API: string;
|
|
245
|
-
constructor(config: IConfig, tokens: TokenInfo[]);
|
|
248
|
+
constructor(config: IConfig, tokens: TokenInfo[], refreshInterval?: number, staleTime?: number);
|
|
246
249
|
isReady(): boolean;
|
|
247
250
|
waitTillReady(): Promise<void>;
|
|
248
251
|
start(): void;
|