@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.
@@ -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,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: "A universal strategy for managing USDC assets",
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: "A universal strategy for managing WBTC assets",
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: "A universal strategy for managing ETH assets",
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: "A universal strategy for managing STRK assets",
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: "A universal strategy for managing USDT assets",
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);