@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.
@@ -49505,7 +49505,7 @@ ${indent}}` : "}";
49505
49505
  var import_hashes = __toESM(require_hashes());
49506
49506
  var import_merkletree = __toESM(require_merkletree());
49507
49507
 
49508
- // node_modules/.pnpm/@noble+hashes@2.0.0/node_modules/@noble/hashes/utils.js
49508
+ // node_modules/@noble/hashes/utils.js
49509
49509
  function isBytes9(a) {
49510
49510
  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
49511
49511
  }
@@ -49642,7 +49642,7 @@ ${indent}}` : "}";
49642
49642
  oid: Uint8Array.from([6, 9, 96, 134, 72, 1, 101, 3, 4, 2, suffix])
49643
49643
  });
49644
49644
 
49645
- // node_modules/.pnpm/@noble+curves@2.0.0/node_modules/@noble/curves/utils.js
49645
+ // node_modules/@noble/curves/utils.js
49646
49646
  var _0n12 = /* @__PURE__ */ BigInt(0);
49647
49647
  var _1n12 = /* @__PURE__ */ BigInt(1);
49648
49648
  function abool(value, title = "") {
@@ -49788,7 +49788,7 @@ ${indent}}` : "}";
49788
49788
  };
49789
49789
  }
49790
49790
 
49791
- // node_modules/.pnpm/@noble+curves@2.0.0/node_modules/@noble/curves/abstract/modular.js
49791
+ // node_modules/@noble/curves/abstract/modular.js
49792
49792
  var _0n13 = /* @__PURE__ */ BigInt(0);
49793
49793
  var _1n13 = /* @__PURE__ */ BigInt(1);
49794
49794
  var _2n10 = /* @__PURE__ */ BigInt(2);
@@ -50166,7 +50166,7 @@ ${indent}}` : "}";
50166
50166
  return isLE4 ? numberToBytesLE3(reduced, fieldLen) : numberToBytesBE3(reduced, fieldLen);
50167
50167
  }
50168
50168
 
50169
- // node_modules/.pnpm/@noble+curves@2.0.0/node_modules/@noble/curves/abstract/poseidon.js
50169
+ // node_modules/@noble/curves/abstract/poseidon.js
50170
50170
  function assertValidPosOpts(opts) {
50171
50171
  const { Fp: Fp2, roundsFull } = opts;
50172
50172
  validateField3(Fp2);
@@ -50263,7 +50263,7 @@ ${indent}}` : "}";
50263
50263
  return poseidonHash2;
50264
50264
  }
50265
50265
 
50266
- // node_modules/.pnpm/@noble+hashes@2.0.0/node_modules/@noble/hashes/hmac.js
50266
+ // node_modules/@noble/hashes/hmac.js
50267
50267
  var _HMAC = class {
50268
50268
  constructor(hash4, key) {
50269
50269
  __publicField(this, "oHash");
@@ -50334,7 +50334,7 @@ ${indent}}` : "}";
50334
50334
  var hmac3 = (hash4, key, message) => new _HMAC(hash4, key).update(message).digest();
50335
50335
  hmac3.create = (hash4, key) => new _HMAC(hash4, key);
50336
50336
 
50337
- // node_modules/.pnpm/@noble+curves@2.0.0/node_modules/@noble/curves/abstract/curve.js
50337
+ // node_modules/@noble/curves/abstract/curve.js
50338
50338
  var _0n14 = /* @__PURE__ */ BigInt(0);
50339
50339
  var _1n14 = /* @__PURE__ */ BigInt(1);
50340
50340
  function negateCt(condition, item) {
@@ -50567,7 +50567,7 @@ ${indent}}` : "}";
50567
50567
  };
50568
50568
  }
50569
50569
 
50570
- // node_modules/.pnpm/@noble+curves@2.0.0/node_modules/@noble/curves/abstract/weierstrass.js
50570
+ // node_modules/@noble/curves/abstract/weierstrass.js
50571
50571
  var divNearest2 = (num4, den) => (num4 + (num4 >= 0 ? den : -den) / _2n11) / den;
50572
50572
  function _splitEndoScalar(k, basis, n) {
50573
50573
  const [[a1, b1], [a2, b2]] = basis;
@@ -51440,7 +51440,7 @@ ${indent}}` : "}";
51440
51440
  });
