@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.
@@ -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.ts
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 === 0) return "green";
38243
- if (value < 2.5) return "yellow";
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.map((risk) => `No ${risk}`);
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 import_jsx_runtime = __toESM(require_jsx_runtime());
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, import_jsx_runtime.jsxs)("div", { children: [
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, import_jsx_runtime.jsx)("a", { href: "https://docs.strkfarm.com/p/strategies/vesu-fusion-rebalancing-vaults#technical-details", style: { textDecoration: "underline", marginLeft: "5px" }, children: "Here" }),
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.replace("{{TOKEN}}", "STRK"),
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 import_jsx_runtime2 = __toESM(require_jsx_runtime());
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 price = sqrtRatio * sqrtRatio;
51481
- const tick = _EkuboCLVault.priceToTick(
51482
- price,
51483
- true,
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 == 0 ? 1 : -1),
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. The APY is calculated based on 7-day historical performance.";
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: 25 },
52145
- { type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 1, weight: 75 }
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, import_jsx_runtime2.jsxs)("div", { children: [
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, import_jsx_runtime2.jsx)(
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, import_jsx_runtime2.jsxs)("div", { children: [
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, import_jsx_runtime2.jsxs)("div", { children: [
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
- faqs: [...faqs2]
52301
- }
52302
- // {
52303
- // ...xSTRKSTRK,
52304
- // name: "Ekubo STRK/USDC",
52305
- // description: (
52306
- // <div>
52307
- // <p>{_description.replace("{{POOL_NAME}}", "STRK/USDC")}</p>
52308
- // <ul
52309
- // style={{
52310
- // marginLeft: "20px",
52311
- // listStyle: "circle",
52312
- // fontSize: "12px",
52313
- // }}
52314
- // >
52315
- // <li style={{ marginTop: "10px" }}>
52316
- // During withdrawal, you may receive either or both tokens depending
52317
- // on market conditions and prevailing prices.
52318
- // </li>
52319
- // </ul>
52320
- // </div>
52321
- // ),
52322
- // address: ContractAddr.from(
52323
- // "0xb7bd37121041261446d8eedec618955a4490641034942da688e8cbddea7b23"
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: