@strkfarm/sdk 1.1.23 → 1.1.24

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.
@@ -79484,8 +79484,8 @@ spurious results.`);
79484
79484
  ) / 1e4;
79485
79485
  return apyForGivenBlocks * (365 * 24 * 3600) / timeDiffSeconds;
79486
79486
  }
79487
- async feeBasedAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
79488
- const feeInfo = await this.getFeeHistory("24h");
79487
+ async feeBasedAPY(timeperiod = "24h") {
79488
+ const feeInfo = await this.getFeeHistory(timeperiod);
79489
79489
  const tvlNow = await this.getTVL("latest");
79490
79490
  return feeInfo.summary.usdValue * 365 / tvlNow.usdValue;
79491
79491
  }
@@ -79493,12 +79493,12 @@ spurious results.`);
79493
79493
  * Calculates assets before and now in a given token of TVL per share to observe growth
79494
79494
  * @returns {Promise<number>} The weighted average APY across all pools
79495
79495
  */
79496
- async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
79496
+ async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5, timeperiod = "24h") {
79497
79497
  const isUSDCQouteToken = this.metadata.additionalInfo.quoteAsset.symbol === "USDC";
79498
79498
  if (!isUSDCQouteToken) {
79499
79499
  return this.netSharesBasedTrueAPY(blockIdentifier, sinceBlocks);
79500
79500
  } else {
79501
- return this.feeBasedAPY(blockIdentifier, sinceBlocks);
79501
+ return this.feeBasedAPY(timeperiod);
79502
79502
  }
79503
79503
  }
79504
79504
  async getHarvestRewardShares(fromBlock, toBlock) {
@@ -80515,7 +80515,7 @@ spurious results.`);
80515
80515
  netRisk: highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
80516
80516
  notARisks: getNoRiskTags(highVolatilityPoolRiskFactors)
80517
80517
  };
80518
- var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
80518
+ var AUDIT_URL2 = "https://docs.troves.fi/p/security#ekubo-vault";
80519
80519
  var faqs2 = [
80520
80520
  {
80521
80521
  question: "What is the Ekubo CL Vault strategy?",
@@ -91333,6 +91333,7 @@ spurious results.`);
91333
91333
  "Vault manager reports asset under management (AUM) regularly to the vault",
91334
91334
  "Request withdrawal and vault manager processes it in 1-2 hours"
91335
91335
  ];
91336
+ var AUDIT_URL3 = "https://docs.troves.fi/p/security#starknet-vault-kit";
91336
91337
  var UniversalStrategies = [
91337
91338
  {
91338
91339
  name: "USDC Evergreen",
@@ -91347,6 +91348,7 @@ spurious results.`);
91347
91348
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
91348
91349
  notARisks: getNoRiskTags(_riskFactor3)
91349
91350
  },
91351
+ auditUrl: AUDIT_URL3,
91350
91352
  protocols: [Protocols.VESU],
91351
91353
  maxTVL: Web3Number.fromWei(0, 6),
91352
91354
  contractDetails: getContractDetails(usdcVaultSettings),
@@ -91370,7 +91372,8 @@ spurious results.`);
91370
91372
  maxTVL: Web3Number.fromWei(0, 8),
91371
91373
  contractDetails: getContractDetails(wbtcVaultSettings),
91372
91374
  faqs: getFAQs(),
91373
- investmentSteps
91375
+ investmentSteps,
91376
+ auditUrl: AUDIT_URL3
91374
91377
  },
91375
91378
  {
91376
91379
  name: "ETH Evergreen",
@@ -91389,7 +91392,8 @@ spurious results.`);
91389
91392
  maxTVL: Web3Number.fromWei(0, 18),
91390
91393
  contractDetails: getContractDetails(ethVaultSettings),
91391
91394
  faqs: getFAQs(),
91392
- investmentSteps
91395
+ investmentSteps,
91396
+ auditUrl: AUDIT_URL3
91393
91397
  },
91394
91398
  {
91395
91399
  name: "STRK Evergreen",
@@ -91408,7 +91412,8 @@ spurious results.`);
91408
91412
  maxTVL: Web3Number.fromWei(0, 18),
91409
91413
  contractDetails: getContractDetails(strkVaultSettings),
91410
91414
  faqs: getFAQs(),
91411
- investmentSteps
91415
+ investmentSteps,
91416
+ auditUrl: AUDIT_URL3
91412
91417
  },
91413
91418
  {
91414
91419
  name: "USDT Evergreen",
@@ -91427,7 +91432,8 @@ spurious results.`);
91427
91432
  maxTVL: Web3Number.fromWei(0, 6),
91428
91433
  contractDetails: getContractDetails(usdtVaultSettings),
91429
91434
  faqs: getFAQs(),
91430
- investmentSteps
91435
+ investmentSteps,
91436
+ auditUrl: AUDIT_URL3
91431
91437
  }
91432
91438
  ];
91433
91439
 
@@ -91636,7 +91642,7 @@ spurious results.`);
91636
91642
  return [this.getManageCall(proofsIDs, manageCalls)];
91637
91643
  }
91638
91644
  };
91639
- function VaultDescription() {
91645
+ function VaultDescription(lstSymbol, underlyingSymbol) {
91640
91646
  const containerStyle = {
91641
91647
  maxWidth: "800px",
91642
91648
  margin: "0 auto",
@@ -91646,8 +91652,27 @@ spurious results.`);
91646
91652
  borderRadius: "12px"
91647
91653
  };
91648
91654
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: containerStyle, children: [
91649
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
91650
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: "This Levered Endur LST vault is a tokenized leveraged 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." }),
91655
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: [
91656
+ "Liquidation risk managed leverged ",
91657
+ lstSymbol,
91658
+ " Vault"
91659
+ ] }),
91660
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
91661
+ "This Levered Endur ",
91662
+ lstSymbol,
91663
+ " vault is a tokenized leveraged Vault, auto-compounding strategy that takes upto 5x leverage on ",
91664
+ lstSymbol,
91665
+ " by borrow ",
91666
+ underlyingSymbol,
91667
+ ". Borrowed amount is swapped to ",
91668
+ lstSymbol,
91669
+ " to create leverage. Depositors receive vault shares that represent a proportional claim on the underlying assets and accrued yield."
91670
+ ] }),
91671
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
91672
+ "This vault uses Vesu for lending and borrowing. The oracle used by this pool is a ",
91673
+ highlightTextWithLinks("conversion rate oracle", [{ highlight: "conversion rate oracle", link: "https://docs.pragma.build/starknet/development#conversion-rate" }]),
91674
+ "which is resilient to liquidity issues and price volatility, hence reducing the risk of liquidation. However, overtime, if left un-monitored, debt can increase enough to trigger a liquidation. But no worries, our continuous monitoring systems look for situations with reduced health factor and balance collateral/debt to bring it back to safe levels. With Troves, you can have a peaceful sleep."
91675
+ ] }),
91651
91676
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "13px", color: "#ccc" }, children: [
91652
91677
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("strong", { children: "Withdrawals:" }),
91653
91678
  " Requests can take up to ",
@@ -91656,8 +91681,8 @@ spurious results.`);
91656
91681
  ] }) })
91657
91682
  ] });
91658
91683
  }