51441
51441
  }
51442
51442
 
51443
- // node_modules/.pnpm/@noble+hashes@2.0.0/node_modules/@noble/hashes/_md.js
51443
+ // node_modules/@noble/hashes/_md.js
51444
51444
  function Chi3(a, b, c) {
51445
51445
  return a & b ^ ~a & c;
51446
51446
  }
@@ -51553,7 +51553,7 @@ ${indent}}` : "}";
51553
51553
  1541459225
51554
51554
  ]);
51555
51555
 
51556
- // node_modules/.pnpm/@noble+hashes@2.0.0/node_modules/@noble/hashes/sha2.js
51556
+ // node_modules/@noble/hashes/sha2.js
51557
51557
  var SHA256_K3 = /* @__PURE__ */ Uint32Array.from([
51558
51558
  1116352408,
51559
51559
  1899447441,
@@ -51703,7 +51703,7 @@ ${indent}}` : "}";
51703
51703
  /* @__PURE__ */ oidNist(1)
51704
51704
  );
51705
51705
 
51706
- // node_modules/.pnpm/@scure+starknet@2.0.0/node_modules/@scure/starknet/index.js
51706
+ // node_modules/@scure/starknet/index.js
51707
51707
  var CURVE_ORDER2 = BigInt("3618502788666131213697322783095070105526743751716087489154079457884512865583");
51708
51708
  var MAX_VALUE2 = BigInt("0x800000000000000000000000000000000000000000000000000000000000000");
51709
51709
  var nBitLength2 = 252;
@@ -52083,7 +52083,7 @@ ${indent}}` : "}";
52083
52083
  };
52084
52084
  var getRiskColor = (risk) => {
52085
52085
  const value = risk.value;
52086
- if (value <= 1) return "light_green_2";
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("0x11b59e89b35dfceb3e48ec18c01f8ec569592026c275bcb58e22af9f4dedaac");
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.ts
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
- const callSet1 = this.getVesuModifyPositionCalls({
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
- const callSet2 = this.getVesuModifyPositionCalls({
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 btable price feed on Starknet" }
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,143 @@ ${indent}}` : "}";
73790
73860
  targetHealthFactor: 1.3,
73791
73861
  minHealthFactor: 1.25
73792
73862
  };
