@strkfarm/sdk 1.0.47 → 1.0.49
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 +150 -117
- package/dist/index.browser.mjs +148 -115
- package/dist/index.d.ts +18 -5
- package/dist/index.js +149 -115
- package/dist/index.mjs +146 -113
- package/package.json +2 -2
- package/src/interfaces/{common.ts → common.tsx} +50 -5
- package/src/strategies/constants.ts +7 -0
- package/src/strategies/ekubo-cl-vault.tsx +90 -106
- package/src/strategies/index.ts +1 -1
- package/src/strategies/vesu-rebalance.tsx +54 -11
|
@@ -17293,7 +17293,8 @@ var strkfarm_risk_engine = (() => {
|
|
|
17293
17293
|
getMainnetConfig: () => getMainnetConfig,
|
|
17294
17294
|
getNoRiskTags: () => getNoRiskTags,
|
|
17295
17295
|
getRiskColor: () => getRiskColor,
|
|
17296
|
-
getRiskExplaination: () => getRiskExplaination
|
|
17296
|
+
getRiskExplaination: () => getRiskExplaination,
|
|
17297
|
+
highlightTextWithLinks: () => highlightTextWithLinks
|
|
17297
17298
|
});
|
|
17298
17299
|
|
|
17299
17300
|
// node_modules/.pnpm/axios@1.7.2/node_modules/axios/lib/helpers/bind.js
|
|
@@ -38183,7 +38184,8 @@ var strkfarm_risk_engine = (() => {
|
|
|
38183
38184
|
}
|
|
38184
38185
|
};
|
|
38185
38186
|
|
|
38186
|
-
// src/interfaces/common.
|
|
38187
|
+
// src/interfaces/common.tsx
|
|
38188
|
+
var import_jsx_runtime = __toESM(require_jsx_runtime());
|
|
38187
38189
|
var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
38188
38190
|
RiskType2["MARKET_RISK"] = "Market Risk";
|
|
38189
38191
|
RiskType2["IMPERMANENT_LOSS"] = "Impermanent Loss Risk";
|
|
@@ -38239,8 +38241,8 @@ var strkfarm_risk_engine = (() => {
|
|
|
38239
38241
|
};
|
|
38240
38242
|
var getRiskColor = (risk) => {
|
|
38241
38243
|
const value = risk.value;
|
|
38242
|
-
if (value
|
|
38243
|
-
if (value <
|
|
38244
|
+
if (value <= 1) return "light_green_2";
|
|
38245
|
+
if (value < 3) return "yellow";
|
|
38244
38246
|
return "red";
|
|
38245
38247
|
};
|
|
38246
38248
|
var getNoRiskTags = (risks) => {
|
|
@@ -38249,8 +38251,20 @@ var strkfarm_risk_engine = (() => {
|
|
|
38249
38251
|
(risk) => !risks.map((risk2) => risk2.type).includes(risk)
|
|
38250
38252
|
);
|
|
38251
38253
|
const mergedUnique = [.../* @__PURE__ */ new Set([...noRisks1, ...noRisks2])];
|
|
38252
|
-
return mergedUnique
|
|
38254
|
+
return mergedUnique;
|
|
38253
38255
|
};
|
|
38256
|
+
function highlightTextWithLinks(put, highlights) {
|
|
38257
|
+
const escapeRegExp = (text) => text.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
38258
|
+
const pattern = new RegExp(
|
|
38259
|
+
`(${highlights.map((m) => escapeRegExp(m.highlight)).join("|")})`,
|
|
38260
|
+
"gi"
|
|
38261
|
+
);
|
|
38262
|
+
const parts = put.split(pattern);
|
|
38263
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: parts.map((part, i) => {
|
|
38264
|
+
const match = highlights.find((m) => m.highlight.toLowerCase() === part.toLowerCase());
|
|
38265
|
+
return match ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: match.link, target: "_blank", style: { color: "var(--chakra-colors-white)", background: "var(--chakra-colors-highlight)" }, children: part }, i) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: part }, i);
|
|
38266
|
+
}) });
|
|
38267
|
+
}
|
|
38254
38268
|
|
|
38255
38269
|
// src/interfaces/initializable.ts
|
|
38256
38270
|
var Initializable = class {
|
|
@@ -45366,8 +45380,15 @@ var strkfarm_risk_engine = (() => {
|
|
|
45366
45380
|
]
|
|
45367
45381
|
};
|
|
45368
45382
|
|
|
45383
|
+
// src/strategies/constants.ts
|
|
45384
|
+
var COMMON_CONTRACTS = [{
|
|
45385
|
+
address: ContractAddr.from("0x0636a3f51cc37f5729e4da4b1de6a8549a28f3c0d5bf3b17f150971e451ff9c2"),
|
|
45386
|
+
name: "Access Controller",
|
|
45387
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/blob/main/src/components/accessControl.cairo"
|
|
45388
|
+
}];
|
|
45389
|
+
|
|
45369
45390
|
// src/strategies/vesu-rebalance.tsx
|
|
45370
|
-
var
|
|
45391
|
+
var import_jsx_runtime2 = __toESM(require_jsx_runtime());
|
|
45371
45392
|
var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
45372
45393
|
// 10000 bps = 100%
|
|
45373
45394
|
/**
|
|
@@ -46008,9 +46029,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46008
46029
|
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
46009
46030
|
};
|
|
46010
46031
|
var _riskFactor = [
|
|
46011
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25 },
|
|
46012
|
-
{ type: "Counterparty Risk" /* COUNTERPARTY_RISK */, value: 1, weight: 50 },
|
|
46013
|
-
{ type: "Oracle Risk" /* ORACLE_RISK */, value: 0.5, weight: 25 }
|
|
46032
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
46033
|
+
{ type: "Counterparty Risk" /* COUNTERPARTY_RISK */, value: 1, weight: 50, reason: "Reasonable max LTV ratios and Curated by well-known risk managers like Re7" },
|
|
46034
|
+
{ type: "Oracle Risk" /* ORACLE_RISK */, value: 0.5, weight: 25, reason: "Uses Pragma price feeds, Most reputable price feed on Starknet" }
|
|
46014
46035
|
];
|
|
46015
46036
|
var AUDIT_URL = "https://assets.strkfarm.com/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
|
|
46016
46037
|
var faqs = [
|
|
@@ -46048,9 +46069,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46048
46069
|
},
|
|
46049
46070
|
{
|
|
46050
46071
|
question: "Is the strategy audited?",
|
|
46051
|
-
answer: /* @__PURE__ */ (0,
|
|
46072
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
|
|
46052
46073
|
"Yes, the strategy has been audited. You can review the audit report in our docs ",
|
|
46053
|
-
/* @__PURE__ */ (0,
|
|
46074
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("a", { href: "https://docs.strkfarm.com/p/strategies/vesu-fusion-rebalancing-vaults#technical-details", style: { textDecoration: "underline", marginLeft: "5px" }, children: "Here" }),
|
|
46054
46075
|
"."
|
|
46055
46076
|
] })
|
|
46056
46077
|
}
|
|
@@ -46058,7 +46079,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
46058
46079
|
var VesuRebalanceStrategies = [
|
|
46059
46080
|
{
|
|
46060
46081
|
name: "Vesu Fusion STRK",
|
|
46061
|
-
description: _description
|
|
46082
|
+
description: _description,
|
|
46062
46083
|
address: ContractAddr.from(
|
|
46063
46084
|
"0x7fb5bcb8525954a60fde4e8fb8220477696ce7117ef264775a1770e23571929"
|
|
46064
46085
|
),
|
|
@@ -46078,7 +46099,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46078
46099
|
additionalInfo: {
|
|
46079
46100
|
feeBps: 1e3
|
|
46080
46101
|
},
|
|
46081
|
-
faqs
|
|
46102
|
+
faqs,
|
|
46103
|
+
contractDetails: [],
|
|
46104
|
+
investmentSteps: []
|
|
46082
46105
|
},
|
|
46083
46106
|
{
|
|
46084
46107
|
name: "Vesu Fusion ETH",
|
|
@@ -46102,7 +46125,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46102
46125
|
additionalInfo: {
|
|
46103
46126
|
feeBps: 1e3
|
|
46104
46127
|
},
|
|
46105
|
-
faqs
|
|
46128
|
+
faqs,
|
|
46129
|
+
contractDetails: [],
|
|
46130
|
+
investmentSteps: []
|
|
46106
46131
|
},
|
|
46107
46132
|
{
|
|
46108
46133
|
name: "Vesu Fusion USDC",
|
|
@@ -46126,7 +46151,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46126
46151
|
additionalInfo: {
|
|
46127
46152
|
feeBps: 1e3
|
|
46128
46153
|
},
|
|
46129
|
-
faqs
|
|
46154
|
+
faqs,
|
|
46155
|
+
contractDetails: [],
|
|
46156
|
+
investmentSteps: []
|
|
46130
46157
|
},
|
|
46131
46158
|
{
|
|
46132
46159
|
name: "Vesu Fusion USDT",
|
|
@@ -46150,7 +46177,9 @@ var strkfarm_risk_engine = (() => {
|
|
|
46150
46177
|
additionalInfo: {
|
|
46151
46178
|
feeBps: 1e3
|
|
46152
46179
|
},
|
|
46153
|
-
faqs
|
|
46180
|
+
faqs,
|
|
46181
|
+
contractDetails: [],
|
|
46182
|
+
investmentSteps: []
|
|
46154
46183
|
// }, {
|
|
46155
46184
|
// name: 'Vesu Fusion WBTC',
|
|
46156
46185
|
// description: _description.replace('{{TOKEN}}', 'WBTC'),
|
|
@@ -46169,6 +46198,32 @@ var strkfarm_risk_engine = (() => {
|
|
|
46169
46198
|
// },
|
|
46170
46199
|
}
|
|
46171
46200
|
];
|
|
46201
|
+
VesuRebalanceStrategies.forEach((s) => {
|
|
46202
|
+
s.contractDetails = [
|
|
46203
|
+
{
|
|
46204
|
+
address: s.address,
|
|
46205
|
+
name: "Vault",
|
|
46206
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/vesu_rebalance"
|
|
46207
|
+
},
|
|
46208
|
+
...COMMON_CONTRACTS
|
|
46209
|
+
];
|
|
46210
|
+
s.docs = "https://docs.strkfarm.com/p/strategies/vesu-fusion-rebalancing-vaults";
|
|
46211
|
+
s.description = highlightTextWithLinks(
|
|
46212
|
+
_description.replace("{{TOKEN}}", s.depositTokens[0].symbol),
|
|
46213
|
+
[{
|
|
46214
|
+
highlight: "Vesu pools",
|
|
46215
|
+
link: "https://vesu.xyz/pools"
|
|
46216
|
+
}, {
|
|
46217
|
+
highlight: "Defi spring STRK Rewards",
|
|
46218
|
+
link: "https://defispring.starknet.io/"
|
|
46219
|
+
}]
|
|
46220
|
+
);
|
|
46221
|
+
s.investmentSteps = [
|
|
46222
|
+
"Split the amount and Supply to configured Vesu pools",
|
|
46223
|
+
"Monitor and Rebalance funds across multiple Vesu pools to maximize yield",
|
|
46224
|
+
"Harvest and supply Defi Spring STRK rewards every week (Auto-compound)"
|
|
46225
|
+
];
|
|
46226
|
+
});
|
|
46172
46227
|
|
|
46173
46228
|
// src/data/cl-vault.abi.json
|
|
46174
46229
|
var cl_vault_abi_default = [
|
|
@@ -51070,7 +51125,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
51070
51125
|
];
|
|
51071
51126
|
|
|
51072
51127
|
// src/strategies/ekubo-cl-vault.tsx
|
|
51073
|
-
var
|
|
51128
|
+
var import_jsx_runtime3 = __toESM(require_jsx_runtime());
|
|
51074
51129
|
var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
51075
51130
|
/**
|
|
51076
51131
|
* Creates a new VesuRebalance strategy instance.
|
|
@@ -51480,17 +51535,13 @@ var strkfarm_risk_engine = (() => {
|
|
|
51480
51535
|
const token0Info = await Global.getTokenInfoFromAddr(poolKey.token0);
|
|
51481
51536
|
const token1Info = await Global.getTokenInfoFromAddr(poolKey.token1);
|
|
51482
51537
|
const price = sqrtRatio * sqrtRatio * 10 ** token0Info.decimals / 10 ** token1Info.decimals;
|
|
51483
|
-
const tick =
|
|
51484
|
-
price,
|
|
51485
|
-
true,
|
|
51486
|
-
Number(poolKey.tick_spacing)
|
|
51487
|
-
);
|
|
51538
|
+
const tick = priceInfo.tick;
|
|
51488
51539
|
console.log(
|
|
51489
51540
|
`EkuboCLVault: getCurrentPrice: blockIdentifier: ${blockIdentifier}, price: ${price}, tick: ${tick.mag}, ${tick.sign}`
|
|
51490
51541
|
);
|
|
51491
51542
|
return {
|
|
51492
51543
|
price,
|
|
51493
|
-
tick: tick.mag * (tick.sign
|
|
51544
|
+
tick: Number(tick.mag) * (tick.sign ? -1 : 1),
|
|
51494
51545
|
sqrtRatio: priceInfo.sqrt_ratio.toString()
|
|
51495
51546
|
};
|
|
51496
51547
|
}
|
|
@@ -52137,14 +52188,15 @@ var strkfarm_risk_engine = (() => {
|
|
|
52137
52188
|
return [baseFlow, rebalanceFlow];
|
|
52138
52189
|
}
|
|
52139
52190
|
};
|
|
52140
|
-
var _description2 = "Deploys your {{POOL_NAME}} into an Ekubo liquidity pool, automatically rebalancing positions around the current price to optimize yield and reduce the need for manual adjustments. Trading fees and DeFi Spring rewards are automatically compounded back into the strategy. In return, you receive an ERC-20 token representing your share of the strategy
|
|
52191
|
+
var _description2 = "Deploys your {{POOL_NAME}} into an Ekubo liquidity pool, automatically rebalancing positions around the current price to optimize yield and reduce the need for manual adjustments. Trading fees and DeFi Spring rewards are automatically compounded back into the strategy. In return, you receive an ERC-20 token representing your share of the strategy";
|
|
52141
52192
|
var _protocol2 = {
|
|
52142
52193
|
name: "Ekubo",
|
|
52143
52194
|
logo: "https://app.ekubo.org/favicon.ico"
|
|
52144
52195
|
};
|
|
52145
52196
|
var _riskFactor2 = [
|
|
52146
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight:
|
|
52147
|
-
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value:
|
|
52197
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 34, reason: "Audited smart contracts" },
|
|
52198
|
+
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 0.75, weight: 33, reason: "Low risk due to co-related assets" },
|
|
52199
|
+
{ type: "Market Risk" /* MARKET_RISK */, value: 0.75, weight: 33, reason: "Low risk due to co-related assets" }
|
|
52148
52200
|
];
|
|
52149
52201
|
var _riskFactorStable = [
|
|
52150
52202
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25 }
|
|
@@ -52165,10 +52217,10 @@ var strkfarm_risk_engine = (() => {
|
|
|
52165
52217
|
},
|
|
52166
52218
|
{
|
|
52167
52219
|
question: "Is the strategy audited?",
|
|
52168
|
-
answer: /* @__PURE__ */ (0,
|
|
52220
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
52169
52221
|
"Yes, the strategy has been audited. You can review the audit report in our docs",
|
|
52170
52222
|
" ",
|
|
52171
|
-
/* @__PURE__ */ (0,
|
|
52223
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
52172
52224
|
"a",
|
|
52173
52225
|
{
|
|
52174
52226
|
href: "https://docs.strkfarm.com/p/ekubo-cl-vaults#technical-details",
|
|
@@ -52182,23 +52234,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
52182
52234
|
];
|
|
52183
52235
|
var xSTRKSTRK = {
|
|
52184
52236
|
name: "Ekubo xSTRK/STRK",
|
|
52185
|
-
description: /* @__PURE__ */ (0,
|
|
52186
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "xSTRK/STRK") }),
|
|
52187
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
52188
|
-
"ul",
|
|
52189
|
-
{
|
|
52190
|
-
style: {
|
|
52191
|
-
marginLeft: "20px",
|
|
52192
|
-
listStyle: "circle",
|
|
52193
|
-
fontSize: "12px"
|
|
52194
|
-
},
|
|
52195
|
-
children: [
|
|
52196
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { style: { marginTop: "10px" }, children: "During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices." }),
|
|
52197
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { style: { marginTop: "10px" }, children: "Sometimes you might see a negative APY \u2014 this is usually not a big deal. It happens when xSTRK's price drops on DEXes, but things typically bounce back within a few days or a week." })
|
|
52198
|
-
]
|
|
52199
|
-
}
|
|
52200
|
-
)
|
|
52201
|
-
] }),
|
|
52237
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
52202
52238
|
address: ContractAddr.from(
|
|
52203
52239
|
"0x01f083b98674bc21effee29ef443a00c7b9a500fd92cf30341a3da12c73f2324"
|
|
52204
52240
|
),
|
|
@@ -52244,48 +52280,25 @@ var strkfarm_risk_engine = (() => {
|
|
|
52244
52280
|
multiplier: 1,
|
|
52245
52281
|
logo: "https://endur.fi/favicon.ico",
|
|
52246
52282
|
toolTip: "This strategy holds xSTRK and STRK tokens. Earn 1x Endur points on your xSTRK portion of Liquidity. STRK portion will earn Endur's DEX Bonus points. Points can be found on endur.fi."
|
|
52247
|
-
}]
|
|
52283
|
+
}],
|
|
52284
|
+
contractDetails: [],
|
|
52285
|
+
investmentSteps: []
|
|
52248
52286
|
};
|
|
52249
52287
|
var EkuboCLVaultStrategies = [
|
|
52250
52288
|
xSTRKSTRK,
|
|
52251
52289
|
{
|
|
52290
|
+
...xSTRKSTRK,
|
|
52252
52291
|
name: "Ekubo USDC/USDT",
|
|
52253
|
-
description: /* @__PURE__ */ (0,
|
|
52254
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "USDC/USDT") }),
|
|
52255
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
52256
|
-
"ul",
|
|
52257
|
-
{
|
|
52258
|
-
style: {
|
|
52259
|
-
marginLeft: "20px",
|
|
52260
|
-
listStyle: "circle",
|
|
52261
|
-
fontSize: "12px"
|
|
52262
|
-
},
|
|
52263
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { style: { marginTop: "10px" }, children: "During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices." })
|
|
52264
|
-
}
|
|
52265
|
-
)
|
|
52266
|
-
] }),
|
|
52292
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
52267
52293
|
address: ContractAddr.from(
|
|
52268
52294
|
"0xd647ed735f0db52f2a5502b6e06ed21dc4284a43a36af4b60d3c80fbc56c91"
|
|
52269
52295
|
),
|
|
52270
52296
|
launchBlock: 1385576,
|
|
52271
|
-
type: "Other",
|
|
52272
52297
|
// must be same order as poolKey token0 and token1
|
|
52273
52298
|
depositTokens: [
|
|
52274
52299
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
52275
52300
|
Global.getDefaultTokens().find((t) => t.symbol === "USDT")
|
|
52276
52301
|
],
|
|
52277
|
-
protocols: [_protocol2],
|
|
52278
|
-
auditUrl: AUDIT_URL2,
|
|
52279
|
-
maxTVL: Web3Number.fromWei("0", 6),
|
|
52280
|
-
risk: {
|
|
52281
|
-
riskFactor: _riskFactorStable,
|
|
52282
|
-
netRisk: _riskFactorStable.reduce(
|
|
52283
|
-
(acc, curr) => acc + curr.value * curr.weight,
|
|
52284
|
-
0
|
|
52285
|
-
) / _riskFactorStable.reduce((acc, curr) => acc + curr.weight, 0),
|
|
52286
|
-
notARisks: getNoRiskTags(_riskFactorStable)
|
|
52287
|
-
},
|
|
52288
|
-
apyMethodology: "APY based on 7-day historical performance, including fees and rewards.",
|
|
52289
52302
|
additionalInfo: {
|
|
52290
52303
|
newBounds: {
|
|
52291
52304
|
lower: -1,
|
|
@@ -52298,51 +52311,71 @@ var strkfarm_risk_engine = (() => {
|
|
|
52298
52311
|
minWaitHours: 6,
|
|
52299
52312
|
direction: "any"
|
|
52300
52313
|
}
|
|
52301
|
-
}
|
|
52302
|
-
|
|
52303
|
-
|
|
52304
|
-
|
|
52305
|
-
|
|
52306
|
-
|
|
52307
|
-
|
|
52308
|
-
|
|
52309
|
-
|
|
52310
|
-
|
|
52311
|
-
|
|
52312
|
-
|
|
52313
|
-
|
|
52314
|
-
|
|
52315
|
-
|
|
52316
|
-
|
|
52317
|
-
|
|
52318
|
-
|
|
52319
|
-
|
|
52320
|
-
|
|
52321
|
-
|
|
52322
|
-
|
|
52323
|
-
|
|
52324
|
-
|
|
52325
|
-
|
|
52326
|
-
|
|
52327
|
-
// launchBlock: 1492136,
|
|
52328
|
-
// // must be same order as poolKey token0 and token1
|
|
52329
|
-
// depositTokens: [
|
|
52330
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "STRK")!,
|
|
52331
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "USDC")!,
|
|
52332
|
-
// ],
|
|
52333
|
-
// maxTVL: Web3Number.fromWei("0", 6),
|
|
52334
|
-
// additionalInfo: {
|
|
52335
|
-
// newBounds: "Managed by Re7",
|
|
52336
|
-
// feeBps: 1000,
|
|
52337
|
-
// rebalanceConditions: {
|
|
52338
|
-
// customShouldRebalance: async (currentPrice: number) =>
|
|
52339
|
-
// true,
|
|
52340
|
-
// minWaitHours: 6,
|
|
52341
|
-
// direction: "any",
|
|
52342
|
-
// },
|
|
52343
|
-
// },
|
|
52344
|
-
// },
|
|
52314
|
+
}
|
|
52315
|
+
},
|
|
52316
|
+
{
|
|
52317
|
+
...xSTRKSTRK,
|
|
52318
|
+
name: "Ekubo STRK/USDC",
|
|
52319
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
52320
|
+
address: ContractAddr.from(
|
|
52321
|
+
"0xb7bd37121041261446d8eedec618955a4490641034942da688e8cbddea7b23"
|
|
52322
|
+
),
|
|
52323
|
+
launchBlock: 1492136,
|
|
52324
|
+
// must be same order as poolKey token0 and token1
|
|
52325
|
+
depositTokens: [
|
|
52326
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
52327
|
+
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
52328
|
+
],
|
|
52329
|
+
maxTVL: Web3Number.fromWei("0", 6),
|
|
52330
|
+
additionalInfo: {
|
|
52331
|
+
newBounds: "Managed by Re7",
|
|
52332
|
+
feeBps: 1e3,
|
|
52333
|
+
rebalanceConditions: {
|
|
52334
|
+
customShouldRebalance: async (currentPrice) => true,
|
|
52335
|
+
minWaitHours: 6,
|
|
52336
|
+
direction: "any"
|
|
52337
|
+
}
|
|
52338
|
+
}
|
|
52339
|
+
}
|
|
52345
52340
|
];
|
|
52341
|
+
EkuboCLVaultStrategies.forEach((s) => {
|
|
52342
|
+
s.contractDetails = [
|
|
52343
|
+
{
|
|
52344
|
+
address: s.address,
|
|
52345
|
+
name: "Vault",
|
|
52346
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/cl_vault"
|
|
52347
|
+
},
|
|
52348
|
+
...COMMON_CONTRACTS
|
|
52349
|
+
];
|
|
52350
|
+
s.docs = "https://docs.strkfarm.com/p/ekubo-cl-vaults";
|
|
52351
|
+
s.description = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
52352
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: highlightTextWithLinks(
|
|
52353
|
+
_description2.replace("{{POOL_NAME}}", s.name.split(" ")[1]),
|
|
52354
|
+
[{
|
|
52355
|
+
highlight: "Ekubo liquidity pool",
|
|
52356
|
+
link: "https://app.ekubo.org/positions"
|
|
52357
|
+
}, {
|
|
52358
|
+
highlight: "DeFi Spring rewards",
|
|
52359
|
+
link: "https://defispring.starknet.io/"
|
|
52360
|
+
}, {
|
|
52361
|
+
highlight: "ERC-20 token",
|
|
52362
|
+
link: "https://www.investopedia.com/news/what-erc20-and-what-does-it-mean-ethereum/"
|
|
52363
|
+
}]
|
|
52364
|
+
) }),
|
|
52365
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { padding: "16px 16px", background: "var(--chakra-colors-mycard_light)", marginTop: "16px", borderRadius: "16px" }, children: [
|
|
52366
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h4", { style: { fontWeight: "bold" }, children: "Key points to note:" }),
|
|
52367
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "10px", color: "var(--chakra-colors-text_secondary)" }, children: [
|
|
52368
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: {}, children: "1. During withdrawal, you may receive either or both tokens depending on market conditions and prevailing prices." }),
|
|
52369
|
+
s.name.includes("xSTRK/STRK") && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: {}, children: "2. Sometimes you might see a negative APY \u2014 this is usually not a big deal. It happens when xSTRK's price drops on DEXes, but things typically bounce back within a few days or a week." })
|
|
52370
|
+
] })
|
|
52371
|
+
] })
|
|
52372
|
+
] });
|
|
52373
|
+
s.investmentSteps = [
|
|
52374
|
+
"Supply tokens to Ekubo's pool",
|
|
52375
|
+
"Monitor and Rebalance position to optimize yield",
|
|
52376
|
+
"Harvest and supply Defi Spring STRK rewards every week (Auto-compound)"
|
|
52377
|
+
];
|
|
52378
|
+
});
|
|
52346
52379
|
return __toCommonJS(index_browser_exports);
|
|
52347
52380
|
})();
|
|
52348
52381
|
/*! Bundled license information:
|