@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
package/dist/index.js
CHANGED
|
@@ -63,6 +63,7 @@ __export(src_exports, {
|
|
|
63
63
|
getNoRiskTags: () => getNoRiskTags,
|
|
64
64
|
getRiskColor: () => getRiskColor,
|
|
65
65
|
getRiskExplaination: () => getRiskExplaination,
|
|
66
|
+
highlightTextWithLinks: () => highlightTextWithLinks,
|
|
66
67
|
logger: () => logger
|
|
67
68
|
});
|
|
68
69
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -2081,8 +2082,9 @@ var AvnuWrapper = class _AvnuWrapper {
|
|
|
2081
2082
|
}
|
|
2082
2083
|
};
|
|
2083
2084
|
|
|
2084
|
-
// src/interfaces/common.
|
|
2085
|
+
// src/interfaces/common.tsx
|
|
2085
2086
|
var import_starknet5 = require("starknet");
|
|
2087
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
2086
2088
|
var RiskType = /* @__PURE__ */ ((RiskType2) => {
|
|
2087
2089
|
RiskType2["MARKET_RISK"] = "Market Risk";
|
|
2088
2090
|
RiskType2["IMPERMANENT_LOSS"] = "Impermanent Loss Risk";
|
|
@@ -2138,8 +2140,8 @@ var getRiskExplaination = (riskType) => {
|
|
|
2138
2140
|
};
|
|
2139
2141
|
var getRiskColor = (risk) => {
|
|
2140
2142
|
const value = risk.value;
|
|
2141
|
-
if (value
|
|
2142
|
-
if (value <
|
|
2143
|
+
if (value <= 1) return "light_green_2";
|
|
2144
|
+
if (value < 3) return "yellow";
|
|
2143
2145
|
return "red";
|
|
2144
2146
|
};
|
|
2145
2147
|
var getNoRiskTags = (risks) => {
|
|
@@ -2148,8 +2150,20 @@ var getNoRiskTags = (risks) => {
|
|
|
2148
2150
|
(risk) => !risks.map((risk2) => risk2.type).includes(risk)
|
|
2149
2151
|
);
|
|
2150
2152
|
const mergedUnique = [.../* @__PURE__ */ new Set([...noRisks1, ...noRisks2])];
|
|
2151
|
-
return mergedUnique
|
|
2153
|
+
return mergedUnique;
|
|
2152
2154
|
};
|
|
2155
|
+
function highlightTextWithLinks(put, highlights) {
|
|
2156
|
+
const escapeRegExp = (text) => text.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
|
|
2157
|
+
const pattern = new RegExp(
|
|
2158
|
+
`(${highlights.map((m) => escapeRegExp(m.highlight)).join("|")})`,
|
|
2159
|
+
"gi"
|
|
2160
|
+
);
|
|
2161
|
+
const parts = put.split(pattern);
|
|
2162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: parts.map((part, i) => {
|
|
2163
|
+
const match = highlights.find((m) => m.highlight.toLowerCase() === part.toLowerCase());
|
|
2164
|
+
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);
|
|
2165
|
+
}) });
|
|
2166
|
+
}
|
|
2153
2167
|
|
|
2154
2168
|
// src/interfaces/initializable.ts
|
|
2155
2169
|
var Initializable = class {
|
|
@@ -9271,8 +9285,15 @@ var vesu_pools_default = {
|
|
|
9271
9285
|
]
|
|
9272
9286
|
};
|
|
9273
9287
|
|
|
9288
|
+
// src/strategies/constants.ts
|
|
9289
|
+
var COMMON_CONTRACTS = [{
|
|
9290
|
+
address: ContractAddr.from("0x0636a3f51cc37f5729e4da4b1de6a8549a28f3c0d5bf3b17f150971e451ff9c2"),
|
|
9291
|
+
name: "Access Controller",
|
|
9292
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/blob/main/src/components/accessControl.cairo"
|
|
9293
|
+
}];
|
|
9294
|
+
|
|
9274
9295
|
// src/strategies/vesu-rebalance.tsx
|
|
9275
|
-
var
|
|
9296
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
9276
9297
|
var VesuRebalance = class _VesuRebalance extends BaseStrategy {
|
|
9277
9298
|
// 10000 bps = 100%
|
|
9278
9299
|
/**
|
|
@@ -9913,9 +9934,9 @@ var _protocol = {
|
|
|
9913
9934
|
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
9914
9935
|
};
|
|
9915
9936
|
var _riskFactor = [
|
|
9916
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25 },
|
|
9917
|
-
{ type: "Counterparty Risk" /* COUNTERPARTY_RISK */, value: 1, weight: 50 },
|
|
9918
|
-
{ type: "Oracle Risk" /* ORACLE_RISK */, value: 0.5, weight: 25 }
|
|
9937
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by CSC" },
|
|
9938
|
+
{ type: "Counterparty Risk" /* COUNTERPARTY_RISK */, value: 1, weight: 50, reason: "Reasonable max LTV ratios and Curated by well-known risk managers like Re7" },
|
|
9939
|
+
{ type: "Oracle Risk" /* ORACLE_RISK */, value: 0.5, weight: 25, reason: "Uses Pragma price feeds, Most reputable price feed on Starknet" }
|
|
9919
9940
|
];
|
|
9920
9941
|
var AUDIT_URL = "https://assets.strkfarm.com/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
|
|
9921
9942
|
var faqs = [
|
|
@@ -9953,9 +9974,9 @@ var faqs = [
|
|
|
9953
9974
|
},
|
|
9954
9975
|
{
|
|
9955
9976
|
question: "Is the strategy audited?",
|
|
9956
|
-
answer: /* @__PURE__ */ (0,
|
|
9977
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
|
|
9957
9978
|
"Yes, the strategy has been audited. You can review the audit report in our docs ",
|
|
9958
|
-
/* @__PURE__ */ (0,
|
|
9979
|
+
/* @__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" }),
|
|
9959
9980
|
"."
|
|
9960
9981
|
] })
|
|
9961
9982
|
}
|
|
@@ -9963,7 +9984,7 @@ var faqs = [
|
|
|
9963
9984
|
var VesuRebalanceStrategies = [
|
|
9964
9985
|
{
|
|
9965
9986
|
name: "Vesu Fusion STRK",
|
|
9966
|
-
description: _description
|
|
9987
|
+
description: _description,
|
|
9967
9988
|
address: ContractAddr.from(
|
|
9968
9989
|
"0x7fb5bcb8525954a60fde4e8fb8220477696ce7117ef264775a1770e23571929"
|
|
9969
9990
|
),
|
|
@@ -9983,7 +10004,9 @@ var VesuRebalanceStrategies = [
|
|
|
9983
10004
|
additionalInfo: {
|
|
9984
10005
|
feeBps: 1e3
|
|
9985
10006
|
},
|
|
9986
|
-
faqs
|
|
10007
|
+
faqs,
|
|
10008
|
+
contractDetails: [],
|
|
10009
|
+
investmentSteps: []
|
|
9987
10010
|
},
|
|
9988
10011
|
{
|
|
9989
10012
|
name: "Vesu Fusion ETH",
|
|
@@ -10007,7 +10030,9 @@ var VesuRebalanceStrategies = [
|
|
|
10007
10030
|
additionalInfo: {
|
|
10008
10031
|
feeBps: 1e3
|
|
10009
10032
|
},
|
|
10010
|
-
faqs
|
|
10033
|
+
faqs,
|
|
10034
|
+
contractDetails: [],
|
|
10035
|
+
investmentSteps: []
|
|
10011
10036
|
},
|
|
10012
10037
|
{
|
|
10013
10038
|
name: "Vesu Fusion USDC",
|
|
@@ -10031,7 +10056,9 @@ var VesuRebalanceStrategies = [
|
|
|
10031
10056
|
additionalInfo: {
|
|
10032
10057
|
feeBps: 1e3
|
|
10033
10058
|
},
|
|
10034
|
-
faqs
|
|
10059
|
+
faqs,
|
|
10060
|
+
contractDetails: [],
|
|
10061
|
+
investmentSteps: []
|
|
10035
10062
|
},
|
|
10036
10063
|
{
|
|
10037
10064
|
name: "Vesu Fusion USDT",
|
|
@@ -10055,7 +10082,9 @@ var VesuRebalanceStrategies = [
|
|
|
10055
10082
|
additionalInfo: {
|
|
10056
10083
|
feeBps: 1e3
|
|
10057
10084
|
},
|
|
10058
|
-
faqs
|
|
10085
|
+
faqs,
|
|
10086
|
+
contractDetails: [],
|
|
10087
|
+
investmentSteps: []
|
|
10059
10088
|
// }, {
|
|
10060
10089
|
// name: 'Vesu Fusion WBTC',
|
|
10061
10090
|
// description: _description.replace('{{TOKEN}}', 'WBTC'),
|
|
@@ -10074,6 +10103,32 @@ var VesuRebalanceStrategies = [
|
|
|
10074
10103
|
// },
|
|
10075
10104
|
}
|
|
10076
10105
|
];
|
|
10106
|
+
VesuRebalanceStrategies.forEach((s) => {
|
|
10107
|
+
s.contractDetails = [
|
|
10108
|
+
{
|
|
10109
|
+
address: s.address,
|
|
10110
|
+
name: "Vault",
|
|
10111
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/vesu_rebalance"
|
|
10112
|
+
},
|
|
10113
|
+
...COMMON_CONTRACTS
|
|
10114
|
+
];
|
|
10115
|
+
s.docs = "https://docs.strkfarm.com/p/strategies/vesu-fusion-rebalancing-vaults";
|
|
10116
|
+
s.description = highlightTextWithLinks(
|
|
10117
|
+
_description.replace("{{TOKEN}}", s.depositTokens[0].symbol),
|
|
10118
|
+
[{
|
|
10119
|
+
highlight: "Vesu pools",
|
|
10120
|
+
link: "https://vesu.xyz/pools"
|
|
10121
|
+
}, {
|
|
10122
|
+
highlight: "Defi spring STRK Rewards",
|
|
10123
|
+
link: "https://defispring.starknet.io/"
|
|
10124
|
+
}]
|
|
10125
|
+
);
|
|
10126
|
+
s.investmentSteps = [
|
|
10127
|
+
"Split the amount and Supply to configured Vesu pools",
|
|
10128
|
+
"Monitor and Rebalance funds across multiple Vesu pools to maximize yield",
|
|
10129
|
+
"Harvest and supply Defi Spring STRK rewards every week (Auto-compound)"
|
|
10130
|
+
];
|
|
10131
|
+
});
|
|
10077
10132
|
|
|
10078
10133
|
// src/strategies/ekubo-cl-vault.tsx
|
|
10079
10134
|
var import_starknet9 = require("starknet");
|
|
@@ -14978,7 +15033,7 @@ var erc4626_abi_default = [
|
|
|
14978
15033
|
];
|
|
14979
15034
|
|
|
14980
15035
|
// src/strategies/ekubo-cl-vault.tsx
|
|
14981
|
-
var
|
|
15036
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
14982
15037
|
var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
14983
15038
|
/**
|
|
14984
15039
|
* Creates a new VesuRebalance strategy instance.
|
|
@@ -15388,17 +15443,13 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
15388
15443
|
const token0Info = await Global.getTokenInfoFromAddr(poolKey.token0);
|
|
15389
15444
|
const token1Info = await Global.getTokenInfoFromAddr(poolKey.token1);
|
|
15390
15445
|
const price = sqrtRatio * sqrtRatio * 10 ** token0Info.decimals / 10 ** token1Info.decimals;
|
|
15391
|
-
const tick =
|
|
15392
|
-
price,
|
|
15393
|
-
true,
|
|
15394
|
-
Number(poolKey.tick_spacing)
|
|
15395
|
-
);
|
|
15446
|
+
const tick = priceInfo.tick;
|
|
15396
15447
|
console.log(
|
|
15397
15448
|
`EkuboCLVault: getCurrentPrice: blockIdentifier: ${blockIdentifier}, price: ${price}, tick: ${tick.mag}, ${tick.sign}`
|
|
15398
15449
|
);
|
|
15399
15450
|
return {
|
|
15400
15451
|
price,
|
|
15401
|
-
tick: tick.mag * (tick.sign
|
|
15452
|
+
tick: Number(tick.mag) * (tick.sign ? -1 : 1),
|
|
15402
15453
|
sqrtRatio: priceInfo.sqrt_ratio.toString()
|
|
15403
15454
|
};
|
|
15404
15455
|
}
|
|
@@ -16045,14 +16096,15 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
|
|
|
16045
16096
|
return [baseFlow, rebalanceFlow];
|
|
16046
16097
|
}
|
|
16047
16098
|
};
|
|
16048
|
-
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
|
|
16099
|
+
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";
|
|
16049
16100
|
var _protocol2 = {
|
|
16050
16101
|
name: "Ekubo",
|
|
16051
16102
|
logo: "https://app.ekubo.org/favicon.ico"
|
|
16052
16103
|
};
|
|
16053
16104
|
var _riskFactor2 = [
|
|
16054
|
-
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight:
|
|
16055
|
-
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value:
|
|
16105
|
+
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 34, reason: "Audited smart contracts" },
|
|
16106
|
+
{ type: "Impermanent Loss Risk" /* IMPERMANENT_LOSS */, value: 0.75, weight: 33, reason: "Low risk due to co-related assets" },
|
|
16107
|
+
{ type: "Market Risk" /* MARKET_RISK */, value: 0.75, weight: 33, reason: "Low risk due to co-related assets" }
|
|
16056
16108
|
];
|
|
16057
16109
|
var _riskFactorStable = [
|
|
16058
16110
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25 }
|
|
@@ -16073,10 +16125,10 @@ var faqs2 = [
|
|
|
16073
16125
|
},
|
|
16074
16126
|
{
|
|
16075
16127
|
question: "Is the strategy audited?",
|
|
16076
|
-
answer: /* @__PURE__ */ (0,
|
|
16128
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
16077
16129
|
"Yes, the strategy has been audited. You can review the audit report in our docs",
|
|
16078
16130
|
" ",
|
|
16079
|
-
/* @__PURE__ */ (0,
|
|
16131
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
16080
16132
|
"a",
|
|
16081
16133
|
{
|
|
16082
16134
|
href: "https://docs.strkfarm.com/p/ekubo-cl-vaults#technical-details",
|
|
@@ -16090,23 +16142,7 @@ var faqs2 = [
|
|
|
16090
16142
|
];
|
|
16091
16143
|
var xSTRKSTRK = {
|
|
16092
16144
|
name: "Ekubo xSTRK/STRK",
|
|
16093
|
-
description: /* @__PURE__ */ (0,
|
|
16094
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "xSTRK/STRK") }),
|
|
16095
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
16096
|
-
"ul",
|
|
16097
|
-
{
|
|
16098
|
-
style: {
|
|
16099
|
-
marginLeft: "20px",
|
|
16100
|
-
listStyle: "circle",
|
|
16101
|
-
fontSize: "12px"
|
|
16102
|
-
},
|
|
16103
|
-
children: [
|
|
16104
|
-
/* @__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." }),
|
|
16105
|
-
/* @__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." })
|
|
16106
|
-
]
|
|
16107
|
-
}
|
|
16108
|
-
)
|
|
16109
|
-
] }),
|
|
16145
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
16110
16146
|
address: ContractAddr.from(
|
|
16111
16147
|
"0x01f083b98674bc21effee29ef443a00c7b9a500fd92cf30341a3da12c73f2324"
|
|
16112
16148
|
),
|
|
@@ -16152,48 +16188,25 @@ var xSTRKSTRK = {
|
|
|
16152
16188
|
multiplier: 1,
|
|
16153
16189
|
logo: "https://endur.fi/favicon.ico",
|
|
16154
16190
|
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."
|
|
16155
|
-
}]
|
|
16191
|
+
}],
|
|
16192
|
+
contractDetails: [],
|
|
16193
|
+
investmentSteps: []
|
|
16156
16194
|
};
|
|
16157
16195
|
var EkuboCLVaultStrategies = [
|
|
16158
16196
|
xSTRKSTRK,
|
|
16159
16197
|
{
|
|
16198
|
+
...xSTRKSTRK,
|
|
16160
16199
|
name: "Ekubo USDC/USDT",
|
|
16161
|
-
description: /* @__PURE__ */ (0,
|
|
16162
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: _description2.replace("{{POOL_NAME}}", "USDC/USDT") }),
|
|
16163
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
16164
|
-
"ul",
|
|
16165
|
-
{
|
|
16166
|
-
style: {
|
|
16167
|
-
marginLeft: "20px",
|
|
16168
|
-
listStyle: "circle",
|
|
16169
|
-
fontSize: "12px"
|
|
16170
|
-
},
|
|
16171
|
-
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." })
|
|
16172
|
-
}
|
|
16173
|
-
)
|
|
16174
|
-
] }),
|
|
16200
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
16175
16201
|
address: ContractAddr.from(
|
|
16176
16202
|
"0xd647ed735f0db52f2a5502b6e06ed21dc4284a43a36af4b60d3c80fbc56c91"
|
|
16177
16203
|
),
|
|
16178
16204
|
launchBlock: 1385576,
|
|
16179
|
-
type: "Other",
|
|
16180
16205
|
// must be same order as poolKey token0 and token1
|
|
16181
16206
|
depositTokens: [
|
|
16182
16207
|
Global.getDefaultTokens().find((t) => t.symbol === "USDC"),
|
|
16183
16208
|
Global.getDefaultTokens().find((t) => t.symbol === "USDT")
|
|
16184
16209
|
],
|
|
16185
|
-
protocols: [_protocol2],
|
|
16186
|
-
auditUrl: AUDIT_URL2,
|
|
16187
|
-
maxTVL: Web3Number.fromWei("0", 6),
|
|
16188
|
-
risk: {
|
|
16189
|
-
riskFactor: _riskFactorStable,
|
|
16190
|
-
netRisk: _riskFactorStable.reduce(
|
|
16191
|
-
(acc, curr) => acc + curr.value * curr.weight,
|
|
16192
|
-
0
|
|
16193
|
-
) / _riskFactorStable.reduce((acc, curr) => acc + curr.weight, 0),
|
|
16194
|
-
notARisks: getNoRiskTags(_riskFactorStable)
|
|
16195
|
-
},
|
|
16196
|
-
apyMethodology: "APY based on 7-day historical performance, including fees and rewards.",
|
|
16197
16210
|
additionalInfo: {
|
|
16198
16211
|
newBounds: {
|
|
16199
16212
|
lower: -1,
|
|
@@ -16206,51 +16219,71 @@ var EkuboCLVaultStrategies = [
|
|
|
16206
16219
|
minWaitHours: 6,
|
|
16207
16220
|
direction: "any"
|
|
16208
16221
|
}
|
|
16209
|
-
}
|
|
16210
|
-
|
|
16222
|
+
}
|
|
16223
|
+
},
|
|
16224
|
+
{
|
|
16225
|
+
...xSTRKSTRK,
|
|
16226
|
+
name: "Ekubo STRK/USDC",
|
|
16227
|
+
description: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_jsx_runtime3.Fragment, {}),
|
|
16228
|
+
address: ContractAddr.from(
|
|
16229
|
+
"0xb7bd37121041261446d8eedec618955a4490641034942da688e8cbddea7b23"
|
|
16230
|
+
),
|
|
16231
|
+
launchBlock: 1492136,
|
|
16232
|
+
// must be same order as poolKey token0 and token1
|
|
16233
|
+
depositTokens: [
|
|
16234
|
+
Global.getDefaultTokens().find((t) => t.symbol === "STRK"),
|
|
16235
|
+
Global.getDefaultTokens().find((t) => t.symbol === "USDC")
|
|
16236
|
+
],
|
|
16237
|
+
maxTVL: Web3Number.fromWei("0", 6),
|
|
16238
|
+
additionalInfo: {
|
|
16239
|
+
newBounds: "Managed by Re7",
|
|
16240
|
+
feeBps: 1e3,
|
|
16241
|
+
rebalanceConditions: {
|
|
16242
|
+
customShouldRebalance: async (currentPrice) => true,
|
|
16243
|
+
minWaitHours: 6,
|
|
16244
|
+
direction: "any"
|
|
16245
|
+
}
|
|
16246
|
+
}
|
|
16211
16247
|
}
|
|
16212
|
-
// {
|
|
16213
|
-
// ...xSTRKSTRK,
|
|
16214
|
-
// name: "Ekubo STRK/USDC",
|
|
16215
|
-
// description: (
|
|
16216
|
-
// <div>
|
|
16217
|
-
// <p>{_description.replace("{{POOL_NAME}}", "STRK/USDC")}</p>
|
|
16218
|
-
// <ul
|
|
16219
|
-
// style={{
|
|
16220
|
-
// marginLeft: "20px",
|
|
16221
|
-
// listStyle: "circle",
|
|
16222
|
-
// fontSize: "12px",
|
|
16223
|
-
// }}
|
|
16224
|
-
// >
|
|
16225
|
-
// <li style={{ marginTop: "10px" }}>
|
|
16226
|
-
// During withdrawal, you may receive either or both tokens depending
|
|
16227
|
-
// on market conditions and prevailing prices.
|
|
16228
|
-
// </li>
|
|
16229
|
-
// </ul>
|
|
16230
|
-
// </div>
|
|
16231
|
-
// ),
|
|
16232
|
-
// address: ContractAddr.from(
|
|
16233
|
-
// "0xb7bd37121041261446d8eedec618955a4490641034942da688e8cbddea7b23"
|
|
16234
|
-
// ),
|
|
16235
|
-
// launchBlock: 1492136,
|
|
16236
|
-
// // must be same order as poolKey token0 and token1
|
|
16237
|
-
// depositTokens: [
|
|
16238
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "STRK")!,
|
|
16239
|
-
// Global.getDefaultTokens().find((t) => t.symbol === "USDC")!,
|
|
16240
|
-
// ],
|
|
16241
|
-
// maxTVL: Web3Number.fromWei("0", 6),
|
|
16242
|
-
// additionalInfo: {
|
|
16243
|
-
// newBounds: "Managed by Re7",
|
|
16244
|
-
// feeBps: 1000,
|
|
16245
|
-
// rebalanceConditions: {
|
|
16246
|
-
// customShouldRebalance: async (currentPrice: number) =>
|
|
16247
|
-
// true,
|
|
16248
|
-
// minWaitHours: 6,
|
|
16249
|
-
// direction: "any",
|
|
16250
|
-
// },
|
|
16251
|
-
// },
|
|
16252
|
-
// },
|
|
16253
16248
|
];
|
|
16249
|
+
EkuboCLVaultStrategies.forEach((s) => {
|
|
16250
|
+
s.contractDetails = [
|
|
16251
|
+
{
|
|
16252
|
+
address: s.address,
|
|
16253
|
+
name: "Vault",
|
|
16254
|
+
sourceCodeUrl: "https://github.com/strkfarm/strkfarm-contracts/tree/main/src/strategies/cl_vault"
|
|
16255
|
+
},
|
|
16256
|
+
...COMMON_CONTRACTS
|
|
16257
|
+
];
|
|
16258
|
+
s.docs = "https://docs.strkfarm.com/p/ekubo-cl-vaults";
|
|
16259
|
+
s.description = /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
|
|
16260
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: highlightTextWithLinks(
|
|
16261
|
+
_description2.replace("{{POOL_NAME}}", s.name.split(" ")[1]),
|
|
16262
|
+
[{
|
|
16263
|
+
highlight: "Ekubo liquidity pool",
|
|
16264
|
+
link: "https://app.ekubo.org/positions"
|
|
16265
|
+
}, {
|
|
16266
|
+
highlight: "DeFi Spring rewards",
|
|
16267
|
+
link: "https://defispring.starknet.io/"
|
|
16268
|
+
}, {
|
|
16269
|
+
highlight: "ERC-20 token",
|
|
16270
|
+
link: "https://www.investopedia.com/news/what-erc20-and-what-does-it-mean-ethereum/"
|
|
16271
|
+
}]
|
|
16272
|
+
) }),
|
|
16273
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { padding: "16px 16px", background: "var(--chakra-colors-mycard_light)", marginTop: "16px", borderRadius: "16px" }, children: [
|
|
16274
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h4", { style: { fontWeight: "bold" }, children: "Key points to note:" }),
|
|
16275
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "10px", color: "var(--chakra-colors-text_secondary)" }, children: [
|
|
16276
|
+
/* @__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." }),
|
|
16277
|
+
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." })
|
|
16278
|
+
] })
|
|
16279
|
+
] })
|
|
16280
|
+
] });
|
|
16281
|
+
s.investmentSteps = [
|
|
16282
|
+
"Supply tokens to Ekubo's pool",
|
|
16283
|
+
"Monitor and Rebalance position to optimize yield",
|
|
16284
|
+
"Harvest and supply Defi Spring STRK rewards every week (Auto-compound)"
|
|
16285
|
+
];
|
|
16286
|
+
});
|
|
16254
16287
|
|
|
16255
16288
|
// src/notifs/telegram.ts
|
|
16256
16289
|
var import_node_telegram_bot_api = __toESM(require("node-telegram-bot-api"));
|
|
@@ -16548,5 +16581,6 @@ var Store = class _Store {
|
|
|
16548
16581
|
getNoRiskTags,
|
|
16549
16582
|
getRiskColor,
|
|
16550
16583
|
getRiskExplaination,
|
|
16584
|
+
highlightTextWithLinks,
|
|
16551
16585
|
logger
|
|
16552
16586
|
});
|