73863
+ function MetaVaultDescription() {
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 containerStyle = {
73877
+ maxWidth: "800px",
73878
+ margin: "0 auto",
73879
+ backgroundColor: "#111",
73880
+ color: "#eee",
73881
+ fontFamily: "Arial, sans-serif",
73882
+ borderRadius: "12px"
73883
+ };
73884
+ const cardStyle = {
73885
+ border: "1px solid #333",
73886
+ borderRadius: "10px",
73887
+ padding: "12px",
73888
+ marginBottom: "12px",
73889
+ backgroundColor: "#1a1a1a"
73890
+ };
73891
+ const logoStyle = {
73892
+ width: "24px",
73893
+ height: "24px",
73894
+ borderRadius: "8px",
73895
+ border: "1px solid #444",
73896
+ backgroundColor: "#222"
73897
+ };
73898
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: containerStyle, children: [
73899
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
73900
+ /* @__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." }),
73901
+ /* @__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: [
73902
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Withdrawals:" }),
73903
+ " Requests can take up to ",
73904
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "1-2 hours" }),
73905
+ " to process as the vault unwinds and settles routing."
73906
+ ] }) }),
73907
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h2", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Supported Yield Sources" }),
73908
+ 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: [
73909
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("img", { src: logos[s.key], alt: `${s.name} logo`, style: logoStyle }),
73910
+ /* @__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: [
73911
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h3", { style: { fontSize: "15px", margin: 0 }, children: s.name }),
73912
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(StatusBadge, { status: s.status })
73913
+ ] }) })
73914
+ ] }) }, s.key))
73915
+ ] });
73916
+ }
73917
+ function StatusBadge({ status }) {
73918
+ const isSoon = String(status).toLowerCase() !== "live";
73919
+ const badgeStyle = {
73920
+ fontSize: "12px",
73921
+ padding: "2px 6px",
73922
+ borderRadius: "12px",
73923
+ border: "1px solid",
73924
+ color: isSoon ? "rgb(196 196 195)" : "#6aff7d",
73925
+ borderColor: isSoon ? "#484848" : "#6aff7d",
73926
+ backgroundColor: isSoon ? "#424242" : "#002b1a"
73927
+ };
73928
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: badgeStyle, children: status });
73929
+ }
73930
+ function getDescription(tokenSymbol) {
73931
+ return MetaVaultDescription();
73932
+ }
73933
+ function getFAQs() {
73934
+ return [
73935
+ {
73936
+ question: "What is the Meta Vault?",
73937
+ 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."
73938
+ },
73939
+ {
73940
+ question: "How does yield allocation work?",
73941
+ 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."
73942
+ },
73943
+ {
73944
+ question: "Which yield sources are supported?",
73945
+ answer: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { children: [
73946
+ "Currently, ",
73947
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Vesu" }),
73948
+ " is live. Future integrations include",
73949
+ " ",
73950
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Endur" }),
73951
+ ", ",
73952
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Extended" }),
73953
+ ", and",
73954
+ " ",
73955
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("strong", { children: "Ekubo" }),
73956
+ " (all coming soon)."
73957
+ ] })
73958
+ },
73959
+ {
73960
+ question: "What do I receive when I deposit?",
73961
+ answer: "Depositors receive vault tokens representing their proportional share of the vault. These tokens entitle holders to both the principal and accrued yield."
73962
+ },
73963
+ {
73964
+ question: "How long do withdrawals take?",
73965
+ answer: "Withdrawals may take up to 1-2 hours to process, as the vault unwinds and settles liquidity routing across integrated protocols."
73966
+ },
73967
+ {
73968
+ question: "Is the Meta Vault non-custodial?",
73969
+ answer: "Yes. The Meta Vault operates entirely on-chain. Users always maintain control of their vault tokens, and the strategy is fully transparent."
73970
+ },
73971
+ {
73972
+ question: "How is risk managed?",
73973
+ 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."
73974
+ },
73975
+ {
73976
+ question: "Are there any fees?",
73977
+ 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."
73978
+ }
73979
+ ];
73980
+ }
73981
+ function getContractDetails(settings2) {
73982
+ return [
73983
+ { address: settings2.vaultAddress, name: "Vault" },
73984
+ { address: settings2.manager, name: "Vault Manager" },
73985
+ { address: settings2.vaultAllocator, name: "Vault Allocator" },
73986
+ { address: settings2.redeemRequestNFT, name: "Redeem Request NFT" },
73987
+ { address: settings2.aumOracle, name: "AUM Oracle" }
73988
+ ];
73989
+ }
73990
+ var investmentSteps = [
73991
+ "Deposit funds into the vault",
73992
+ "Vault manager allocates funds to optimal yield sources",
73993
+ "Vault manager reports asset under management (AUM) regularly to the vault",
73994
+ "Request withdrawal and vault manager processes it in 1-2 hours"
73995
+ ];
73793
73996
  var UniversalStrategies = [
73794
73997
  {
73795
73998
  name: "USDC Evergreen",
73796
- description: "A universal strategy for managing USDC assets",
73999
+ description: getDescription("USDC"),
73797
74000
  address: ContractAddr.from("0x7e6498cf6a1bfc7e6fc89f1831865e2dacb9756def4ec4b031a9138788a3b5e"),
73798
74001
  launchBlock: 0,
73799
74002
  type: "ERC4626",
@@ -73806,13 +74009,13 @@ ${indent}}` : "}";
73806
74009
  },
73807
74010
  protocols: [Protocols.VESU],
73808
74011
  maxTVL: Web3Number.fromWei(0, 6),
73809
- contractDetails: [],
73810
- faqs: [],
73811
- investmentSteps: []
74012
+ contractDetails: getContractDetails(usdcVaultSettings),
74013
+ faqs: getFAQs(),
74014
+ investmentSteps
73812
74015
  },
73813
74016
  {
73814
74017
  name: "WBTC Evergreen",
73815
- description: "A universal strategy for managing WBTC assets",
74018
+ description: getDescription("WBTC"),
73816
74019
  address: ContractAddr.from("0x5a4c1651b913aa2ea7afd9024911603152a19058624c3e425405370d62bf80c"),
73817
74020
  launchBlock: 0,
73818
74021
  type: "ERC4626",
@@ -73825,13 +74028,13 @@ ${indent}}` : "}";
73825
74028
  },
73826
74029
  protocols: [Protocols.VESU],
73827
74030
  maxTVL: Web3Number.fromWei(0, 8),
73828
- contractDetails: [],
73829
- faqs: [],
73830
- investmentSteps: []
74031
+ contractDetails: getContractDetails(wbtcVaultSettings),
74032
+ faqs: getFAQs(),
74033
+ investmentSteps
73831
74034
  },
73832
74035
  {
73833
74036
  name: "ETH Evergreen",
73834
- description: "A universal strategy for managing ETH assets",
74037
+ description: getDescription("ETH"),
73835
74038
  address: ContractAddr.from("0x446c22d4d3f5cb52b4950ba832ba1df99464c6673a37c092b1d9622650dbd8"),
73836
74039
  launchBlock: 0,
73837
74040
  type: "ERC4626",
@@ -73844,13 +74047,13 @@ ${indent}}` : "}";
73844
74047
  },
73845
74048
  protocols: [Protocols.VESU],
73846
74049
  maxTVL: Web3Number.fromWei(0, 18),
73847
- contractDetails: [],
73848
- faqs: [],
73849
- investmentSteps: []
74050
+ contractDetails: getContractDetails(ethVaultSettings),
74051
+ faqs: getFAQs(),
74052
+ investmentSteps
73850
74053
  },
73851
74054
  {
73852
74055
  name: "STRK Evergreen",
73853
- description: "A universal strategy for managing STRK assets",
74056
+ description: getDescription("STRK"),
73854
74057
  address: ContractAddr.from("0x55d012f57e58c96e0a5c7ebbe55853989d01e6538b15a95e7178aca4af05c21"),
73855
74058
  launchBlock: 0,
73856
74059
  type: "ERC4626",
@@ -73863,13 +74066,13 @@ ${indent}}` : "}";
73863
74066
  },
73864
74067
  protocols: [Protocols.VESU],
73865
74068
  maxTVL: Web3Number.fromWei(0, 18),
73866
- contractDetails: [],
73867
- faqs: [],
73868
- investmentSteps: []
74069
+ contractDetails: getContractDetails(strkVaultSettings),
74070
+ faqs: getFAQs(),
74071
+ investmentSteps
73869
74072
  },
73870
74073
  {
73871
74074
  name: "USDT Evergreen",
73872
- description: "A universal strategy for managing USDT assets",
74075
+ description: getDescription("USDT"),
73873
74076
  address: ContractAddr.from("0x1c4933d1880c6778585e597154eaca7b428579d72f3aae425ad2e4d26c6bb3"),
73874
74077
  launchBlock: 0,
73875
74078
  type: "ERC4626",
@@ -73882,9 +74085,9 @@ ${indent}}` : "}";
73882
74085
  },
73883
74086
  protocols: [Protocols.VESU],
73884
74087
  maxTVL: Web3Number.fromWei(0, 6),
73885
- contractDetails: [],
73886
- faqs: [],
73887
- investmentSteps: []
74088
+ contractDetails: getContractDetails(usdtVaultSettings),
74089
+ faqs: getFAQs(),
74090
+ investmentSteps
73888
74091
  }
73889
74092
  ];
73890
74093
  return __toCommonJS(index_browser_exports);