91659
- function getDescription2(tokenSymbol) {
91660
- return VaultDescription();
91684
+ function getDescription2(tokenSymbol, underlyingSymbol) {
91685
+ return VaultDescription(tokenSymbol, underlyingSymbol);
91661
91686
  }
91662
91687
  function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
91663
91688
  vaultSettings.leafAdapters = [];
@@ -91698,11 +91723,12 @@ spurious results.`);
91698
91723
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
91699
91724
  return vaultSettings;
91700
91725
  }
91726
+ var AUDIT_URL4 = "https://docs.troves.fi/p/security#starknet-vault-kit";
91701
91727
  function getFAQs2(lstSymbol, underlyingSymbol) {
91702
91728
  return [
91703
91729
  {
91704
91730
  question: `What is the Hyper ${lstSymbol} Vault?`,
91705
- answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${underlyingSymbol} or ${lstSymbol} to create up to 4x leverage to hence yield in a very low risk manner.`
91731
+ answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${lstSymbol} to create up to 5x leverage to hence yield in a very low risk manner.`
91706
91732
  },
91707
91733
  {
91708
91734
  question: "How does yield allocation work?",
@@ -91746,8 +91772,9 @@ spurious results.`);
91746
91772
  }
91747
91773
  var _riskFactor4 = [
91748
91774
  { type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 25, reason: "Audited by Zellic" },
91749
- { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 50, reason: "The collateral and debt are highly correlated" },
91750
- { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 50, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." }
91775
+ { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 25, reason: "The collateral and debt are highly correlated" },
91776
+ { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
91777
+ { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
91751
91778
  ];
91752
91779
  var hyperxSTRK = {
91753
91780
  vaultAddress: ContractAddr.from("0x46c7a54c82b1fe374353859f554a40b8bd31d3e30f742901579e7b57b1b5960"),
@@ -91810,14 +91837,13 @@ spurious results.`);
91810
91837
  `The vault manager loops the ${underlyingSymbol} to buy ${lstSymbol}`,
91811
91838
  `The vault manager collateralizes the ${lstSymbol} on Vesu`,
91812
91839
  `The vault manager borrows more ${underlyingSymbol} to loop further`,
91813
- `Claim BTCFi STRK rewards weekly to swap to ${lstSymbol} and reinvest`,
91814
91840
  `If required, adjust leverage or re-allocate assets within LST pool on Vesu to optimize yield`
91815
91841
  ];
91816
91842
  }
91817
91843
  function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
91818
91844
  return {
91819
91845
  name: `Hyper ${lstSymbol}`,
91820
- description: getDescription2(lstSymbol),
91846
+ description: getDescription2(lstSymbol, underlyingSymbol),
91821
91847
  address: addresses.vaultAddress,
91822
91848
  launchBlock: 0,
91823
91849
  type: "Other",
@@ -91828,6 +91854,7 @@ spurious results.`);
91828
91854
  netRisk: _riskFactor4.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor4.reduce((acc, curr) => acc + curr.weight, 0),
91829
91855
  notARisks: getNoRiskTags(_riskFactor4)
91830
91856
  },
91857
+ auditUrl: AUDIT_URL4,
91831
91858
  protocols: [Protocols.ENDUR, Protocols.VESU],
91832
91859
  maxTVL: Web3Number.fromWei(0, 18),
91833
91860
  contractDetails: getContractDetails(addresses),
@@ -15563,8 +15563,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15563
15563
  ) / 1e4;
15564
15564
  return apyForGivenBlocks * (365 * 24 * 3600) / timeDiffSeconds;
15565
15565
  }
15566
- async feeBasedAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15567
- const feeInfo = await this.getFeeHistory("24h");
15566
+ async feeBasedAPY(timeperiod = "24h") {
15567
+ const feeInfo = await this.getFeeHistory(timeperiod);
15568
15568
  const tvlNow = await this.getTVL("latest");
15569
15569
  return feeInfo.summary.usdValue * 365 / tvlNow.usdValue;
15570
15570
  }
@@ -15572,12 +15572,12 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15572
15572
  * Calculates assets before and now in a given token of TVL per share to observe growth
15573
15573
  * @returns {Promise<number>} The weighted average APY across all pools
15574
15574
  */
15575
- async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15575
+ async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5, timeperiod = "24h") {
15576
15576
  const isUSDCQouteToken = this.metadata.additionalInfo.quoteAsset.symbol === "USDC";
15577
15577
  if (!isUSDCQouteToken) {
15578
15578
  return this.netSharesBasedTrueAPY(blockIdentifier, sinceBlocks);
15579
15579
  } else {
15580
- return this.feeBasedAPY(blockIdentifier, sinceBlocks);
15580
+ return this.feeBasedAPY(timeperiod);
15581
15581
  }
15582
15582
  }
