@strkfarm/sdk 1.0.46 → 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 +153 -118
- package/dist/index.browser.mjs +151 -116
- package/dist/index.d.ts +18 -5
- package/dist/index.js +152 -116
- package/dist/index.mjs +149 -114
- 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 +93 -109
- 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.
|
|
@@ -51477,18 +51532,16 @@ var strkfarm_risk_engine = (() => {
|
|
|
51477
51532
|
console.log(
|
|
51478
51533
|
`EkuboCLVault: getCurrentPrice: blockIdentifier: ${blockIdentifier}, sqrtRatio: ${sqrtRatio}, ${priceInfo.sqrt_ratio.toString()}`
|
|
51479
51534
|
);
|
|
51480
|
-
const
|
|
51481
|
-
const
|
|
51482
|
-
|
|
51483
|
-
|
|
51484
|
-
Number(poolKey.tick_spacing)
|
|
51485
|
-
);
|
|
51535
|
+
const token0Info = await Global.getTokenInfoFromAddr(poolKey.token0);
|
|
51536
|
+
const token1Info = await Global.getTokenInfoFromAddr(poolKey.token1);
|
|
51537
|
+
const price = sqrtRatio * sqrtRatio * 10 ** token0Info.decimals / 10 ** token1Info.decimals;
|
|
51538
|
+
const tick = priceInfo.tick;
|
|
51486
51539
|
console.log(
|
|
51487
51540
|
`EkuboCLVault: getCurrentPrice: blockIdentifier: ${blockIdentifier}, price: ${price}, tick: ${tick.mag}, ${tick.sign}`
|
|
51488
51541
|
);
|
|
51489
51542
|
return {
|
|
51490
51543
|
price,
|
|
51491
|
-
tick: tick.mag * (tick.sign
|
|
51544
|
+
tick: Number(tick.mag) * (tick.sign ? -1 : 1),
|
|
51492
51545
|
sqrtRatio: priceInfo.sqrt_ratio.toString()
|
|
51493
51546
|
};
|
|
51494
51547
|
}
|
|
@@ -52135,14 +52188,15 @@ var strkfarm_risk_engine = (() => {
|
|
|
52135
52188
|
return [baseFlow, rebalanceFlow];
|
|
52136
52189
|
}
|
|
52137
52190
|
};
|
|
52138
|
-
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";
|
|
52139
52192
|
var _protocol2 = {
|
|
52140
52193
|
name: "Ekubo",
|
|
52141
52194
|
logo: "https://app.ekubo.org/favicon.ico"
|
|
52142
52195
|
};
|
|
52143
52196
|
var _riskFactor2 = [
|
|
52144
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight:
|
|
52145
|
-
{ 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" }
|
|
52146
52200
|
];
|
|
52147
52201
|
var _riskFactorStable = [
|
|
52148
52202
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25 }
|
|
@@ -52163,10 +52217,10 @@ var strkfarm_risk_engine = (() => {
|
|
|
52163
52217
|
},
|
|
52164
52218
|
{
|
|
52165
52219
|
question: "Is the strategy audited?",
|
|
52166
|
-
answer: /* @__PURE__ */ (0,
|
|
52220
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
52167
52221
|
"Yes, the strategy has been audited. You can review the audit report in our docs",
|
|
52168
52222
|
" ",
|
|
52169
|
-
/* @__PURE__ */ (0,
|
|
52223
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
52170
52224
|
"a",
|
|
52171
52225
|
{
|
|
52172
52226
|
href: "https://docs.strkfarm.com/p/ekubo-cl-vaults#technical-details",
|
|
@@ -52180,23 +52234,7 @@ var strkfarm_risk_engine = (() => {
|
|
|
52180
52234
|
];
|
|
52181
52235
|
var xSTRKSTRK = {
|
|
52182
52236
|
name: "Ekubo xSTRK/STRK",
|
|
52183
|
-
description: /* @__PURE__ */ (0,
|
|
52184
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "xSTRK/STRK") }),
|
|
52185
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
52186
|
-
"ul",
|
|
52187
|
-
{
|
|
52188
|
-
style: {
|
|
52189
|
-
marginLeft: "20px",
|
|
52190
|
-
listStyle: "circle",
|
|
52191
|
-
fontSize: "12px"
|
|
52192
|
-
},
|
|
52193
|
-
children: [
|
|
52194
|
-
/* @__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." }),
|
|
52195
|
-
/* @__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." })
|
|
52196
|
-
]
|
|
52197
|
-
}
|
|
52198
|
-
)
|
|
52199
|
-
] }),
|
|
52237
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
52200
52238
|
address: ContractAddr.from(
|
|
52201
52239
|
"0x01f083b98674bc21effee29ef443a00c7b9a500fd92cf30341a3da12c73f2324"
|
|
52202
52240
|
),
|
|
@@ -52242,48 +52280,25 @@ var strkfarm_risk_engine = (() => {
|
|
|
52242
52280
|
multiplier: 1,
|
|
52243
52281
|
logo: "https://endur.fi/favicon.ico",
|
|
52244
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."
|
|
52245
|
-
}]
|
|
52283
|
+
}],
|
|
52284
|
+
contractDetails: [],
|
|
52285
|
+
investmentSteps: []
|
|
52246
52286
|
};
|
|
52247
52287
|
var EkuboCLVaultStrategies = [
|
|
52248
52288
|
xSTRKSTRK,
|
|
52249
52289
|
{
|
|
52290
|
+
...xSTRKSTRK,
|
|
52250
52291
|
name: "Ekubo USDC/USDT",
|
|
52251
|
-
description: /* @__PURE__ */ (0,
|
|
52252
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "USDC/USDT") }),
|
|
52253
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
52254
|
-
"ul",
|
|
52255
|
-
{
|
|
52256
|
-
style: {
|
|
52257
|
-
marginLeft: "20px",
|
|
52258
|
-
listStyle: "circle",
|
|
52259
|
-
fontSize: "12px"
|
|
52260
|
-
},
|
|
52261
|
-
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." })
|
|
52262
|
-
}
|
|
52263
|
-
)
|
|
52264
|
-
] }),
|
|
52292
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
52265
52293
|
address: ContractAddr.from(
|
|
52266
52294
|
"0xd647ed735f0db52f2a5502b6e06ed21dc4284a43a36af4b60d3c80fbc56c91"
|
|
52267
52295
|
),
|
|
52268
52296
|
launchBlock: 1385576,
|
|
52269
|
-
type: "Other",
|
|
52270
52297
|
// must be same order as poolKey token0 and token1
|
|
52271
52298
|
depositTokens: [
|
|
52272
52299
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
52273
52300
|
Global.getDefaultTokens().find((t) => t.symbol === "USDT")
|
|
52274
52301
|
],
|
|
52275
|
-
protocols: [_protocol2],
|
|
52276
|
-
auditUrl: AUDIT_URL2,
|
|
52277
|
-
maxTVL: Web3Number.fromWei("0", 6),
|
|
52278
|
-
risk: {
|
|
52279
|
-
riskFactor: _riskFactorStable,
|
|
52280
|
-
netRisk: _riskFactorStable.reduce(
|
|
52281
|
-
(acc, curr) => acc + curr.value * curr.weight,
|
|
52282
|
-
0
|
|
52283
|
-
) / _riskFactorStable.reduce((acc, curr) => acc + curr.weight, 0),
|
|
52284
|
-
notARisks: getNoRiskTags(_riskFactorStable)
|
|
52285
|
-
},
|
|
52286
|
-
apyMethodology: "APY based on 7-day historical performance, including fees and rewards.",
|
|
52287
52302
|
additionalInfo: {
|
|
52288
52303
|
newBounds: {
|
|
52289
52304
|
lower: -1,
|
|
@@ -52296,51 +52311,71 @@ var strkfarm_risk_engine = (() => {
|
|
|
52296
52311
|
minWaitHours: 6,
|
|
52297
52312
|
direction: "any"
|
|
52298
52313
|
}
|
|
52299
|
-
}
|
|
52300
|
-
|
|
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
|
-
// launchBlock: 1492136,
|
|
52326
|
-
// // must be same order as poolKey token0 and token1
|
|
52327
|
-
// depositTokens: [
|
|
52328
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "STRK")!,
|
|
52329
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "USDC")!,
|
|
52330
|
-
// ],
|
|
52331
|
-
// maxTVL: Web3Number.fromWei("0", 6),
|
|
52332
|
-
// additionalInfo: {
|
|
52333
|
-
// newBounds: "Managed by Re7",
|
|
52334
|
-
// feeBps: 1000,
|
|
52335
|
-
// rebalanceConditions: {
|
|
52336
|
-
// customShouldRebalance: async (currentPrice: number) =>
|
|
52337
|
-
// true,
|
|
52338
|
-
// minWaitHours: 6,
|
|
52339
|
-
// direction: "any",
|
|
52340
|
-
// },
|
|
52341
|
-
// },
|
|
52342
|
-
// },
|
|
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
|
+
}
|
|
52343
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
|
+
});
|
|
52344
52379
|
return __toCommonJS(index_browser_exports);
|
|
52345
52380
|
})();
|
|
52346
52381
|
/*! Bundled license information:
|