@strkfarm/sdk 1.0.59 → 1.0.61
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 +232 -28
- package/dist/index.browser.mjs +233 -29
- package/dist/index.d.ts +20 -1
- package/dist/index.js +233 -29
- package/dist/index.mjs +233 -29
- package/package.json +2 -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} +227 -27
|
@@ -52083,7 +52083,7 @@ ${indent}}` : "}";
|
|
|
52083
52083
|
};
|
|
52084
52084
|
var getRiskColor = (risk) => {
|
|
52085
52085
|
const value = risk.value;
|
|
52086
|
-
if (value <=
|
|
52086
|
+
if (value <= 2) return "light_green_2";
|
|
52087
52087
|
if (value < 3) return "yellow";
|
|
52088
52088
|
return "red";
|
|
52089
52089
|
};
|
|
@@ -52111,8 +52111,18 @@ ${indent}}` : "}";
|
|
|
52111
52111
|
name: "Vesu",
|
|
52112
52112
|
logo: "https://static-assets-8zct.onrender.com/integrations/vesu/logo.png"
|
|
52113
52113
|
};
|
|
52114
|
+
var EndurProtocol = {
|
|
52115
|
+
name: "Endur",
|
|
52116
|
+
logo: "http://endur.fi/logo.png"
|
|
52117
|
+
};
|
|
52118
|
+
var ExtendedProtocol = {
|
|
52119
|
+
name: "Extended",
|
|
52120
|
+
logo: "https://static-assets-8zct.onrender.com/integrations/extended/extended.svg"
|
|
52121
|
+
};
|
|
52114
52122
|
var Protocols = {
|
|
52115
|
-
VESU: VesuProtocol
|
|
52123
|
+
VESU: VesuProtocol,
|
|
52124
|
+
ENDUR: EndurProtocol,
|
|
52125
|
+
EXTENDED: ExtendedProtocol
|
|
52116
52126
|
};
|
|
52117
52127
|
|
|
52118
52128
|
// src/interfaces/initializable.ts
|
|
@@ -68358,7 +68368,7 @@ ${indent}}` : "}";
|
|
|
68358
68368
|
];
|
|
68359
68369
|
|
|
68360
68370
|
// src/strategies/universal-adapters/adapter-utils.ts
|
|
68361
|
-
var SIMPLE_SANITIZER = ContractAddr.from("
|
|
68371
|
+
var SIMPLE_SANITIZER = ContractAddr.from("0x3798dc4f83fdfad199e5236e3656cf2fb79bc50c00504d0dd41522e0f042072");
|
|
68362
68372
|
function toBigInt3(value) {
|
|
68363
68373
|
if (typeof value === "string") {
|
|
68364
68374
|
return BigInt(value);
|
|
@@ -68472,6 +68482,35 @@ ${indent}}` : "}";
|
|
|
68472
68482
|
};
|
|
68473
68483
|
};
|
|
68474
68484
|
}
|
|
68485
|
+
getBringLiquidityAdapter(id) {
|
|
68486
|
+
return () => ({
|
|
68487
|
+
leaf: this.constructSimpleLeafData({
|
|
68488
|
+
id,
|
|
68489
|
+
target: this.config.vaultAddress,
|
|
68490
|
+
method: "bring_liquidity",
|
|
68491
|
+
packedArguments: []
|
|
68492
|
+
}),
|
|
68493
|
+
callConstructor: this.getBringLiquidityCall().bind(this)
|
|
68494
|
+
});
|
|
68495
|
+
}
|
|
68496
|
+
getBringLiquidityCall() {
|
|
68497
|
+
return (params) => {
|
|
68498
|
+
const uint256Amount = uint256_exports.bnToUint256(params.amount.toWei());
|
|
68499
|
+
return {
|
|
68500
|
+
sanitizer: SIMPLE_SANITIZER,
|
|
68501
|
+
call: {
|
|
68502
|
+
contractAddress: this.config.vaultAddress,
|
|
68503
|
+
selector: hash_exports.getSelectorFromName("bring_liquidity"),
|
|
68504
|
+
calldata: [
|
|
68505
|
+
toBigInt3(uint256Amount.low.toString()),
|
|
68506
|
+
// amount low
|
|
68507
|
+
toBigInt3(uint256Amount.high.toString())
|
|
68508
|
+
// amount high
|
|
68509
|
+
]
|
|
68510
|
+
}
|
|
68511
|
+
};
|
|
68512
|
+
};
|
|
68513
|
+
}
|
|
68475
68514
|
};
|
|
68476
68515
|
|
|
68477
68516
|
// src/data/vesu-singleton.abi.json
|
|
@@ -73189,7 +73228,8 @@ ${indent}}` : "}";
|
|
|
73189
73228
|
}
|
|
73190
73229
|
];
|
|
73191
73230
|
|
|
73192
|
-
// src/strategies/universal-strategy.
|
|
73231
|
+
// src/strategies/universal-strategy.tsx
|
|
73232
|
+
var import_jsx_runtime4 = __toESM(require_jsx_runtime());
|
|
73193
73233
|
var AUMTypes = /* @__PURE__ */ ((AUMTypes2) => {
|
|
73194
73234
|
AUMTypes2["FINALISED"] = "finalised";
|
|
73195
73235
|
AUMTypes2["DEFISPRING"] = "defispring";
|
|
@@ -73410,6 +73450,7 @@ ${indent}}` : "}";
|
|
|
73410
73450
|
const balance = await this.getUnusedBalance();
|
|
73411
73451
|
logger.verbose(`${this.getTag()} unused balance: ${balance.amount.toNumber()}`);
|
|
73412
73452
|
const vesuAum = leg1AUM[0].amount.plus(leg2AUM[0].usdValue / token1Price.price).minus(leg1AUM[1].usdValue / token1Price.price).minus(leg2AUM[1].amount);
|
|
73453
|
+
logger.verbose(`${this.getTag()} Vesu AUM: leg1: ${leg1AUM[0].amount.toNumber()}, ${leg1AUM[1].amount.toNumber()}, leg2: ${leg2AUM[0].amount.toNumber()}, ${leg2AUM[1].amount.toNumber()}`);
|
|
73413
73454
|
const zeroAmt = Web3Number.fromWei("0", this.asset().decimals);
|
|
73414
73455
|
const net = {
|
|
73415
73456
|
tokenInfo: this.asset(),
|
|
@@ -73626,18 +73667,23 @@ ${indent}}` : "}";
|
|
|
73626
73667
|
logger.verbose(`${this.getTag()}:: leg1DepositAmount: ${params.leg1DepositAmount.toString()} ${vesuAdapter1.config.collateral.symbol}`);
|
|
73627
73668
|
logger.verbose(`${this.getTag()}:: borrow1Amount: ${borrow1Amount.toString()} ${vesuAdapter1.config.debt.symbol}`);
|
|
73628
73669
|
logger.verbose(`${this.getTag()}:: borrow2Amount: ${borrow2Amount.toString()} ${vesuAdapter2.config.debt.symbol}`);
|
|
73629
|
-
|
|
73670
|
+
let callSet1 = this.getVesuModifyPositionCalls({
|
|
73630
73671
|
isLeg1: true,
|
|
73631
73672
|
isDeposit: params.isDeposit,
|
|
73632
73673
|
depositAmount: params.leg1DepositAmount.plus(borrow2Amount),
|
|
73633
73674
|
debtAmount: borrow1Amount
|
|
73634
73675
|
});
|
|
73635
|
-
|
|
73676
|
+
let callSet2 = this.getVesuModifyPositionCalls({
|
|
73636
73677
|
isLeg1: false,
|
|
73637
73678
|
isDeposit: params.isDeposit,
|
|
73638
73679
|
depositAmount: borrow1Amount,
|
|
73639
73680
|
debtAmount: borrow2Amount
|
|
73640
73681
|
});
|
|
73682
|
+
if (!params.isDeposit) {
|
|
73683
|
+
let temp = callSet2;
|
|
73684
|
+
callSet2 = [...callSet1];
|
|
73685
|
+
callSet1 = [...temp];
|
|
73686
|
+
}
|
|
73641
73687
|
const allActions = [...callSet1.map((i) => i.manageCall), ...callSet2.map((i) => i.manageCall)];
|
|
73642
73688
|
const flashloanCalldata = CallData.compile([
|
|
73643
73689
|
[...callSet1.map((i) => i.proofs), ...callSet2.map((i) => i.proofs)],
|
|
@@ -73655,6 +73701,18 @@ ${indent}}` : "}";
|
|
|
73655
73701
|
const manageCall = this.getManageCall(["flash_loan_init" /* FLASH_LOAN */], [manageCall1]);
|
|
73656
73702
|
return manageCall;
|
|
73657
73703
|
}
|
|
73704
|
+
async getBringLiquidityCall(params) {
|
|
73705
|
+
const manage1Info = this.getProofs("approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */);
|
|
73706
|
+
const manageCall1 = manage1Info.callConstructor({
|
|
73707
|
+
amount: params.amount
|
|
73708
|
+
});
|
|
73709
|
+
const manage2Info = this.getProofs("bring_liquidity" /* BRING_LIQUIDITY */);
|
|
73710
|
+
const manageCall2 = manage2Info.callConstructor({
|
|
73711
|
+
amount: params.amount
|
|
73712
|
+
});
|
|
73713
|
+
const manageCall = this.getManageCall(["approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */, "bring_liquidity" /* BRING_LIQUIDITY */], [manageCall1, manageCall2]);
|
|
73714
|
+
return manageCall;
|
|
73715
|
+
}
|
|
73658
73716
|
async getRebalanceCall(params) {
|
|
73659
73717
|
let callSet1 = this.getVesuModifyPositionCalls({
|
|
73660
73718
|
isLeg1: true,
|
|
@@ -73689,6 +73747,8 @@ ${indent}}` : "}";
|
|
|
73689
73747
|
UNIVERSAL_MANAGE_IDS2["VESU_LEG2"] = "vesu_leg2";
|
|
73690
73748
|
UNIVERSAL_MANAGE_IDS2["APPROVE_TOKEN1"] = "approve_token1";
|
|
73691
73749
|
UNIVERSAL_MANAGE_IDS2["APPROVE_TOKEN2"] = "approve_token2";
|
|
73750
|
+
UNIVERSAL_MANAGE_IDS2["APPROVE_BRING_LIQUIDITY"] = "approve_bring_liquidity";
|
|
73751
|
+
UNIVERSAL_MANAGE_IDS2["BRING_LIQUIDITY"] = "bring_liquidity";
|
|
73692
73752
|
return UNIVERSAL_MANAGE_IDS2;
|
|
73693
73753
|
})(UNIVERSAL_MANAGE_IDS || {});
|
|
73694
73754
|
var UNIVERSAL_ADAPTERS = /* @__PURE__ */ ((UNIVERSAL_ADAPTERS2) => {
|
|
@@ -73703,7 +73763,9 @@ ${indent}}` : "}";
|
|
|
73703
73763
|
const commonAdapter = new CommonAdapter({
|
|
73704
73764
|
manager: vaultSettings.manager,
|
|
73705
73765
|
asset: USDCToken.address,
|
|
73706
|
-
id: "flash_loan_init" /* FLASH_LOAN
|
|
73766
|
+
id: "flash_loan_init" /* FLASH_LOAN */,
|
|
73767
|
+
vaultAddress: vaultSettings.vaultAddress,
|
|
73768
|
+
vaultAllocator: vaultSettings.vaultAllocator
|
|
73707
73769
|
});
|
|
73708
73770
|
const vesuAdapterUSDCETH = new VesuAdapter({
|
|
73709
73771
|
poolId: pool1,
|
|
@@ -73734,13 +73796,17 @@ ${indent}}` : "}";
|
|
|
73734
73796
|
vaultSettings.leafAdapters.push(vesuAdapterETHUSDC.getModifyPosition.bind(vesuAdapterETHUSDC));
|
|
73735
73797
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, vesuAdapterUSDCETH.VESU_SINGLETON, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
73736
73798
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(ETHToken.address, vesuAdapterETHUSDC.VESU_SINGLETON, "approve_token2" /* APPROVE_TOKEN2 */).bind(commonAdapter));
|
|
73799
|
+
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(USDCToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
|
|
73800
|
+
vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
|
|
73737
73801
|
return vaultSettings;
|
|
73738
73802
|
}
|
|
73739
73803
|
var _riskFactor4 = [
|
|
73740
73804
|
{ type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 0.5, weight: 25, reason: "Audited by Zellic" },
|
|
73741
|
-
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1, weight: 50, reason: "Liquidation risk is mitigated
|
|
73805
|
+
{ type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1.5, weight: 50, reason: "Liquidation risk is mitigated by stable price feed on Starknet" },
|
|
73806
|
+
{ type: "Technical Risk" /* TECHNICAL_RISK */, value: 1, weight: 50, reason: "Technical failures like risk monitoring failures" }
|
|
73742
73807
|
];
|
|
73743
73808
|
var usdcVaultSettings = {
|
|
73809
|
+
vaultAddress: ContractAddr.from("0x7e6498cf6a1bfc7e6fc89f1831865e2dacb9756def4ec4b031a9138788a3b5e"),
|
|
73744
73810
|
manager: ContractAddr.from("0xf41a2b1f498a7f9629db0b8519259e66e964260a23d20003f3e42bb1997a07"),
|
|
73745
73811
|
vaultAllocator: ContractAddr.from("0x228cca1005d3f2b55cbaba27cb291dacf1b9a92d1d6b1638195fbd3d0c1e3ba"),
|
|
73746
73812
|
redeemRequestNFT: ContractAddr.from("0x906d03590010868cbf7590ad47043959d7af8e782089a605d9b22567b64fda"),
|
|
@@ -73751,6 +73817,7 @@ ${indent}}` : "}";
|
|
|
73751
73817
|
minHealthFactor: 1.25
|
|
73752
73818
|
};
|
|
73753
73819
|
var wbtcVaultSettings = {
|
|
73820
|
+
vaultAddress: ContractAddr.from("0x5a4c1651b913aa2ea7afd9024911603152a19058624c3e425405370d62bf80c"),
|
|
73754
73821
|
manager: ContractAddr.from("0xef8a664ffcfe46a6af550766d27c28937bf1b77fb4ab54d8553e92bca5ba34"),
|
|
73755
73822
|
vaultAllocator: ContractAddr.from("0x1e01c25f0d9494570226ad28a7fa856c0640505e809c366a9fab4903320e735"),
|
|
73756
73823
|
redeemRequestNFT: ContractAddr.from("0x4fec59a12f8424281c1e65a80b5de51b4e754625c60cddfcd00d46941ec37b2"),
|
|
@@ -73761,6 +73828,7 @@ ${indent}}` : "}";
|
|
|
73761
73828
|
minHealthFactor: 1.25
|
|
73762
73829
|
};
|
|
73763
73830
|
var ethVaultSettings = {
|
|
73831
|
+
vaultAddress: ContractAddr.from("0x446c22d4d3f5cb52b4950ba832ba1df99464c6673a37c092b1d9622650dbd8"),
|
|
73764
73832
|
manager: ContractAddr.from("0x494888b37206616bd09d759dcda61e5118470b9aa7f58fb84f21c778a7b8f97"),
|
|
73765
73833
|
vaultAllocator: ContractAddr.from("0x4acc0ad6bea58cb578d60ff7c31f06f44369a7a9a7bbfffe4701f143e427bd"),
|
|
73766
73834
|
redeemRequestNFT: ContractAddr.from("0x2e6cd71e5060a254d4db00655e420db7bf89da7755bb0d5f922e2f00c76ac49"),
|
|
@@ -73771,6 +73839,7 @@ ${indent}}` : "}";
|
|
|
73771
73839
|
minHealthFactor: 1.25
|
|
73772
73840
|
};
|
|
73773
73841
|
var strkVaultSettings = {
|
|
73842
|
+
vaultAddress: ContractAddr.from("0x55d012f57e58c96e0a5c7ebbe55853989d01e6538b15a95e7178aca4af05c21"),
|
|
73774
73843
|
manager: ContractAddr.from("0xcc6a5153ca56293405506eb20826a379d982cd738008ef7e808454d318fb81"),
|
|
73775
73844
|
vaultAllocator: ContractAddr.from("0xf29d2f82e896c0ed74c9eff220af34ac148e8b99846d1ace9fbb02c9191d01"),
|
|
73776
73845
|
redeemRequestNFT: ContractAddr.from("0x46902423bd632c428376b84fcee9cac5dbe016214e93a8103bcbde6e1de656b"),
|
|
@@ -73781,6 +73850,7 @@ ${indent}}` : "}";
|
|
|
73781
73850
|
minHealthFactor: 1.25
|
|
73782
73851
|
};
|
|
73783
73852
|
var usdtVaultSettings = {
|
|
73853
|
+
vaultAddress: ContractAddr.from("0x1c4933d1880c6778585e597154eaca7b428579d72f3aae425ad2e4d26c6bb3"),
|
|
73784
73854
|
manager: ContractAddr.from("0x39bb9843503799b552b7ed84b31c06e4ff10c0537edcddfbf01fe944b864029"),
|
|
73785
73855
|
vaultAllocator: ContractAddr.from("0x56437d18c43727ac971f6c7086031cad7d9d6ccb340f4f3785a74cc791c931a"),
|
|
73786
73856
|
redeemRequestNFT: ContractAddr.from("0x5af0c2a657eaa8e23ed78e855dac0c51e4f69e2cf91a18c472041a1f75bb41f"),
|
|
@@ -73790,10 +73860,144 @@ ${indent}}` : "}";
|
|
|
73790
73860
|
targetHealthFactor: 1.3,
|
|
73791
73861
|
minHealthFactor: 1.25
|
|
73792
73862
|
};
|
|
73863
|
+
function MetaVaultDescription(allowedSources) {
|
|
73864
|
+
const logos = {
|
|
73865
|
+
vesu: Protocols.VESU.logo,
|
|
73866
|
+
endur: Protocols.ENDUR.logo,
|
|
73867
|
+
extended: Protocols.EXTENDED.logo,
|
|
73868
|
+
ekubo: "https://dummyimage.com/64x64/ffffff/000000&text=K"
|
|
73869
|
+
};
|
|
73870
|
+
const _sources = [
|
|
73871
|
+
{ key: "vesu", name: "Vesu", status: "Live", description: "Integrated liquidity venue used for automated routing to capture the best available yield." },
|
|
73872
|
+
{ key: "endur", name: "Endur", status: "Coming soon", description: "Planned integration to tap into STRK staking\u2013backed yields via our LST pipeline." },
|
|
73873
|
+
{ key: "extended", name: "Extended", status: "Coming soon", description: "Expanding coverage to additional money markets and vaults across the ecosystem." }
|
|
73874
|
+
// { key: "ekubo", name: "Ekubo", status: "Coming soon", description: "Concentrated liquidity strategies targeted for optimized fee APR harvesting." },
|
|
73875
|
+
];
|
|
73876
|
+
const sources = _sources.filter((s) => allowedSources.includes(s.key));
|
|
73877
|
+
const containerStyle = {
|
|
73878
|
+
maxWidth: "800px",
|
|
73879
|
+
margin: "0 auto",
|
|
73880
|
+
backgroundColor: "#111",
|
|
73881
|
+
color: "#eee",
|
|
73882
|
+
fontFamily: "Arial, sans-serif",
|
|
73883
|
+
borderRadius: "12px"
|
|
73884
|
+
};
|
|
73885
|
+
const cardStyle = {
|
|
73886
|
+
border: "1px solid #333",
|
|
73887
|
+
borderRadius: "10px",
|
|
73888
|
+
padding: "12px",
|
|
73889
|
+
marginBottom: "12px",
|
|
73890
|
+
backgroundColor: "#1a1a1a"
|
|
73891
|
+
};
|
|
73892
|
+
const logoStyle = {
|
|
73893
|
+
width: "24px",
|
|
73894
|
+
height: "24px",
|
|
73895
|
+
borderRadius: "8px",
|
|
73896
|
+
border: "1px solid #444",
|
|
73897
|
+
backgroundColor: "#222"
|
|
73898
|
+
};
|
|
73899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: containerStyle, children: [
|
|
73900
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
|
|
73901
|
+
/* @__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." }),
|
|
73902
|
+
/* @__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: [
|
|
73903
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Withdrawals:" }),
|
|
73904
|
+
" Requests can take up to ",
|
|
73905
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "1-2 hours" }),
|
|
73906
|
+
" to process as the vault unwinds and settles routing."
|
|
73907
|
+
] }) }),
|
|
73908
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Supported Yield Sources" }),
|
|
73909
|
+
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: [
|
|
73910
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("img", { src: logos[s.key], alt: `${s.name} logo`, style: logoStyle }),
|
|
73911
|
+
/* @__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: [
|
|
73912
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "15px", margin: 0 }, children: s.name }),
|
|
73913
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StatusBadge, { status: s.status })
|
|
73914
|
+
] }) })
|
|
73915
|
+
] }) }, s.key))
|
|
73916
|
+
] });
|
|
73917
|
+
}
|
|
73918
|
+
function StatusBadge({ status }) {
|
|
73919
|
+
const isSoon = String(status).toLowerCase() !== "live";
|
|
73920
|
+
const badgeStyle = {
|
|
73921
|
+
fontSize: "12px",
|
|
73922
|
+
padding: "2px 6px",
|
|
73923
|
+
borderRadius: "12px",
|
|
73924
|
+
border: "1px solid",
|
|
73925
|
+
color: isSoon ? "rgb(196 196 195)" : "#6aff7d",
|
|
73926
|
+
borderColor: isSoon ? "#484848" : "#6aff7d",
|
|
73927
|
+
backgroundColor: isSoon ? "#424242" : "#002b1a"
|
|
73928
|
+
};
|
|
73929
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: badgeStyle, children: status });
|
|
73930
|
+
}
|
|
73931
|
+
function getDescription(tokenSymbol, allowedSources) {
|
|
73932
|
+
return MetaVaultDescription(allowedSources);
|
|
73933
|
+
}
|
|
73934
|
+
function getFAQs() {
|
|
73935
|
+
return [
|
|
73936
|
+
{
|
|
73937
|
+
question: "What is the Meta Vault?",
|
|
73938
|
+
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."
|
|
73939
|
+
},
|
|
73940
|
+
{
|
|
73941
|
+
question: "How does yield allocation work?",
|
|
73942
|
+
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."
|
|
73943
|
+
},
|
|
73944
|
+
{
|
|
73945
|
+
question: "Which yield sources are supported?",
|
|
73946
|
+
answer: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { children: [
|
|
73947
|
+
"Currently, ",
|
|
73948
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Vesu" }),
|
|
73949
|
+
" is live. Future integrations may include",
|
|
73950
|
+
" ",
|
|
73951
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Endur" }),
|
|
73952
|
+
", ",
|
|
73953
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Extended" }),
|
|
73954
|
+
", and",
|
|
73955
|
+
" ",
|
|
73956
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Ekubo" }),
|
|
73957
|
+
" (all coming soon)."
|
|
73958
|
+
] })
|
|
73959
|
+
},
|
|
73960
|
+
{
|
|
73961
|
+
question: "What do I receive when I deposit?",
|
|
73962
|
+
answer: "Depositors receive vault tokens representing their proportional share of the vault. These tokens entitle holders to both the principal and accrued yield."
|
|
73963
|
+
},
|
|
73964
|
+
{
|
|
73965
|
+
question: "How long do withdrawals take?",
|
|
73966
|
+
answer: "Withdrawals may take up to 1-2 hours to process, as the vault unwinds and settles liquidity routing across integrated protocols."
|
|
73967
|
+
},
|
|
73968
|
+
{
|
|
73969
|
+
question: "Is the Meta Vault non-custodial?",
|
|
73970
|
+
answer: "Yes. The Meta Vault operates entirely on-chain. Users always maintain control of their vault tokens, and the strategy is fully transparent."
|
|
73971
|
+
},
|
|
73972
|
+
{
|
|
73973
|
+
question: "How is risk managed?",
|
|
73974
|
+
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."
|
|
73975
|
+
},
|
|
73976
|
+
{
|
|
73977
|
+
question: "Are there any fees?",
|
|
73978
|
+
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."
|
|
73979
|
+
}
|
|
73980
|
+
];
|
|
73981
|
+
}
|
|
73982
|
+
function getContractDetails(settings2) {
|
|
73983
|
+
return [
|
|
73984
|
+
{ address: settings2.vaultAddress, name: "Vault" },
|
|
73985
|
+
{ address: settings2.manager, name: "Vault Manager" },
|
|
73986
|
+
{ address: settings2.vaultAllocator, name: "Vault Allocator" },
|
|
73987
|
+
{ address: settings2.redeemRequestNFT, name: "Redeem Request NFT" },
|
|
73988
|
+
{ address: settings2.aumOracle, name: "AUM Oracle" }
|
|
73989
|
+
];
|
|
73990
|
+
}
|
|
73991
|
+
var investmentSteps = [
|
|
73992
|
+
"Deposit funds into the vault",
|
|
73993
|
+
"Vault manager allocates funds to optimal yield sources",
|
|
73994
|
+
"Vault manager reports asset under management (AUM) regularly to the vault",
|
|
73995
|
+
"Request withdrawal and vault manager processes it in 1-2 hours"
|
|
73996
|
+
];
|
|
73793
73997
|
var UniversalStrategies = [
|
|
73794
73998
|
{
|
|
73795
73999
|
name: "USDC Evergreen",
|
|
73796
|
-
description: "
|
|
74000
|
+
description: getDescription("USDC", ["vesu", "extended"]),
|
|
73797
74001
|
address: ContractAddr.from("0x7e6498cf6a1bfc7e6fc89f1831865e2dacb9756def4ec4b031a9138788a3b5e"),
|
|
73798
74002
|
launchBlock: 0,
|
|
73799
74003
|
type: "ERC4626",
|
|
@@ -73806,13 +74010,13 @@ ${indent}}` : "}";
|
|
|
73806
74010
|
},
|
|
73807
74011
|
protocols: [Protocols.VESU],
|
|
73808
74012
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
73809
|
-
contractDetails:
|
|
73810
|
-
faqs:
|
|
73811
|
-
investmentSteps
|
|
74013
|
+
contractDetails: getContractDetails(usdcVaultSettings),
|
|
74014
|
+
faqs: getFAQs(),
|
|
74015
|
+
investmentSteps
|
|
73812
74016
|
},
|
|
73813
74017
|
{
|
|
73814
74018
|
name: "WBTC Evergreen",
|
|
73815
|
-
description: "
|
|
74019
|
+
description: getDescription("WBTC", ["vesu", "endur", "extended"]),
|
|
73816
74020
|
address: ContractAddr.from("0x5a4c1651b913aa2ea7afd9024911603152a19058624c3e425405370d62bf80c"),
|
|
73817
74021
|
launchBlock: 0,
|
|
73818
74022
|
type: "ERC4626",
|
|
@@ -73825,13 +74029,13 @@ ${indent}}` : "}";
|
|
|
73825
74029
|
},
|
|
73826
74030
|
protocols: [Protocols.VESU],
|
|
73827
74031
|
maxTVL: Web3Number.fromWei(0, 8),
|
|
73828
|
-
contractDetails:
|
|
73829
|
-
faqs:
|
|
73830
|
-
investmentSteps
|
|
74032
|
+
contractDetails: getContractDetails(wbtcVaultSettings),
|
|
74033
|
+
faqs: getFAQs(),
|
|
74034
|
+
investmentSteps
|
|
73831
74035
|
},
|
|
73832
74036
|
{
|
|
73833
74037
|
name: "ETH Evergreen",
|
|
73834
|
-
description: "
|
|
74038
|
+
description: getDescription("ETH", ["vesu", "extended"]),
|
|
73835
74039
|
address: ContractAddr.from("0x446c22d4d3f5cb52b4950ba832ba1df99464c6673a37c092b1d9622650dbd8"),
|
|
73836
74040
|
launchBlock: 0,
|
|
73837
74041
|
type: "ERC4626",
|
|
@@ -73844,13 +74048,13 @@ ${indent}}` : "}";
|
|
|
73844
74048
|
},
|
|
73845
74049
|
protocols: [Protocols.VESU],
|
|
73846
74050
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
73847
|
-
contractDetails:
|
|
73848
|
-
faqs:
|
|
73849
|
-
investmentSteps
|
|
74051
|
+
contractDetails: getContractDetails(ethVaultSettings),
|
|
74052
|
+
faqs: getFAQs(),
|
|
74053
|
+
investmentSteps
|
|
73850
74054
|
},
|
|
73851
74055
|
{
|
|
73852
74056
|
name: "STRK Evergreen",
|
|
73853
|
-
description: "
|
|
74057
|
+
description: getDescription("STRK", ["vesu", "endur", "extended"]),
|
|
73854
74058
|
address: ContractAddr.from("0x55d012f57e58c96e0a5c7ebbe55853989d01e6538b15a95e7178aca4af05c21"),
|
|
73855
74059
|
launchBlock: 0,
|
|
73856
74060
|
type: "ERC4626",
|
|
@@ -73863,13 +74067,13 @@ ${indent}}` : "}";
|
|
|
73863
74067
|
},
|
|
73864
74068
|
protocols: [Protocols.VESU],
|
|
73865
74069
|
maxTVL: Web3Number.fromWei(0, 18),
|
|
73866
|
-
contractDetails:
|
|
73867
|
-
faqs:
|
|
73868
|
-
investmentSteps
|
|
74070
|
+
contractDetails: getContractDetails(strkVaultSettings),
|
|
74071
|
+
faqs: getFAQs(),
|
|
74072
|
+
investmentSteps
|
|
73869
74073
|
},
|
|
73870
74074
|
{
|
|
73871
74075
|
name: "USDT Evergreen",
|
|
73872
|
-
description: "
|
|
74076
|
+
description: getDescription("USDT", ["vesu"]),
|
|
73873
74077
|
address: ContractAddr.from("0x1c4933d1880c6778585e597154eaca7b428579d72f3aae425ad2e4d26c6bb3"),
|
|
73874
74078
|
launchBlock: 0,
|
|
73875
74079
|
type: "ERC4626",
|
|
@@ -73882,9 +74086,9 @@ ${indent}}` : "}";
|
|
|
73882
74086
|
},
|
|
73883
74087
|
protocols: [Protocols.VESU],
|
|
73884
74088
|
maxTVL: Web3Number.fromWei(0, 6),
|
|
73885
|
-
contractDetails:
|
|
73886
|
-
faqs:
|
|
73887
|
-
investmentSteps
|
|
74089
|
+
contractDetails: getContractDetails(usdtVaultSettings),
|
|
74090
|
+
faqs: getFAQs(),
|
|
74091
|
+
investmentSteps
|
|
73888
74092
|
}
|
|
73889
74093
|
];
|
|
73890
74094
|
return __toCommonJS(index_browser_exports);
|