@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.
@@ -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.
@@ -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 = _EkuboCLVault.priceToTick(
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 == 0 ? 1 : -1),
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. 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";
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: 25 },
52147
- { 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" }
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, import_jsx_runtime2.jsxs)("div", { children: [
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, import_jsx_runtime2.jsx)(
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, import_jsx_runtime2.jsxs)("div", { children: [
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, import_jsx_runtime2.jsxs)("div", { children: [
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
- faqs: [...faqs2]
52303
- }
52304
- // {
52305
- // ...xSTRKSTRK,
52306
- // name: "Ekubo STRK/USDC",
52307
- // description: (
52308
- // <div>
52309
- // <p>{_description.replace("{{POOL_NAME}}", "STRK/USDC")}</p>
52310
- // <ul
52311
- // style={{
52312
- // marginLeft: "20px",
52313
- // listStyle: "circle",
52314
- // fontSize: "12px",
52315
- // }}
52316
- // >
52317
- // <li style={{ marginTop: "10px" }}>
52318
- // During withdrawal, you may receive either or both tokens depending
52319
- // on market conditions and prevailing prices.
52320
- // </li>
52321
- // </ul>
52322
- // </div>
52323
- // ),
52324
- // address: ContractAddr.from(
52325
- // "0xb7bd37121041261446d8eedec618955a4490641034942da688e8cbddea7b23"
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: