@strkfarm/sdk 1.0.59 → 1.0.60
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 +241 -38
- package/dist/index.browser.mjs +232 -29
- package/dist/index.d.ts +20 -1
- package/dist/index.js +232 -29
- package/dist/index.mjs +232 -29
- package/package.json +1 -1
- package/src/interfaces/common.tsx +13 -1
- package/src/strategies/universal-adapters/adapter-utils.ts +1 -1
- package/src/strategies/universal-adapters/common-adapter.ts +31 -0
- package/src/strategies/{universal-strategy.ts → universal-strategy.tsx} +225 -27
package/dist/index.js
CHANGED
|
@@ -2268,7 +2268,7 @@ var getRiskExplaination = (riskType) => {
|
|
|
2268
2268
|
};
|
|
2269
2269
|
var getRiskColor = (risk) => {
|
|
2270
2270
|
const value = risk.value;
|
|
2271
|
-
if (value <=
|
|
2271
|
+
if (value <= 2) return "light_green_2";
|
|
2272
2272
|
if (value < 3) return "yellow";
|
|
2273
2273
|
return "red";
|
|
2274
2274
|
};
|
|
@@ -2296,8 +2296,18 @@ var VesuProtocol = {
|
|
|
2296
2296
|
name: "Vesu",
|
|
2297
2297
|
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
2298
2298
|
};
|
|
2299
|
+
var EndurProtocol = {
|
|
2300
|
+
name: "Endur",
|
|
2301
|
+
logo: "http://endur.fi/logo.png"
|
|
2302
|
+
};
|
|
2303
|
+
var ExtendedProtocol = {
|
|
2304
|
+
name: "Extended",
|
|
2305
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/extended/extended.svg"
|
|
2306
|
+
};
|
|
2299
2307
|
var Protocols = {
|
|
2300
|
-
VESU: VesuProtocol
|
|
2308
|
+
VESU: VesuProtocol,
|
|
2309
|
+
ENDUR: EndurProtocol,
|
|
2310
|
+
EXTENDED: ExtendedProtocol
|
|
2301
2311
|
};
|
|
2302
2312
|
|
|
2303
2313
|
// src/interfaces/initializable.ts
|
|
@@ -18558,7 +18568,7 @@ var SenseiStrategies = [
|
|
|
18558
18568
|
var import_starknet12 = require("starknet");
|
|
18559
18569
|
|
|
18560
18570
|
// src/strategies/universal-adapters/adapter-utils.ts
|
|
18561
|
-
var SIMPLE_SANITIZER = ContractAddr.from("
|
|
18571
|
+
var SIMPLE_SANITIZER = ContractAddr.from("0x3798dc4f83fdfad199e5236e3656cf2fb79bc50c00504d0dd41522e0f042072");
|
|
18562
18572
|
function toBigInt(value) {
|
|
18563
18573
|
if (typeof value === "string") {
|
|
18564
18574
|
return BigInt(value);
|
|
@@ -18673,6 +18683,35 @@ var CommonAdapter = class extends BaseAdapter {
|
|
|
18673
18683
|
};
|
|
18674
18684
|
};
|
|
18675
18685
|
}
|
|
18686
|
+
getBringLiquidityAdapter(id) {
|
|
18687
|
+
return () => ({
|
|
18688
|
+
leaf: this.constructSimpleLeafData({
|
|
18689
|
+
id,
|
|
18690
|
+
target: this.config.vaultAddress,
|
|
18691
|
+
method: "bring_liquidity",
|
|
18692
|
+
packedArguments: []
|
|
18693
|
+
}),
|
|
18694
|
+
callConstructor: this.getBringLiquidityCall().bind(this)
|
|
18695
|
+
});
|
|
18696
|
+
}
|
|
18697
|
+
getBringLiquidityCall() {
|
|
18698
|
+
return (params) => {
|
|
18699
|
+
const uint256Amount = import_starknet13.uint256.bnToUint256(params.amount.toWei());
|
|
18700
|
+
return {
|
|
18701
|
+
sanitizer: SIMPLE_SANITIZER,
|
|
18702
|
+
call: {
|
|
18703
|
+
contractAddress: this.config.vaultAddress,
|
|
18704
|
+
selector: import_starknet13.hash.getSelectorFromName("bring_liquidity"),
|
|
18705
|
+
calldata: [
|
|
18706
|
+
toBigInt(uint256Amount.low.toString()),
|
|
18707
|
+
// amount low
|
|
18708
|
+
toBigInt(uint256Amount.high.toString())
|
|
18709
|
+
// amount high
|
|
18710
|
+
]
|
|
18711
|
+
}
|
|
18712
|
+
};
|
|
18713
|
+
};
|
|
18714
|
+
}
|
|
18676
18715
|
};
|
|
18677
18716
|
|
|
18678
18717
|
// src/strategies/universal-adapters/vesu-adapter.ts
|
|
@@ -21190,7 +21229,7 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
21190
21229
|
}
|
|
21191
21230
|
};
|
|
21192
21231
|
|
|
21193
|
-
// src/strategies/universal-strategy.
|
|
21232
|
+
// src/strategies/universal-strategy.tsx
|
|
21194
21233
|
var import_starknet15 = require("starknet");
|
|
21195
21234
|
|
|
21196
21235
|
// src/data/universal-vault.abi.json
|
|
@@ -23396,7 +23435,8 @@ var vault_manager_abi_default = [
|
|
|
23396
23435
|
}
|
|
23397
23436
|
];
|
|
23398
23437
|
|
|
23399
|
-
// src/strategies/universal-strategy.
|
|
23438
|
+
// src/strategies/universal-strategy.tsx
|
|
23439
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
23400
23440
|
var AUMTypes = /* @__PURE__ */ ((AUMTypes2) => {
|
|
23401
23441
|
AUMTypes2["FINALISED"] = "finalised";
|
|
23402
23442
|
AUMTypes2["DEFISPRING"] = "defispring";
|
|
@@ -23617,6 +23657,7 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
23617
23657
|
const balance = await this.getUnusedBalance();
|
|
23618
23658
|
logger.verbose(`${this.getTag()} unused balance: ${balance.amount.toNumber()}`);
|
|
23619
23659
|
const vesuAum = leg1AUM[0].amount.plus(leg2AUM[0].usdValue / token1Price.price).minus(leg1AUM[1].usdValue / token1Price.price).minus(leg2AUM[1].amount);
|
|
23660
|
+
logger.verbose(`${this.getTag()} Vesu AUM: leg1: ${leg1AUM[0].amount.toNumber()}, ${leg1AUM[1].amount.toNumber()}, leg2: ${leg2AUM[0].amount.toNumber()}, ${leg2AUM[1].amount.toNumber()}`);
|
|
23620
23661
|
const zeroAmt = Web3Number.fromWei("0", this.asset().decimals);
|
|
23621
23662
|
const net = {
|
|
23622
23663
|
tokenInfo: this.asset(),
|
|
@@ -23833,18 +23874,23 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
23833
23874
|
logger.verbose(`${this.getTag()}:: leg1DepositAmount: ${params.leg1DepositAmount.toString()} ${vesuAdapter1.config.collateral.symbol}`);
|
|
23834
23875
|
logger.verbose(`${this.getTag()}:: borrow1Amount: ${borrow1Amount.toString()} ${vesuAdapter1.config.debt.symbol}`);
|
|
23835
23876
|
logger.verbose(`${this.getTag()}:: borrow2Amount: ${borrow2Amount.toString()} ${vesuAdapter2.config.debt.symbol}`);
|
|
23836
|
-
|
|
23877
|
+
let callSet1 = this.getVesuModifyPositionCalls({
|
|
23837
23878
|
isLeg1: true,
|
|
23838
23879
|
isDeposit: params.isDeposit,
|
|
23839
23880
|
depositAmount: params.leg1DepositAmount.plus(borrow2Amount),
|
|
23840
23881
|
debtAmount: borrow1Amount
|
|
23841
23882
|
});
|
|
23842
|
-
|
|
23883
|
+
let callSet2 = this.getVesuModifyPositionCalls({
|
|
23843
23884
|
isLeg1: false,
|
|
23844
23885
|
isDeposit: params.isDeposit,
|
|
23845
23886
|
depositAmount: borrow1Amount,
|
|
23846
23887
|
debtAmount: borrow2Amount
|
|
23847
23888
|
});
|
|
23889
|
+
if (!params.isDeposit) {
|
|
23890
|
+
let temp = callSet2;
|
|
23891
|
+
callSet2 = [...callSet1];
|
|
23892
|
+
callSet1 = [...temp];
|
|
23893
|
+
}
|
|
23848
23894
|
const allActions = [...callSet1.map((i) => i.manageCall), ...callSet2.map((i) => i.manageCall)];
|
|
23849
23895
|
const flashloanCalldata = import_starknet15.CallData.compile([
|
|
23850
23896
|
[...callSet1.map((i) => i.proofs), ...callSet2.map((i) => i.proofs)],
|
|
@@ -23862,6 +23908,18 @@ var UniversalStrategy = class _UniversalStrategy extends BaseStrategy {
|
|
|
23862
23908
|
const manageCall = this.getManageCall(["flash_loan_init" /* FLASH_LOAN */], [manageCall1]);
|
|
23863
23909
|
return manageCall;
|
|
23864
23910
|
}
|
|
23911
|
+
async getBringLiquidityCall(params) {
|
|
23912
|
+
const manage1Info = this.getProofs("approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */);
|
|
23913
|
+
const manageCall1 = manage1Info.callConstructor({
|
|
23914
|
+
amount: params.amount
|
|
23915
|
+
});
|
|
23916
|
+
const manage2Info = this.getProofs("bring_liquidity" /* BRING_LIQUIDITY */);
|
|
23917
|
+
const manageCall2 = manage2Info.callConstructor({
|
|
23918
|
+
amount: params.amount
|
|
23919
|
+
});
|
|
23920
|
+
const manageCall = this.getManageCall(["approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */, "bring_liquidity" /* BRING_LIQUIDITY */], [manageCall1, manageCall2]);
|
|
23921
|
+
return manageCall;
|
|
23922
|
+
}
|
|
23865
23923
|
async getRebalanceCall(params) {
|
|
23866
23924
|
let callSet1 = this.getVesuModifyPositionCalls({
|
|
23867
23925
|
isLeg1: true,
|
|
@@ -23896,6 +23954,8 @@ var UNIVERSAL_MANAGE_IDS = /* @__PURE__ */ ((UNIVERSAL_MANAGE_IDS2) => {
|
|
|
23896
23954
|
UNIVERSAL_MANAGE_IDS2["VESU_LEG2"] = "vesu_leg2";
|
|
23897
23955
|
UNIVERSAL_MANAGE_IDS2["APPROVE_TOKEN1"] = "approve_token1";
|
|
23898
23956
|
UNIVERSAL_MANAGE_IDS2["APPROVE_TOKEN2"] = "approve_token2";
|
|
23957
|
+
UNIVERSAL_MANAGE_IDS2["APPROVE_BRING_LIQUIDITY"] = "approve_bring_liquidity";
|
|
23958
|
+
UNIVERSAL_MANAGE_IDS2["BRING_LIQUIDITY"] = "bring_liquidity";
|
|
23899
23959
|
return UNIVERSAL_MANAGE_IDS2;
|
|
23900
23960
|
})(UNIVERSAL_MANAGE_IDS || {});
|
|
23901
23961
|
var UNIVERSAL_ADAPTERS = /* @__PURE__ */ ((UNIVERSAL_ADAPTERS2) => {
|
|
@@ -23910,7 +23970,9 @@ function getLooperSettings(token1Symbol, token2Symbol, vaultSettings, pool1, poo
|
|
|
23910
23970
|
const commonAdapter = new CommonAdapter({
|
|
23911
23971
|
manager: vaultSettings.manager,
|
|
23912
23972
|
asset: USDCToken.address,
|
|
23913
|
-
id: "flash_loan_init" /* FLASH_LOAN
|
|
23973
|
+
id: "flash_loan_init" /* FLASH_LOAN */,
|
|
23974
|
+
vaultAddress: vaultSettings.vaultAddress,
|
|
23975
|
+
vaultAllocator: vaultSettings.vaultAllocator
|
|
23914
23976
|
});
|
|
23915
23977
|
const vesuAdapterUSDCETH = new VesuAdapter({
|
|
23916
23978
|
poolId: pool1,
|
|
@@ -23941,13 +24003,17 @@ function getLooperSettings(token1Symbol, token2Symbol, vaultSettings, pool1, poo
|
|
|
23941
24003
|
vaultSettings.leafAdapters.push(vesuAdapterETHUSDC.getModifyPosition.bind(vesuAdapterETHUSDC));
|
|
23942
24004
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, vesuAdapterUSDCETH.VESU_SINGLETON, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
23943
24005
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(ETHToken.address, vesuAdapterETHUSDC.VESU_SINGLETON, "approve_token2" /* APPROVE_TOKEN2 */).bind(commonAdapter));
|
|
24006
|
+
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
|
|
24007
|
+
vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
|
|
23944
24008
|
return vaultSettings;
|
|
23945
24009
|
}
|
|
23946
24010
|
var _riskFactor4 = [
|
|
23947
24011
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by Zellic" },
|
|
23948
|
-
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1, weight: 50, reason: "Liquidation risk is mitigated
|
|
24012
|
+
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1.5, weight: 50, reason: "Liquidation risk is mitigated by stable price feed on Starknet" },
|
|
24013
|
+
{ type: "Technical Risk" /* TECHNICAL_RISK */, value: 1, weight: 50, reason: "Technical failures like risk monitoring failures" }
|
|
23949
24014
|
];
|
|
23950
24015
|
var usdcVaultSettings = {
|
|
24016
|
+
vaultAddress: ContractAddr.from("0x7e6498cf6a1bfc7e6fc89f1831865e2dacb9756def4ec4b031a9138788a3b5e"),
|
|
23951
24017
|
manager: ContractAddr.from("0xf41a2b1f498a7f9629db0b8519259e66e964260a23d20003f3e42bb1997a07"),
|
|
23952
24018
|
vaultAllocator: ContractAddr.from("0x228cca1005d3f2b55cbaba27cb291dacf1b9a92d1d6b1638195fbd3d0c1e3ba"),
|
|
23953
24019
|
redeemRequestNFT: ContractAddr.from("0x906d03590010868cbf7590ad47043959d7af8e782089a605d9b22567b64fda"),
|
|
@@ -23958,6 +24024,7 @@ var usdcVaultSettings = {
|
|
|
23958
24024
|
minHealthFactor: 1.25
|
|
23959
24025
|
};
|
|
23960
24026
|
var wbtcVaultSettings = {
|
|
24027
|
+
vaultAddress: ContractAddr.from("0x5a4c1651b913aa2ea7afd9024911603152a19058624c3e425405370d62bf80c"),
|
|
23961
24028
|
manager: ContractAddr.from("0xef8a664ffcfe46a6af550766d27c28937bf1b77fb4ab54d8553e92bca5ba34"),
|
|
23962
24029
|
vaultAllocator: ContractAddr.from("0x1e01c25f0d9494570226ad28a7fa856c0640505e809c366a9fab4903320e735"),
|
|
23963
24030
|
redeemRequestNFT: ContractAddr.from("0x4fec59a12f8424281c1e65a80b5de51b4e754625c60cddfcd00d46941ec37b2"),
|
|
@@ -23968,6 +24035,7 @@ var wbtcVaultSettings = {
|
|
|
23968
24035
|
minHealthFactor: 1.25
|
|
23969
24036
|
};
|
|
23970
24037
|
var ethVaultSettings = {
|
|
24038
|
+
vaultAddress: ContractAddr.from("0x446c22d4d3f5cb52b4950ba832ba1df99464c6673a37c092b1d9622650dbd8"),
|
|
23971
24039
|
manager: ContractAddr.from("0x494888b37206616bd09d759dcda61e5118470b9aa7f58fb84f21c778a7b8f97"),
|
|
23972
24040
|
vaultAllocator: ContractAddr.from("0x4acc0ad6bea58cb578d60ff7c31f06f44369a7a9a7bbfffe4701f143e427bd"),
|
|
23973
24041
|
redeemRequestNFT: ContractAddr.from("0x2e6cd71e5060a254d4db00655e420db7bf89da7755bb0d5f922e2f00c76ac49"),
|
|
@@ -23978,6 +24046,7 @@ var ethVaultSettings = {
|
|
|
23978
24046
|
minHealthFactor: 1.25
|
|
23979
24047
|
};
|
|
23980
24048
|
var strkVaultSettings = {
|
|
24049
|
+
vaultAddress: ContractAddr.from("0x55d012f57e58c96e0a5c7ebbe55853989d01e6538b15a95e7178aca4af05c21"),
|
|
23981
24050
|
manager: ContractAddr.from("0xcc6a5153ca56293405506eb20826a379d982cd738008ef7e808454d318fb81"),
|
|
23982
24051
|
vaultAllocator: ContractAddr.from("0xf29d2f82e896c0ed74c9eff220af34ac148e8b99846d1ace9fbb02c9191d01"),
|
|
23983
24052
|
redeemRequestNFT: ContractAddr.from("0x46902423bd632c428376b84fcee9cac5dbe016214e93a8103bcbde6e1de656b"),
|
|
@@ -23988,6 +24057,7 @@ var strkVaultSettings = {
|
|
|
23988
24057
|
minHealthFactor: 1.25
|
|
23989
24058
|
};
|
|
23990
24059
|
var usdtVaultSettings = {
|
|
24060
|
+
vaultAddress: ContractAddr.from("0x1c4933d1880c6778585e597154eaca7b428579d72f3aae425ad2e4d26c6bb3"),
|
|
23991
24061
|
manager: ContractAddr.from("0x39bb9843503799b552b7ed84b31c06e4ff10c0537edcddfbf01fe944b864029"),
|
|
23992
24062
|
vaultAllocator: ContractAddr.from("0x56437d18c43727ac971f6c7086031cad7d9d6ccb340f4f3785a74cc791c931a"),
|
|
23993
24063
|
redeemRequestNFT: ContractAddr.from("0x5af0c2a657eaa8e23ed78e855dac0c51e4f69e2cf91a18c472041a1f75bb41f"),
|
|
@@ -23997,10 +24067,143 @@ var usdtVaultSettings = {
|
|
|
23997
24067
|
targetHealthFactor: 1.3,
|
|
23998
24068
|
minHealthFactor: 1.25
|
|
23999
24069
|
};
|
|
24070
|
+
function MetaVaultDescription() {
|
|
24071
|
+
const logos = {
|
|
24072
|
+
vesu: Protocols.VESU.logo,
|
|
24073
|
+
endur: Protocols.ENDUR.logo,
|
|
24074
|
+
extended: Protocols.EXTENDED.logo,
|
|
24075
|
+
ekubo: "https://dummyimage.com/64x64/ffffff/000000&text=K"
|
|
24076
|
+
};
|
|
24077
|
+
const sources = [
|
|
24078
|
+
{ key: "vesu", name: "Vesu", status: "Live", description: "Integrated liquidity venue used for automated routing to capture the best available yield." },
|
|
24079
|
+
{ key: "endur", name: "Endur", status: "Coming soon", description: "Planned integration to tap into STRK staking\u2013backed yields via our LST pipeline." },
|
|
24080
|
+
{ key: "extended", name: "Extended", status: "Coming soon", description: "Expanding coverage to additional money markets and vaults across the ecosystem." }
|
|
24081
|
+
// { key: "ekubo", name: "Ekubo", status: "Coming soon", description: "Concentrated liquidity strategies targeted for optimized fee APR harvesting." },
|
|
24082
|
+
];
|
|
24083
|
+
const containerStyle = {
|
|
24084
|
+
maxWidth: "800px",
|
|
24085
|
+
margin: "0 auto",
|
|
24086
|
+
backgroundColor: "#111",
|
|
24087
|
+
color: "#eee",
|
|
24088
|
+
fontFamily: "Arial, sans-serif",
|
|
24089
|
+
borderRadius: "12px"
|
|
24090
|
+
};
|
|
24091
|
+
const cardStyle = {
|
|
24092
|
+
border: "1px solid #333",
|
|
24093
|
+
borderRadius: "10px",
|
|
24094
|
+
padding: "12px",
|
|
24095
|
+
marginBottom: "12px",
|
|
24096
|
+
backgroundColor: "#1a1a1a"
|
|
24097
|
+
};
|
|
24098
|
+
const logoStyle = {
|
|
24099
|
+
width: "24px",
|
|
24100
|
+
height: "24px",
|
|
24101
|
+
borderRadius: "8px",
|
|
24102
|
+
border: "1px solid #444",
|
|
24103
|
+
backgroundColor: "#222"
|
|
24104
|
+
};
|
|
24105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: containerStyle, children: [
|
|
24106
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
|
|
24107
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: "This Evergreen vault is a tokenized Meta Vault, auto-compounding strategy that continuously allocates your deposited asset to the best available yield source in the ecosystem. Depositors receive vault shares that represent a proportional claim on the underlying assets and accrued yield. Allocation shifts are handled programmatically based on on-chain signals and risk filters, minimizing idle capital and maximizing net APY." }),
|
|
24108
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("p", { style: { fontSize: "13px", color: "#ccc" }, children: [
|
|
24109
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Withdrawals:" }),
|
|
24110
|
+
" Requests can take up to ",
|
|
24111
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "1-2 hours" }),
|
|
24112
|
+
" to process as the vault unwinds and settles routing."
|
|
24113
|
+
] }) }),
|
|
24114
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Supported Yield Sources" }),
|
|
24115
|
+
sources.map((s) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: cardStyle, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", gap: "10px", alignItems: "flex-start" }, children: [
|
|
24116
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("img", { src: logos[s.key], alt: `${s.name} logo`, style: logoStyle }),
|
|
24117
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { flex: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center" }, children: [
|
|
24118
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "15px", margin: 0 }, children: s.name }),
|
|
24119
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StatusBadge, { status: s.status })
|
|
24120
|
+
] }) })
|
|
24121
|
+
] }) }, s.key))
|
|
24122
|
+
] });
|
|
24123
|
+
}
|
|
24124
|
+
function StatusBadge({ status }) {
|
|
24125
|
+
const isSoon = String(status).toLowerCase() !== "live";
|
|
24126
|
+
const badgeStyle = {
|
|
24127
|
+
fontSize: "12px",
|
|
24128
|
+
padding: "2px 6px",
|
|
24129
|
+
borderRadius: "12px",
|
|
24130
|
+
border: "1px solid",
|
|
24131
|
+
color: isSoon ? "rgb(196 196 195)" : "#6aff7d",
|
|
24132
|
+
borderColor: isSoon ? "#484848" : "#6aff7d",
|
|
24133
|
+
backgroundColor: isSoon ? "#424242" : "#002b1a"
|
|
24134
|
+
};
|
|
24135
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: badgeStyle, children: status });
|
|
24136
|
+
}
|
|
24137
|
+
function getDescription(tokenSymbol) {
|
|
24138
|
+
return MetaVaultDescription();
|
|
24139
|
+
}
|
|
24140
|
+
function getFAQs() {
|
|
24141
|
+
return [
|
|
24142
|
+
{
|
|
24143
|
+
question: "What is the Meta Vault?",
|
|
24144
|
+
answer: "The Meta Vault is a tokenized strategy that automatically allocates your deposited assets to the best available yield source in the ecosystem. It optimizes returns while minimizing idle capital."
|
|
24145
|
+
},
|
|
24146
|
+
{
|
|
24147
|
+
question: "How does yield allocation work?",
|
|
24148
|
+
answer: "The vault continuously monitors supported protocols and routes liquidity to the source offering the highest net yield after accounting for fees, slippage, and gas costs. Reallocations are performed automatically."
|
|
24149
|
+
},
|
|
24150
|
+
{
|
|
24151
|
+
question: "Which yield sources are supported?",
|
|
24152
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { children: [
|
|
24153
|
+
"Currently, ",
|
|
24154
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Vesu" }),
|
|
24155
|
+
" is live. Future integrations include",
|
|
24156
|
+
" ",
|
|
24157
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Endur" }),
|
|
24158
|
+
", ",
|
|
24159
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Extended" }),
|
|
24160
|
+
", and",
|
|
24161
|
+
" ",
|
|
24162
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Ekubo" }),
|
|
24163
|
+
" (all coming soon)."
|
|
24164
|
+
] })
|
|
24165
|
+
},
|
|
24166
|
+
{
|
|
24167
|
+
question: "What do I receive when I deposit?",
|
|
24168
|
+
answer: "Depositors receive vault tokens representing their proportional share of the vault. These tokens entitle holders to both the principal and accrued yield."
|
|
24169
|
+
},
|
|
24170
|
+
{
|
|
24171
|
+
question: "How long do withdrawals take?",
|
|
24172
|
+
answer: "Withdrawals may take up to 1-2 hours to process, as the vault unwinds and settles liquidity routing across integrated protocols."
|
|
24173
|
+
},
|
|
24174
|
+
{
|
|
24175
|
+
question: "Is the Meta Vault non-custodial?",
|
|
24176
|
+
answer: "Yes. The Meta Vault operates entirely on-chain. Users always maintain control of their vault tokens, and the strategy is fully transparent."
|
|
24177
|
+
},
|
|
24178
|
+
{
|
|
24179
|
+
question: "How is risk managed?",
|
|
24180
|
+
answer: "Integrations are supported with active risk monitoring like liquidation risk. Only vetted protocols are included to balance yield with safety. However, usual Defi risks like smart contract risk, extreme volatile market risk, etc. are still present."
|
|
24181
|
+
},
|
|
24182
|
+
{
|
|
24183
|
+
question: "Are there any fees?",
|
|
24184
|
+
answer: "Troves charges a performance of 10% on the yield generated. The APY shown is net of this fee. This fee is only applied to the profits earned, ensuring that users retain their initial capital."
|
|
24185
|
+
}
|
|
24186
|
+
];
|
|
24187
|
+
}
|
|
24188
|
+
function getContractDetails(settings) {
|
|
24189
|
+
return [
|
|
24190
|
+
{ address: settings.vaultAddress, name: "Vault" },
|
|
24191
|
+
{ address: settings.manager, name: "Vault Manager" },
|
|
24192
|
+
{ address: settings.vaultAllocator, name: "Vault Allocator" },
|
|
24193
|
+
{ address: settings.redeemRequestNFT, name: "Redeem Request NFT" },
|
|
24194
|
+
{ address: settings.aumOracle, name: "AUM Oracle" }
|
|
24195
|
+
];
|
|
24196
|
+
}
|
|
24197
|
+
var investmentSteps = [
|
|
24198
|
+
"Deposit funds into the vault",
|
|
24199
|
+
"Vault manager allocates funds to optimal yield sources",
|
|
24200
|
+
"Vault manager reports asset under management (AUM) regularly to the vault",
|
|
24201
|
+
"Request withdrawal and vault manager processes it in 1-2 hours"
|
|
24202
|
+
];
|
|
24000
24203
|
var UniversalStrategies = [
|
|
24001
24204
|
{
|
|
24002
24205
|
name: "USDC Evergreen",
|
|
24003
|
-
description: "
|
|
24206
|
+
description: getDescription("USDC"),
|
|
24004
24207
|
address: ContractAddr.from("0x7e6498cf6a1bfc7e6fc89f1831865e2dacb9756def4ec4b031a9138788a3b5e"),
|
|
24005
24208
|
launchBlock: 0,
|
|
24006
24209
|
type: "ERC4626",
|
|
@@ -24013,13 +24216,13 @@ var UniversalStrategies = [
|
|
|
24013
24216
|
},
|
|
24014
24217
|
protocols: [Protocols.VESU],
|
|
24015
24218
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
24016
|
-
contractDetails:
|
|
24017
|
-
faqs:
|
|
24018
|
-
investmentSteps
|
|
24219
|
+
contractDetails: getContractDetails(usdcVaultSettings),
|
|
24220
|
+
faqs: getFAQs(),
|
|
24221
|
+
investmentSteps
|
|
24019
24222
|
},
|
|
24020
24223
|
{
|
|
24021
24224
|
name: "WBTC Evergreen",
|
|
24022
|
-
description: "
|
|
24225
|
+
description: getDescription("WBTC"),
|
|
24023
24226
|
address: ContractAddr.from("0x5a4c1651b913aa2ea7afd9024911603152a19058624c3e425405370d62bf80c"),
|
|
24024
24227
|
launchBlock: 0,
|
|
24025
24228
|
type: "ERC4626",
|
|
@@ -24032,13 +24235,13 @@ var UniversalStrategies = [
|
|
|
24032
24235
|
},
|
|
24033
24236
|
protocols: [Protocols.VESU],
|
|
24034
24237
|
maxTVL: Web3Number.fromWei(0, 8),
|
|
24035
|
-
contractDetails:
|
|
24036
|
-
faqs:
|
|
24037
|
-
investmentSteps
|
|
24238
|
+
contractDetails: getContractDetails(wbtcVaultSettings),
|
|
24239
|
+
faqs: getFAQs(),
|
|
24240
|
+
investmentSteps
|
|
24038
24241
|
},
|
|
24039
24242
|
{
|
|
24040
24243
|
name: "ETH Evergreen",
|
|
24041
|
-
description: "
|
|
24244
|
+
description: getDescription("ETH"),
|
|
24042
24245
|
address: ContractAddr.from("0x446c22d4d3f5cb52b4950ba832ba1df99464c6673a37c092b1d9622650dbd8"),
|
|
24043
24246
|
launchBlock: 0,
|
|
24044
24247
|
type: "ERC4626",
|
|
@@ -24051,13 +24254,13 @@ var UniversalStrategies = [
|
|
|
24051
24254
|
},
|
|
24052
24255
|
protocols: [Protocols.VESU],
|
|
24053
24256
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
24054
|
-
contractDetails:
|
|
24055
|
-
faqs:
|
|
24056
|
-
investmentSteps
|
|
24257
|
+
contractDetails: getContractDetails(ethVaultSettings),
|
|
24258
|
+
faqs: getFAQs(),
|
|
24259
|
+
investmentSteps
|
|
24057
24260
|
},
|
|
24058
24261
|
{
|
|
24059
24262
|
name: "STRK Evergreen",
|
|
24060
|
-
description: "
|
|
24263
|
+
description: getDescription("STRK"),
|
|
24061
24264
|
address: ContractAddr.from("0x55d012f57e58c96e0a5c7ebbe55853989d01e6538b15a95e7178aca4af05c21"),
|
|
24062
24265
|
launchBlock: 0,
|
|
24063
24266
|
type: "ERC4626",
|
|
@@ -24070,13 +24273,13 @@ var UniversalStrategies = [
|
|
|
24070
24273
|
},
|
|
24071
24274
|
protocols: [Protocols.VESU],
|
|
24072
24275
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
24073
|
-
contractDetails:
|
|
24074
|
-
faqs:
|
|
24075
|
-
investmentSteps
|
|
24276
|
+
contractDetails: getContractDetails(strkVaultSettings),
|
|
24277
|
+
faqs: getFAQs(),
|
|
24278
|
+
investmentSteps
|
|
24076
24279
|
},
|
|
24077
24280
|
{
|
|
24078
24281
|
name: "USDT Evergreen",
|
|
24079
|
-
description: "
|
|
24282
|
+
description: getDescription("USDT"),
|
|
24080
24283
|
address: ContractAddr.from("0x1c4933d1880c6778585e597154eaca7b428579d72f3aae425ad2e4d26c6bb3"),
|
|
24081
24284
|
launchBlock: 0,
|
|
24082
24285
|
type: "ERC4626",
|
|
@@ -24089,9 +24292,9 @@ var UniversalStrategies = [
|
|
|
24089
24292
|
},
|
|
24090
24293
|
protocols: [Protocols.VESU],
|
|
24091
24294
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
24092
|
-
contractDetails:
|
|
24093
|
-
faqs:
|
|
24094
|
-
investmentSteps
|
|
24295
|
+
contractDetails: getContractDetails(usdtVaultSettings),
|
|
24296
|
+
faqs: getFAQs(),
|
|
24297
|
+
investmentSteps
|
|
24095
24298
|
}
|
|
24096
24299
|
];
|
|
24097
24300
|
|