15583
15583
  async getHarvestRewardShares(fromBlock, toBlock) {
@@ -16594,7 +16594,7 @@ var highRisk = {
16594
16594
  netRisk: highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
16595
16595
  notARisks: getNoRiskTags(highVolatilityPoolRiskFactors)
16596
16596
  };
16597
- var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
16597
+ var AUDIT_URL2 = "https://docs.troves.fi/p/security#ekubo-vault";
16598
16598
  var faqs2 = [
16599
16599
  {
16600
16600
  question: "What is the Ekubo CL Vault strategy?",
@@ -27425,6 +27425,7 @@ var investmentSteps = [
27425
27425
  "Vault manager reports asset under management (AUM) regularly to the vault",
27426
27426
  "Request withdrawal and vault manager processes it in 1-2 hours"
27427
27427
  ];
27428
+ var AUDIT_URL3 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27428
27429
  var UniversalStrategies = [
27429
27430
  {
27430
27431
  name: "USDC Evergreen",
@@ -27439,6 +27440,7 @@ var UniversalStrategies = [
27439
27440
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
27440
27441
  notARisks: getNoRiskTags(_riskFactor3)
27441
27442
  },
27443
+ auditUrl: AUDIT_URL3,
27442
27444
  protocols: [Protocols.VESU],
27443
27445
  maxTVL: Web3Number.fromWei(0, 6),
27444
27446
  contractDetails: getContractDetails(usdcVaultSettings),
@@ -27462,7 +27464,8 @@ var UniversalStrategies = [
27462
27464
  maxTVL: Web3Number.fromWei(0, 8),
27463
27465
  contractDetails: getContractDetails(wbtcVaultSettings),
27464
27466
  faqs: getFAQs(),
27465
- investmentSteps
27467
+ investmentSteps,
27468
+ auditUrl: AUDIT_URL3
27466
27469
  },
27467
27470
  {
27468
27471
  name: "ETH Evergreen",
@@ -27481,7 +27484,8 @@ var UniversalStrategies = [
27481
27484
  maxTVL: Web3Number.fromWei(0, 18),
27482
27485
  contractDetails: getContractDetails(ethVaultSettings),
27483
27486
  faqs: getFAQs(),
27484
- investmentSteps
27487
+ investmentSteps,
27488
+ auditUrl: AUDIT_URL3
27485
27489
  },
27486
27490
  {
27487
27491
  name: "STRK Evergreen",
@@ -27500,7 +27504,8 @@ var UniversalStrategies = [
27500
27504
  maxTVL: Web3Number.fromWei(0, 18),
27501
27505
  contractDetails: getContractDetails(strkVaultSettings),
27502
27506
  faqs: getFAQs(),
27503
- investmentSteps
27507
+ investmentSteps,
27508
+ auditUrl: AUDIT_URL3
27504
27509
  },
27505
27510
  {
27506
27511
  name: "USDT Evergreen",
@@ -27519,7 +27524,8 @@ var UniversalStrategies = [
27519
27524
  maxTVL: Web3Number.fromWei(0, 6),
27520
27525
  contractDetails: getContractDetails(usdtVaultSettings),
27521
27526
  faqs: getFAQs(),
27522
- investmentSteps
27527
+ investmentSteps,
27528
+ auditUrl: AUDIT_URL3
27523
27529
  }
27524
27530
  ];
27525
27531
 
@@ -27729,7 +27735,7 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
27729
27735
  return [this.getManageCall(proofsIDs, manageCalls)];
27730
27736
  }
27731
27737
  };
27732
- function VaultDescription() {
27738
+ function VaultDescription(lstSymbol, underlyingSymbol) {
27733
27739
  const containerStyle = {
27734
27740
  maxWidth: "800px",
27735
27741
  margin: "0 auto",
@@ -27739,8 +27745,27 @@ function VaultDescription() {
27739
27745
  borderRadius: "12px"
27740
27746
  };
27741
27747
  return /* @__PURE__ */ jsxs4("div", { style: containerStyle, children: [
27742
- /* @__PURE__ */ jsx5("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
27743
- /* @__PURE__ */ jsx5("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: "This Levered Endur LST vault is a tokenized leveraged 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." }),
27748
+ /* @__PURE__ */ jsxs4("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: [
27749
+ "Liquidation risk managed leverged ",
27750
+ lstSymbol,
27751
+ " Vault"
27752
+ ] }),
27753
+ /* @__PURE__ */ jsxs4("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27754
+ "This Levered Endur ",
27755
+ lstSymbol,
27756
+ " vault is a tokenized leveraged Vault, auto-compounding strategy that takes upto 5x leverage on ",
27757
+ lstSymbol,
27758
+ " by borrow ",
27759
+ underlyingSymbol,
27760
+ ". Borrowed amount is swapped to ",
27761
+ lstSymbol,
27762
+ " to create leverage. Depositors receive vault shares that represent a proportional claim on the underlying assets and accrued yield."
27763
+ ] }),
27764
+ /* @__PURE__ */ jsxs4("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27765
+ "This vault uses Vesu for lending and borrowing. The oracle used by this pool is a ",
27766
+ highlightTextWithLinks("conversion rate oracle", [{ highlight: "conversion rate oracle", link: "https://docs.pragma.build/starknet/development#conversion-rate" }]),
27767
+ "which is resilient to liquidity issues and price volatility, hence reducing the risk of liquidation. However, overtime, if left un-monitored, debt can increase enough to trigger a liquidation. But no worries, our continuous monitoring systems look for situations with reduced health factor and balance collateral/debt to bring it back to safe levels. With Troves, you can have a peaceful sleep."
27768
+ ] }),
27744
27769
  /* @__PURE__ */ jsx5("div", { style: { backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }, children: /* @__PURE__ */ jsxs4("p", { style: { fontSize: "13px", color: "#ccc" }, children: [
27745
27770
  /* @__PURE__ */ jsx5("strong", { children: "Withdrawals:" }),
27746
27771
  " Requests can take up to ",
@@ -27749,8 +27774,8 @@ function VaultDescription() {
27749
27774
  ] }) })
27750
27775
  ] });
27751
27776
  }
27752
- function getDescription2(tokenSymbol) {
27753
- return VaultDescription();
27777
+ function getDescription2(tokenSymbol, underlyingSymbol) {
27778
+ return VaultDescription(tokenSymbol, underlyingSymbol);
27754
27779
  }
27755
27780
  function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27756
27781
  vaultSettings.leafAdapters = [];
@@ -27791,11 +27816,12 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27791
27816
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
27792
27817
  return vaultSettings;
27793
27818
  }
27819
+ var AUDIT_URL4 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27794
27820
  function getFAQs2(lstSymbol, underlyingSymbol) {
27795
27821
  return [
27796
27822
  {
27797
27823
  question: `What is the Hyper ${lstSymbol} Vault?`,
27798
- answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${underlyingSymbol} or ${lstSymbol} to create up to 4x leverage to hence yield in a very low risk manner.`
27824
+ answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${lstSymbol} to create up to 5x leverage to hence yield in a very low risk manner.`
27799
27825
  },
27800
27826
  {
27801
27827
  question: "How does yield allocation work?",
@@ -27839,8 +27865,9 @@ function getFAQs2(lstSymbol, underlyingSymbol) {
27839
27865
  }
27840
27866
  var _riskFactor4 = [
27841
27867
  { type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 25, reason: "Audited by Zellic" },
27842
- { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 50, reason: "The collateral and debt are highly correlated" },
27843
- { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 50, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." }
27868
+ { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 25, reason: "The collateral and debt are highly correlated" },
27869
+ { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
27870
+ { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
27844
27871
  ];
27845
27872
  var hyperxSTRK = {
27846
27873
  vaultAddress: ContractAddr.from("0x46c7a54c82b1fe374353859f554a40b8bd31d3e30f742901579e7b57b1b5960"),
@@ -27903,14 +27930,13 @@ function getInvestmentSteps(lstSymbol, underlyingSymbol) {
27903
27930
  `The vault manager loops the ${underlyingSymbol} to buy ${lstSymbol}`,
27904
27931
  `The vault manager collateralizes the ${lstSymbol} on Vesu`,
27905
27932
  `The vault manager borrows more ${underlyingSymbol} to loop further`,
27906
- `Claim BTCFi STRK rewards weekly to swap to ${lstSymbol} and reinvest`,
27907
27933
  `If required, adjust leverage or re-allocate assets within LST pool on Vesu to optimize yield`
27908
27934
  ];
27909
27935
  }
27910
27936
  function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
27911
27937
  return {
27912
27938
  name: `Hyper ${lstSymbol}`,
27913
- description: getDescription2(lstSymbol),
27939
+ description: getDescription2(lstSymbol, underlyingSymbol),
27914
27940
  address: addresses.vaultAddress,
27915
27941
  launchBlock: 0,
27916
27942
  type: "Other",
@@ -27921,6 +27947,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
27921
27947
  netRisk: _riskFactor4.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor4.reduce((acc, curr) => acc + curr.weight, 0),
27922
27948
  notARisks: getNoRiskTags(_riskFactor4)
27923
27949
  },
27950
+ auditUrl: AUDIT_URL4,
27924
27951
  protocols: [Protocols.ENDUR, Protocols.VESU],
27925
27952
  maxTVL: Web3Number.fromWei(0, 18),
27926
27953
  contractDetails: getContractDetails(addresses),
package/dist/index.d.ts CHANGED
@@ -706,12 +706,12 @@ declare class EkuboCLVault extends BaseStrategy<DualTokenInfo, DualActionAmount>
706
706
  history: FeeHistory[];
707
707
  }>;
708
708
  netSharesBasedTrueAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
709
- feeBasedAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
709
+ feeBasedAPY(timeperiod?: '24h' | '30d' | '3m'): Promise<number>;
710
710
  /**
711
711
  * Calculates assets before and now in a given token of TVL per share to observe growth
712
712
  * @returns {Promise<number>} The weighted average APY across all pools
713
713
  */
714
- netAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number): Promise<number>;
714
+ netAPY(blockIdentifier?: BlockIdentifier, sinceBlocks?: number, timeperiod?: '24h' | '30d' | '3m'): Promise<number>;
715
715
  getHarvestRewardShares(fromBlock: number, toBlock: number): Promise<Web3Number>;
716
716
  balanceOf(user: ContractAddr, blockIdentifier?: BlockIdentifier): Promise<Web3Number>;
717
717
  getUserTVL(user: ContractAddr, blockIdentifier?: BlockIdentifier): Promise<DualTokenInfo>;
package/dist/index.js CHANGED
@@ -15659,8 +15659,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15659
15659
  ) / 1e4;
15660
15660
  return apyForGivenBlocks * (365 * 24 * 3600) / timeDiffSeconds;
15661
15661
  }
15662
- async feeBasedAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15663
- const feeInfo = await this.getFeeHistory("24h");
15662
+ async feeBasedAPY(timeperiod = "24h") {
15663
+ const feeInfo = await this.getFeeHistory(timeperiod);
15664
15664
  const tvlNow = await this.getTVL("latest");
15665
15665
  return feeInfo.summary.usdValue * 365 / tvlNow.usdValue;
15666
15666
  }
@@ -15668,12 +15668,12 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15668
15668
  * Calculates assets before and now in a given token of TVL per share to observe growth
15669
15669
  * @returns {Promise<number>} The weighted average APY across all pools
15670
15670
  */
15671
- async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15671
+ async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5, timeperiod = "24h") {
15672
15672
  const isUSDCQouteToken = this.metadata.additionalInfo.quoteAsset.symbol === "USDC";
15673
15673
  if (!isUSDCQouteToken) {
15674
15674
  return this.netSharesBasedTrueAPY(blockIdentifier, sinceBlocks);
15675
15675
  } else {
15676
- return this.feeBasedAPY(blockIdentifier, sinceBlocks);
15676
+ return this.feeBasedAPY(timeperiod);
15677
15677
  }
15678
15678
  }
15679
15679
  async getHarvestRewardShares(fromBlock, toBlock) {
@@ -16690,7 +16690,7 @@ var highRisk = {
16690
16690
  netRisk: highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
16691
16691
  notARisks: getNoRiskTags(highVolatilityPoolRiskFactors)
16692
16692
  };
16693
- var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
16693
+ var AUDIT_URL2 = "https://docs.troves.fi/p/security#ekubo-vault";
16694
16694
  var faqs2 = [
16695
16695
  {
16696
16696
  question: "What is the Ekubo CL Vault strategy?",
@@ -27521,6 +27521,7 @@ var investmentSteps = [
27521
27521
  "Vault manager reports asset under management (AUM) regularly to the vault",
27522
27522
  "Request withdrawal and vault manager processes it in 1-2 hours"
27523
27523
  ];
27524
+ var AUDIT_URL3 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27524
27525
  var UniversalStrategies = [
27525
27526
  {
27526
27527
  name: "USDC Evergreen",
@@ -27535,6 +27536,7 @@ var UniversalStrategies = [
27535
27536
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
27536
27537
  notARisks: getNoRiskTags(_riskFactor3)
27537
27538
  },
27539
+ auditUrl: AUDIT_URL3,
27538
27540
  protocols: [Protocols.VESU],
27539
27541
  maxTVL: Web3Number.fromWei(0, 6),
27540
27542
  contractDetails: getContractDetails(usdcVaultSettings),
@@ -27558,7 +27560,8 @@ var UniversalStrategies = [
27558
27560
  maxTVL: Web3Number.fromWei(0, 8),
27559
27561
  contractDetails: getContractDetails(wbtcVaultSettings),
27560
27562
  faqs: getFAQs(),
27561
- investmentSteps
27563
+ investmentSteps,
27564
+ auditUrl: AUDIT_URL3
27562
27565
  },
27563
27566
  {
27564
27567
  name: "ETH Evergreen",
@@ -27577,7 +27580,8 @@ var UniversalStrategies = [
27577
27580
  maxTVL: Web3Number.fromWei(0, 18),
27578
27581
  contractDetails: getContractDetails(ethVaultSettings),
27579
27582
  faqs: getFAQs(),
27580
- investmentSteps
27583
+ investmentSteps,
27584
+ auditUrl: AUDIT_URL3
27581
27585
  },
27582
27586
  {
27583
27587
  name: "STRK Evergreen",
@@ -27596,7 +27600,8 @@ var UniversalStrategies = [
27596
27600
  maxTVL: Web3Number.fromWei(0, 18),
27597
27601
  contractDetails: getContractDetails(strkVaultSettings),
27598
27602
  faqs: getFAQs(),
27599
- investmentSteps
27603
+ investmentSteps,
27604
+ auditUrl: AUDIT_URL3
27600
27605
  },
27601
27606
  {
27602
27607
  name: "USDT Evergreen",
@@ -27615,7 +27620,8 @@ var UniversalStrategies = [
27615
27620
  maxTVL: Web3Number.fromWei(0, 6),
27616
27621
  contractDetails: getContractDetails(usdtVaultSettings),
27617
27622
  faqs: getFAQs(),
27618
- investmentSteps
27623
+ investmentSteps,
27624
+ auditUrl: AUDIT_URL3
27619
27625
  }
27620
27626
  ];
27621
27627
 
@@ -27825,7 +27831,7 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
27825
27831
  return [this.getManageCall(proofsIDs, manageCalls)];
27826
27832
  }
27827
27833
  };
27828
- function VaultDescription() {
27834
+ function VaultDescription(lstSymbol, underlyingSymbol) {
27829
27835
  const containerStyle = {
27830
27836
  maxWidth: "800px",
27831
27837
  margin: "0 auto",
@@ -27835,8 +27841,27 @@ function VaultDescription() {
27835
27841
  borderRadius: "12px"
27836
27842
  };
27837
27843
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: containerStyle, children: [
27838
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
27839
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: "This Levered Endur LST vault is a tokenized leveraged 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." }),
27844
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: [
27845
+ "Liquidation risk managed leverged ",
27846
+ lstSymbol,
27847
+ " Vault"
27848
+ ] }),
27849
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27850
+ "This Levered Endur ",
27851
+ lstSymbol,
27852
+ " vault is a tokenized leveraged Vault, auto-compounding strategy that takes upto 5x leverage on ",
27853
+ lstSymbol,
27854
+ " by borrow ",
27855
+ underlyingSymbol,
27856
+ ". Borrowed amount is swapped to ",
27857
+ lstSymbol,
27858
+ " to create leverage. Depositors receive vault shares that represent a proportional claim on the underlying assets and accrued yield."
27859
+ ] }),
27860
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27861
+ "This vault uses Vesu for lending and borrowing. The oracle used by this pool is a ",
27862
+ highlightTextWithLinks("conversion rate oracle", [{ highlight: "conversion rate oracle", link: "https://docs.pragma.build/starknet/development#conversion-rate" }]),
27863
+ "which is resilient to liquidity issues and price volatility, hence reducing the risk of liquidation. However, overtime, if left un-monitored, debt can increase enough to trigger a liquidation. But no worries, our continuous monitoring systems look for situations with reduced health factor and balance collateral/debt to bring it back to safe levels. With Troves, you can have a peaceful sleep."
27864
+ ] }),
27840
27865
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("p", { style: { fontSize: "13px", color: "#ccc" }, children: [
27841
27866
  /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("strong", { children: "Withdrawals:" }),
27842
27867
  " Requests can take up to ",
@@ -27845,8 +27870,8 @@ function VaultDescription() {
27845
27870
  ] }) })
27846
27871
  ] });
27847
27872
  }
27848
- function getDescription2(tokenSymbol) {
27849
- return VaultDescription();
27873
+ function getDescription2(tokenSymbol, underlyingSymbol) {
27874
+ return VaultDescription(tokenSymbol, underlyingSymbol);
27850
27875
  }
27851
27876
  function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27852
27877
  vaultSettings.leafAdapters = [];
@@ -27887,11 +27912,12 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27887
27912
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
27888
27913
  return vaultSettings;
27889
27914
  }
27915
+ var AUDIT_URL4 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27890
27916
  function getFAQs2(lstSymbol, underlyingSymbol) {
27891
27917
  return [
27892
27918
  {
27893
27919
  question: `What is the Hyper ${lstSymbol} Vault?`,
27894
- answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${underlyingSymbol} or ${lstSymbol} to create up to 4x leverage to hence yield in a very low risk manner.`
27920
+ answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${lstSymbol} to create up to 5x leverage to hence yield in a very low risk manner.`
27895
27921
  },
27896
27922
  {
27897
27923
  question: "How does yield allocation work?",
@@ -27935,8 +27961,9 @@ function getFAQs2(lstSymbol, underlyingSymbol) {
27935
27961
  }
27936
27962
  var _riskFactor4 = [
27937
27963
  { type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 25, reason: "Audited by Zellic" },
27938
- { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 50, reason: "The collateral and debt are highly correlated" },
27939
- { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 50, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." }
27964
+ { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 25, reason: "The collateral and debt are highly correlated" },
27965
+ { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
27966
+ { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
27940
27967
  ];
27941
27968
  var hyperxSTRK = {
27942
27969
  vaultAddress: ContractAddr.from("0x46c7a54c82b1fe374353859f554a40b8bd31d3e30f742901579e7b57b1b5960"),
@@ -27999,14 +28026,13 @@ function getInvestmentSteps(lstSymbol, underlyingSymbol) {
27999
28026
  `The vault manager loops the ${underlyingSymbol} to buy ${lstSymbol}`,
28000
28027
  `The vault manager collateralizes the ${lstSymbol} on Vesu`,
28001
28028
  `The vault manager borrows more ${underlyingSymbol} to loop further`,
28002
- `Claim BTCFi STRK rewards weekly to swap to ${lstSymbol} and reinvest`,
28003
28029
  `If required, adjust leverage or re-allocate assets within LST pool on Vesu to optimize yield`
28004
28030
  ];
28005
28031
  }
28006
28032
  function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
28007
28033
  return {
28008
28034
  name: `Hyper ${lstSymbol}`,
28009
- description: getDescription2(lstSymbol),
28035
+ description: getDescription2(lstSymbol, underlyingSymbol),
28010
28036
  address: addresses.vaultAddress,
28011
28037
  launchBlock: 0,
28012
28038
  type: "Other",
@@ -28017,6 +28043,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
28017
28043
  netRisk: _riskFactor4.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor4.reduce((acc, curr) => acc + curr.weight, 0),
28018
28044
  notARisks: getNoRiskTags(_riskFactor4)
28019
28045
  },
28046
+ auditUrl: AUDIT_URL4,
28020
28047
  protocols: [Protocols.ENDUR, Protocols.VESU],
28021
28048
  maxTVL: Web3Number.fromWei(0, 18),
28022
28049
  contractDetails: getContractDetails(addresses),
package/dist/index.mjs CHANGED
@@ -15562,8 +15562,8 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15562
15562
  ) / 1e4;
15563
15563
  return apyForGivenBlocks * (365 * 24 * 3600) / timeDiffSeconds;
15564
15564
  }
15565
- async feeBasedAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15566
- const feeInfo = await this.getFeeHistory("24h");
15565
+ async feeBasedAPY(timeperiod = "24h") {
15566
+ const feeInfo = await this.getFeeHistory(timeperiod);
15567
15567
  const tvlNow = await this.getTVL("latest");
15568
15568
  return feeInfo.summary.usdValue * 365 / tvlNow.usdValue;
15569
15569
  }
@@ -15571,12 +15571,12 @@ var EkuboCLVault = class _EkuboCLVault extends BaseStrategy {
15571
15571
  * Calculates assets before and now in a given token of TVL per share to observe growth
15572
15572
  * @returns {Promise<number>} The weighted average APY across all pools
15573
15573
  */
15574
- async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5) {
15574
+ async netAPY(blockIdentifier = "latest", sinceBlocks = 6e5, timeperiod = "24h") {
15575
15575
  const isUSDCQouteToken = this.metadata.additionalInfo.quoteAsset.symbol === "USDC";
15576
15576
  if (!isUSDCQouteToken) {
15577
15577
  return this.netSharesBasedTrueAPY(blockIdentifier, sinceBlocks);
15578
15578
  } else {
15579
- return this.feeBasedAPY(blockIdentifier, sinceBlocks);
15579
+ return this.feeBasedAPY(timeperiod);
15580
15580
  }
15581
15581
  }
15582
15582
  async getHarvestRewardShares(fromBlock, toBlock) {
@@ -16593,7 +16593,7 @@ var highRisk = {
16593
16593
  netRisk: highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / highVolatilityPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
16594
16594
  notARisks: getNoRiskTags(highVolatilityPoolRiskFactors)
16595
16595
  };
16596
- var AUDIT_URL2 = "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
16596
+ var AUDIT_URL2 = "https://docs.troves.fi/p/security#ekubo-vault";
16597
16597
  var faqs2 = [
16598
16598
  {
16599
16599
  question: "What is the Ekubo CL Vault strategy?",
@@ -27424,6 +27424,7 @@ var investmentSteps = [
27424
27424
  "Vault manager reports asset under management (AUM) regularly to the vault",
27425
27425
  "Request withdrawal and vault manager processes it in 1-2 hours"
27426
27426
  ];
27427
+ var AUDIT_URL3 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27427
27428
  var UniversalStrategies = [
27428
27429
  {
27429
27430
  name: "USDC Evergreen",
@@ -27438,6 +27439,7 @@ var UniversalStrategies = [
27438
27439
  netRisk: _riskFactor3.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor3.reduce((acc, curr) => acc + curr.weight, 0),
27439
27440
  notARisks: getNoRiskTags(_riskFactor3)
27440
27441
  },
27442
+ auditUrl: AUDIT_URL3,
27441
27443
  protocols: [Protocols.VESU],
27442
27444
  maxTVL: Web3Number.fromWei(0, 6),
27443
27445
  contractDetails: getContractDetails(usdcVaultSettings),
@@ -27461,7 +27463,8 @@ var UniversalStrategies = [
27461
27463
  maxTVL: Web3Number.fromWei(0, 8),
27462
27464
  contractDetails: getContractDetails(wbtcVaultSettings),
27463
27465
  faqs: getFAQs(),
27464
- investmentSteps
27466
+ investmentSteps,
27467
+ auditUrl: AUDIT_URL3
27465
27468
  },
27466
27469
  {
27467
27470
  name: "ETH Evergreen",
@@ -27480,7 +27483,8 @@ var UniversalStrategies = [
27480
27483
  maxTVL: Web3Number.fromWei(0, 18),
27481
27484
  contractDetails: getContractDetails(ethVaultSettings),
27482
27485
  faqs: getFAQs(),
27483
- investmentSteps
27486
+ investmentSteps,
27487
+ auditUrl: AUDIT_URL3
27484
27488
  },
27485
27489
  {
27486
27490
  name: "STRK Evergreen",
@@ -27499,7 +27503,8 @@ var UniversalStrategies = [
27499
27503
  maxTVL: Web3Number.fromWei(0, 18),
27500
27504
  contractDetails: getContractDetails(strkVaultSettings),
27501
27505
  faqs: getFAQs(),
27502
- investmentSteps
27506
+ investmentSteps,
27507
+ auditUrl: AUDIT_URL3
27503
27508
  },
27504
27509
  {
27505
27510
  name: "USDT Evergreen",
@@ -27518,7 +27523,8 @@ var UniversalStrategies = [
27518
27523
  maxTVL: Web3Number.fromWei(0, 6),
27519
27524
  contractDetails: getContractDetails(usdtVaultSettings),
27520
27525
  faqs: getFAQs(),
27521
- investmentSteps
27526
+ investmentSteps,
27527
+ auditUrl: AUDIT_URL3
27522
27528
  }
27523
27529
  ];
27524
27530
 
@@ -27728,7 +27734,7 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
27728
27734
  return [this.getManageCall(proofsIDs, manageCalls)];
27729
27735
  }
27730
27736
  };
27731
- function VaultDescription() {
27737
+ function VaultDescription(lstSymbol, underlyingSymbol) {
27732
27738
  const containerStyle = {
27733
27739
  maxWidth: "800px",
27734
27740
  margin: "0 auto",
@@ -27738,8 +27744,27 @@ function VaultDescription() {
27738
27744
  borderRadius: "12px"
27739
27745
  };
27740
27746
  return /* @__PURE__ */ jsxs4("div", { style: containerStyle, children: [
27741
- /* @__PURE__ */ jsx5("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: "Meta Vault \u2014 Automated Yield Router" }),
27742
- /* @__PURE__ */ jsx5("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: "This Levered Endur LST vault is a tokenized leveraged 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." }),
27747
+ /* @__PURE__ */ jsxs4("h1", { style: { fontSize: "18px", marginBottom: "10px" }, children: [
27748
+ "Liquidation risk managed leverged ",
27749
+ lstSymbol,
27750
+ " Vault"
27751
+ ] }),
27752
+ /* @__PURE__ */ jsxs4("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27753
+ "This Levered Endur ",
27754
+ lstSymbol,
27755
+ " vault is a tokenized leveraged Vault, auto-compounding strategy that takes upto 5x leverage on ",
27756
+ lstSymbol,
27757
+ " by borrow ",
27758
+ underlyingSymbol,
27759
+ ". Borrowed amount is swapped to ",
27760
+ lstSymbol,
27761
+ " to create leverage. Depositors receive vault shares that represent a proportional claim on the underlying assets and accrued yield."
27762
+ ] }),
27763
+ /* @__PURE__ */ jsxs4("p", { style: { fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }, children: [
27764
+ "This vault uses Vesu for lending and borrowing. The oracle used by this pool is a ",
27765
+ highlightTextWithLinks("conversion rate oracle", [{ highlight: "conversion rate oracle", link: "https://docs.pragma.build/starknet/development#conversion-rate" }]),
27766
+ "which is resilient to liquidity issues and price volatility, hence reducing the risk of liquidation. However, overtime, if left un-monitored, debt can increase enough to trigger a liquidation. But no worries, our continuous monitoring systems look for situations with reduced health factor and balance collateral/debt to bring it back to safe levels. With Troves, you can have a peaceful sleep."
27767
+ ] }),
27743
27768
  /* @__PURE__ */ jsx5("div", { style: { backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }, children: /* @__PURE__ */ jsxs4("p", { style: { fontSize: "13px", color: "#ccc" }, children: [
27744
27769
  /* @__PURE__ */ jsx5("strong", { children: "Withdrawals:" }),
27745
27770
  " Requests can take up to ",
@@ -27748,8 +27773,8 @@ function VaultDescription() {
27748
27773
  ] }) })
27749
27774
  ] });
27750
27775
  }
27751
- function getDescription2(tokenSymbol) {
27752
- return VaultDescription();
27776
+ function getDescription2(tokenSymbol, underlyingSymbol) {
27777
+ return VaultDescription(tokenSymbol, underlyingSymbol);
27753
27778
  }
27754
27779
  function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27755
27780
  vaultSettings.leafAdapters = [];
@@ -27790,11 +27815,12 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, pool1) {
27790
27815
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */).bind(commonAdapter));
27791
27816
  return vaultSettings;
27792
27817
  }
27818
+ var AUDIT_URL4 = "https://docs.troves.fi/p/security#starknet-vault-kit";
27793
27819
  function getFAQs2(lstSymbol, underlyingSymbol) {
27794
27820
  return [
27795
27821
  {
27796
27822
  question: `What is the Hyper ${lstSymbol} Vault?`,
27797
- answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${underlyingSymbol} or ${lstSymbol} to create up to 4x leverage to hence yield in a very low risk manner.`
27823
+ answer: `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${lstSymbol} to create up to 5x leverage to hence yield in a very low risk manner.`
27798
27824
  },
27799
27825
  {
27800
27826
  question: "How does yield allocation work?",
@@ -27838,8 +27864,9 @@ function getFAQs2(lstSymbol, underlyingSymbol) {
27838
27864
  }
27839
27865
  var _riskFactor4 = [
27840
27866
  { type: "Smart Contract Risk" /* SMART_CONTRACT_RISK */, value: 2 /* WELL_AUDITED */, weight: 25, reason: "Audited by Zellic" },
27841
- { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 50, reason: "The collateral and debt are highly correlated" },
27842
- { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 50, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." }
27867
+ { type: "Liquidation Risk" /* LIQUIDATION_RISK */, value: 1 /* VERY_LOW_PROBABILITY */, weight: 25, reason: "The collateral and debt are highly correlated" },
27868
+ { type: "Technical Risk" /* TECHNICAL_RISK */, value: 1 /* STABLE_INFRASTRUCTURE */, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
27869
+ { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
27843
27870
  ];
27844
27871
  var hyperxSTRK = {
27845
27872
  vaultAddress: ContractAddr.from("0x46c7a54c82b1fe374353859f554a40b8bd31d3e30f742901579e7b57b1b5960"),
@@ -27902,14 +27929,13 @@ function getInvestmentSteps(lstSymbol, underlyingSymbol) {
27902
27929
  `The vault manager loops the ${underlyingSymbol} to buy ${lstSymbol}`,
27903
27930
  `The vault manager collateralizes the ${lstSymbol} on Vesu`,
27904
27931
  `The vault manager borrows more ${underlyingSymbol} to loop further`,
27905
- `Claim BTCFi STRK rewards weekly to swap to ${lstSymbol} and reinvest`,
27906
27932
  `If required, adjust leverage or re-allocate assets within LST pool on Vesu to optimize yield`
27907
27933
  ];
27908
27934
  }
27909
27935
  function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
27910
27936
  return {
27911
27937
  name: `Hyper ${lstSymbol}`,
27912
- description: getDescription2(lstSymbol),
27938
+ description: getDescription2(lstSymbol, underlyingSymbol),
27913
27939
  address: addresses.vaultAddress,
27914
27940
  launchBlock: 0,
27915
27941
  type: "Other",
@@ -27920,6 +27946,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
27920
27946
  netRisk: _riskFactor4.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _riskFactor4.reduce((acc, curr) => acc + curr.weight, 0),
27921
27947
  notARisks: getNoRiskTags(_riskFactor4)
27922
27948
  },
27949
+ auditUrl: AUDIT_URL4,
27923
27950
  protocols: [Protocols.ENDUR, Protocols.VESU],
27924
27951
  maxTVL: Web3Number.fromWei(0, 18),
27925
27952
  contractDetails: getContractDetails(addresses),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "1.1.23",
3
+ "version": "1.1.24",
4
4
  "description": "STRKFarm TS SDK (Meant for our internal use, but feel free to use it)",
5
5
  "typings": "dist/index.d.ts",
6
6
  "types": "dist/index.d.ts",
@@ -449,10 +449,9 @@ export class EkuboCLVault extends BaseStrategy<
449
449
  }
450
450
 
451
451
  async feeBasedAPY(
452
- blockIdentifier: BlockIdentifier = "latest",
453
- sinceBlocks = 600000
452
+ timeperiod: '24h' | '30d' | '3m' = '24h'
454
453
  ): Promise<number> {
455
- const feeInfo = await this.getFeeHistory('24h');
454
+ const feeInfo = await this.getFeeHistory(timeperiod);
456
455
  const tvlNow = await this.getTVL('latest');
457
456
  return feeInfo.summary.usdValue * 365 / tvlNow.usdValue;
458
457
  }
@@ -463,7 +462,8 @@ export class EkuboCLVault extends BaseStrategy<
463
462
  */
464
463
  async netAPY(
465
464
  blockIdentifier: BlockIdentifier = "latest",
466
- sinceBlocks = 600000
465
+ sinceBlocks = 600000,
466
+ timeperiod: '24h' | '30d' | '3m' = '24h' // temp thing for fee based APY
467
467
  ): Promise<number> {
468
468
  const isUSDCQouteToken = this.metadata.additionalInfo.quoteAsset.symbol === "USDC";
469
469
  if (!isUSDCQouteToken) {
@@ -471,7 +471,7 @@ export class EkuboCLVault extends BaseStrategy<
471
471
  return this.netSharesBasedTrueAPY(blockIdentifier, sinceBlocks);
472
472
  } else {
473
473
  // good for non-stables
474
- return this.feeBasedAPY(blockIdentifier, sinceBlocks);
474
+ return this.feeBasedAPY(timeperiod);
475
475
  }
476
476
  }
477
477
 
@@ -1801,7 +1801,7 @@ const highRisk = {
1801
1801
 
1802
1802
 
1803
1803
  const AUDIT_URL =
1804
- "https://assets.troves.fi/strkfarm/audit_report_vesu_and_ekubo_strats.pdf";
1804
+ "https://docs.troves.fi/p/security#ekubo-vault";
1805
1805
 
1806
1806
  const faqs: FAQ[] = [
1807
1807
  {
@@ -1,11 +1,11 @@
1
- import { FAQ, getNoRiskTags, IConfig, IStrategyMetadata, Protocols, RiskFactor, RiskType } from "@/interfaces";
1
+ import { FAQ, getNoRiskTags, highlightTextWithLinks, IConfig, IStrategyMetadata, Protocols, RiskFactor, RiskType } from "@/interfaces";
2
2
  import { AUMTypes, getContractDetails, UNIVERSAL_ADAPTERS, UNIVERSAL_MANAGE_IDS, UniversalManageCall, UniversalStrategy, UniversalStrategySettings } from "./universal-strategy";
3
3
  import { PricerBase } from "@/modules/pricerBase";
4
4
  import { ContractAddr, Web3Number } from "@/dataTypes";
5
5
  import { Global } from "@/global";
6
6
  import { ApproveCallParams, CommonAdapter, getVesuSingletonAddress, ManageCall, Swap, VesuAdapter, VesuModifyDelegationCallParams, VesuMultiplyCallParams, VesuPools } from "./universal-adapters";
7
7
  import { AVNU_MIDDLEWARE } from "./universal-adapters/adapter-utils";
8
- import { LiquidationRiskLevel, SmartContractRiskLevel, TechnicalRiskLevel } from "@/interfaces/risks";
8
+ import { DepegRiskLevel, LiquidationRiskLevel, SmartContractRiskLevel, TechnicalRiskLevel } from "@/interfaces/risks";
9
9
  import { EkuboQuoter, ERC20, PricerLST } from "@/modules";
10
10
  import { assert, logger } from "@/utils";
11
11
  import { SingleTokenInfo } from "./base-strategy";
@@ -293,7 +293,10 @@ export class UniversalLstMultiplierStrategy extends UniversalStrategy<UniversalS
293
293
  }
294
294
  }
295
295
 
296
- export default function VaultDescription() {
296
+ export default function VaultDescription(
297
+ lstSymbol: string,
298
+ underlyingSymbol: string
299
+ ) {
297
300
  const containerStyle = {
298
301
  maxWidth: "800px",
299
302
  margin: "0 auto",
@@ -305,13 +308,16 @@ export default function VaultDescription() {
305
308
 
306
309
  return (
307
310
  <div style={containerStyle}>
308
- <h1 style={{ fontSize: "18px", marginBottom: "10px" }}>Meta Vault Automated Yield Router</h1>
311
+ <h1 style={{ fontSize: "18px", marginBottom: "10px" }}>Liquidation risk managed leverged {lstSymbol} Vault</h1>
312
+ <p style={{ fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }}>
313
+ This Levered Endur {lstSymbol} vault is a tokenized leveraged Vault, auto-compounding strategy that takes upto 5x leverage on {lstSymbol} by borrow {underlyingSymbol}. Borrowed amount
314
+ is swapped to {lstSymbol} to create leverage. Depositors receive vault shares that
315
+ represent a proportional claim on the underlying assets and accrued yield.
316
+ </p>
317
+
309
318
  <p style={{ fontSize: "14px", lineHeight: "1.5", marginBottom: "16px" }}>
310
- This Levered Endur LST vault is a tokenized leveraged Vault, auto-compounding strategy that continuously allocates your deposited
311
- asset to the best available yield source in the ecosystem. Depositors receive vault shares that
312
- represent a proportional claim on the underlying assets and accrued yield. Allocation shifts are
313
- handled programmatically based on on-chain signals and risk filters, minimizing idle capital and
314
- maximizing net APY.
319
+ This vault uses Vesu for lending and borrowing. The oracle used by this pool is a {highlightTextWithLinks("conversion rate oracle", [{highlight: "conversion rate oracle", link: "https://docs.pragma.build/starknet/development#conversion-rate"}])}
320
+ which is resilient to liquidity issues and price volatility, hence reducing the risk of liquidation. However, overtime, if left un-monitored, debt can increase enough to trigger a liquidation. But no worries, our continuous monitoring systems look for situations with reduced health factor and balance collateral/debt to bring it back to safe levels. With Troves, you can have a peaceful sleep.
315
321
  </p>
316
322
 
317
323
  <div style={{ backgroundColor: "#222", padding: "10px", borderRadius: "8px", marginBottom: "20px", border: "1px solid #444" }}>
@@ -324,8 +330,8 @@ export default function VaultDescription() {
324
330
  }
325
331
 
326
332
 
327
- function getDescription(tokenSymbol: string) {
328
- return VaultDescription();
333
+ function getDescription(tokenSymbol: string, underlyingSymbol: string) {
334
+ return VaultDescription(tokenSymbol, underlyingSymbol);
329
335
  }
330
336
 
331
337
  enum LST_MULTIPLIER_MANAGE_IDS {
@@ -393,12 +399,14 @@ function getLooperSettings(
393
399
  return vaultSettings;
394
400
  }
395
401
 
402
+ const AUDIT_URL = 'https://docs.troves.fi/p/security#starknet-vault-kit'
403
+
396
404
  function getFAQs(lstSymbol: string, underlyingSymbol: string): FAQ[] {
397
405
  return [
398
406
  {
399
407
  question: `What is the Hyper ${lstSymbol} Vault?`,
400
408
  answer:
401
- `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${underlyingSymbol} or ${lstSymbol} to create up to 4x leverage to hence yield in a very low risk manner.`,
409
+ `The Hyper ${lstSymbol} Vault is a tokenized strategy that automatically loops your ${lstSymbol} to create up to 5x leverage to hence yield in a very low risk manner.`,
402
410
  },
403
411
  {
404
412
  question: "How does yield allocation work?",
@@ -447,8 +455,9 @@ function getFAQs(lstSymbol: string, underlyingSymbol: string): FAQ[] {
447
455
 
448
456
  const _riskFactor: RiskFactor[] = [
449
457
  { type: RiskType.SMART_CONTRACT_RISK, value: SmartContractRiskLevel.WELL_AUDITED, weight: 25, reason: "Audited by Zellic" },
450
- { type: RiskType.LIQUIDATION_RISK, value: LiquidationRiskLevel.VERY_LOW_PROBABILITY, weight: 50, reason: "The collateral and debt are highly correlated" },
451
- { type: RiskType.TECHNICAL_RISK, value: TechnicalRiskLevel.STABLE_INFRASTRUCTURE, weight: 50, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." }
458
+ { type: RiskType.LIQUIDATION_RISK, value: LiquidationRiskLevel.VERY_LOW_PROBABILITY, weight: 25, reason: "The collateral and debt are highly correlated" },
459
+ { type: RiskType.TECHNICAL_RISK, value: TechnicalRiskLevel.STABLE_INFRASTRUCTURE, weight: 25, reason: "Liquidation can only happen if vault is left un-monitored for weeks, which is highly unlikely. We actively monitor all services on a daily basis." },
460
+ {type: RiskType.DEPEG_RISK, value: DepegRiskLevel.GENERALLY_STABLE, weight: 25, reason: "Generally stable pegged assets" },
452
461
  ];
453
462
 
454
463
  const hyperxSTRK: UniversalStrategySettings = {
@@ -517,7 +526,6 @@ function getInvestmentSteps(lstSymbol: string, underlyingSymbol: string) {
517
526
  `The vault manager loops the ${underlyingSymbol} to buy ${lstSymbol}`,
518
527
  `The vault manager collateralizes the ${lstSymbol} on Vesu`,
519
528
  `The vault manager borrows more ${underlyingSymbol} to loop further`,
520
- `Claim BTCFi STRK rewards weekly to swap to ${lstSymbol} and reinvest`,
521
529
  `If required, adjust leverage or re-allocate assets within LST pool on Vesu to optimize yield`
522
530
  ]
523
531
  }
@@ -525,7 +533,7 @@ function getInvestmentSteps(lstSymbol: string, underlyingSymbol: string) {
525
533
  function getStrategySettings(lstSymbol: string, underlyingSymbol: string, addresses: UniversalStrategySettings, isPreview: boolean = false): IStrategyMetadata<UniversalStrategySettings> {
526
534
  return {
527
535
  name: `Hyper ${lstSymbol}`,
528
- description: getDescription(lstSymbol),
536
+ description: getDescription(lstSymbol, underlyingSymbol),
529
537
  address: addresses.vaultAddress,
530
538
  launchBlock: 0,
531
539
  type: 'Other',
@@ -538,6 +546,7 @@ function getStrategySettings(lstSymbol: string, underlyingSymbol: string, addres
538
546
  _riskFactor.reduce((acc, curr) => acc + curr.weight, 0),
539
547
  notARisks: getNoRiskTags(_riskFactor)
540
548
  },
549
+ auditUrl: AUDIT_URL,
541
550
  protocols: [Protocols.ENDUR, Protocols.VESU],
542
551
  maxTVL: Web3Number.fromWei(0, 18),
543
552
  contractDetails: getContractDetails(addresses),
@@ -1092,6 +1092,8 @@ const investmentSteps: string[] = [
1092
1092
  "Vault manager reports asset under management (AUM) regularly to the vault",
1093
1093
  "Request withdrawal and vault manager processes it in 1-2 hours"
1094
1094
  ]
1095
+
1096
+ const AUDIT_URL = 'https://docs.troves.fi/p/security#starknet-vault-kit'
1095
1097
  export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[] =
1096
1098
  [
1097
1099
  {
@@ -1109,6 +1111,7 @@ export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[]
1109
1111
  _riskFactor.reduce((acc, curr) => acc + curr.weight, 0),
1110
1112
  notARisks: getNoRiskTags(_riskFactor)
1111
1113
  },
1114
+ auditUrl: AUDIT_URL,
1112
1115
  protocols: [Protocols.VESU],
1113
1116
  maxTVL: Web3Number.fromWei(0, 6),
1114
1117
  contractDetails: getContractDetails(usdcVaultSettings),
@@ -1135,6 +1138,7 @@ export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[]
1135
1138
  contractDetails: getContractDetails(wbtcVaultSettings),
1136
1139
  faqs: getFAQs(),
1137
1140
  investmentSteps: investmentSteps,
1141
+ auditUrl: AUDIT_URL,
1138
1142
  },
1139
1143
  {
1140
1144
  name: "ETH Evergreen",
@@ -1156,6 +1160,7 @@ export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[]
1156
1160
  contractDetails: getContractDetails(ethVaultSettings),
1157
1161
  faqs: getFAQs(),
1158
1162
  investmentSteps: investmentSteps,
1163
+ auditUrl: AUDIT_URL,
1159
1164
  },
1160
1165
  {
1161
1166
  name: "STRK Evergreen",
@@ -1177,6 +1182,7 @@ export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[]
1177
1182
  contractDetails: getContractDetails(strkVaultSettings),
1178
1183
  faqs: getFAQs(),
1179
1184
  investmentSteps: investmentSteps,
1185
+ auditUrl: AUDIT_URL,
1180
1186
  },
1181
1187
  {
1182
1188
  name: "USDT Evergreen",
@@ -1198,5 +1204,6 @@ export const UniversalStrategies: IStrategyMetadata<UniversalStrategySettings>[]
1198
1204
  contractDetails: getContractDetails(usdtVaultSettings),
1199
1205
  faqs: getFAQs(),
1200
1206
  investmentSteps: investmentSteps,
1207
+ auditUrl: AUDIT_URL,
1201
1208
  }
1202
1209
  ]