@strkfarm/sdk 2.0.0-staging.34 → 2.0.0-staging.36

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.
@@ -28707,6 +28707,7 @@ ${r2}}` : "}", l2;
28707
28707
  UniversalLstMultiplierStrategy: () => UniversalLstMultiplierStrategy,
28708
28708
  UniversalStrategies: () => UniversalStrategies,
28709
28709
  UniversalStrategy: () => UniversalStrategy,
28710
+ UnwrapLabsCurator: () => UnwrapLabsCurator,
28710
28711
  VESU_SINGLETON: () => VESU_SINGLETON,
28711
28712
  VESU_V2_MODIFY_POSITION_SANITIZER: () => VESU_V2_MODIFY_POSITION_SANITIZER,
28712
28713
  VaultType: () => VaultType,
@@ -90517,6 +90518,10 @@ spurious results.`);
90517
90518
  ENDUR: EndurProtocol,
90518
90519
  EXTENDED: ExtendedProtocol
90519
90520
  };
90521
+ var UnwrapLabsCurator = {
90522
+ name: "Unwrap Labs",
90523
+ logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
90524
+ };
90520
90525
 
90521
90526
  // src/interfaces/initializable.ts
90522
90527
  var Initializable = class {
@@ -98496,10 +98501,7 @@ spurious results.`);
98496
98501
  ],
98497
98502
  protocols: [_protocol],
98498
98503
  auditUrl: AUDIT_URL,
98499
- curator: {
98500
- name: "Unwrap Labs",
98501
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
98502
- },
98504
+ curator: UnwrapLabsCurator,
98503
98505
  settings: createVesuRebalanceSettings(tokenSymbol),
98504
98506
  risk: getVesuRebalanceRisk(),
98505
98507
  additionalInfo: {
@@ -105211,10 +105213,7 @@ spurious results.`);
105211
105213
  ],
105212
105214
  protocols: [_protocol2],
105213
105215
  auditUrl: AUDIT_URL2,
105214
- curator: {
105215
- name: "Unwrap Labs",
105216
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
105217
- },
105216
+ curator: UnwrapLabsCurator,
105218
105217
  risk: {
105219
105218
  riskFactor: _lstPoolRiskFactors,
105220
105219
  netRisk: _lstPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _lstPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
@@ -115744,10 +115743,7 @@ spurious results.`);
115744
115743
  ),
115745
115744
  launchBlock: 1053811,
115746
115745
  type: "Other",
115747
- curator: {
115748
- name: "Unwrap Labs",
115749
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
115750
- },
115746
+ curator: UnwrapLabsCurator,
115751
115747
  vaultType: {
115752
115748
  type: "Looping" /* LOOPING */,
115753
115749
  description: "Creates leveraged looping position on xSTRK by borrowing STRK to increase yield"
@@ -116639,6 +116635,7 @@ spurious results.`);
116639
116635
  ];
116640
116636
 
116641
116637
  // src/strategies/yoloVault.ts
116638
+ var import_react = __toESM(require_react());
116642
116639
  var YoLoVault = class extends BaseStrategy {
116643
116640
  constructor(config3, pricer, metadata) {
116644
116641
  super(config3, {
@@ -116748,6 +116745,32 @@ spurious results.`);
116748
116745
  };
116749
116746
  }
116750
116747
  }
116748
+ async getVaultPositions() {
116749
+ const vaultStatus = await this.getVaultStatus();
116750
+ const {
116751
+ remaining_base: remainingBase,
116752
+ total_second_tokens: totalSecondTokens
116753
+ } = vaultStatus;
116754
+ const primaryTokenAmount = Web3Number.fromWei(remainingBase.toString(), this.primaryToken.decimals);
116755
+ const secondaryTokenAmount = Web3Number.fromWei(totalSecondTokens.toString(), this.secondaryToken.decimals);
116756
+ const [primaryTokenPrice, secondaryTokenPrice] = await Promise.all([
116757
+ this.pricer.getPrice(this.primaryToken.symbol),
116758
+ this.pricer.getPrice(this.secondaryToken.symbol)
116759
+ ]);
116760
+ const primaryTokenUsd = primaryTokenAmount.multipliedBy(primaryTokenPrice.price);
116761
+ const secondaryTokenUsd = secondaryTokenAmount.multipliedBy(secondaryTokenPrice.price);
116762
+ return [{
116763
+ amount: primaryTokenAmount,
116764
+ usdValue: primaryTokenUsd.toNumber(),
116765
+ token: this.primaryToken,
116766
+ remarks: "Remaining deposit tokens in the Vault"
116767
+ }, {
116768
+ amount: secondaryTokenAmount,
116769
+ usdValue: secondaryTokenUsd.toNumber(),
116770
+ token: this.secondaryToken,
116771
+ remarks: "Total swapped tokens in the Vault"
116772
+ }];
116773
+ }
116751
116774
  async getTVL() {
116752
116775
  try {
116753
116776
  const [vaultStatus, primaryTokenPrice, secondaryTokenPrice] = await Promise.all([
@@ -116912,35 +116935,90 @@ spurious results.`);
116912
116935
  }
116913
116936
  return `< ${formatPriceLabel(level.maxPrice)} ${secondaryTokenSymbol}`;
116914
116937
  };
116915
- var getSpendingLevelSummary = (levels, secondaryTokenSymbol) => {
116916
- return levels.map(
116917
- (level) => {
116918
- const minSpendPercent = Math.min(...levels.map((l) => l.spendPercent));
116919
- const multiplier = level.spendPercent / minSpendPercent;
116920
- return `${getLevelRangeLabel(level, secondaryTokenSymbol)} -> ${multiplier.toFixed(2)}x`;
116921
- }
116922
- ).join(" | ");
116938
+ var getSpendingLevelRows = (levels, secondaryTokenSymbol) => {
116939
+ const positiveSpends = levels.map((l) => l.spendPercent).filter((v) => v > 0);
116940
+ const minSpendPercent = positiveSpends.length > 0 ? Math.min(...positiveSpends) : 1;
116941
+ return levels.map((level) => {
116942
+ const multiplier = level.spendPercent > 0 ? level.spendPercent / minSpendPercent : 0;
116943
+ return {
116944
+ range: getLevelRangeLabel(level, secondaryTokenSymbol),
116945
+ multiplier: `${multiplier.toFixed(2)}x`
116946
+ };
116947
+ });
116923
116948
  };
116924
116949
  var getYoloVaultCopy = (input) => {
116925
116950
  const main = input.mainToken.symbol;
116926
116951
  const secondary = input.secondaryToken.symbol;
116927
- const descriptionText = `Troves Value Averaging (TVA) vault for ${main} -> ${secondary} accumulation.
116928
-
116929
- We're all bullish on ${secondary}. Price only dips to hit new ATHs in the next cycle. This vault helps you prep - degen style. After all, YOLO.
116930
-
116931
- Start Date: ${input.startDate}
116932
- Expiry Date: ${input.expiryDate}
116933
- Execution Window: ${input.totalEpochs} epochs, minimum ${formatDurationSeconds(input.minEpochDurationSeconds)} per epoch
116934
- TVA Edge vs DCA: deploys more aggressively into dips and stays measured when prices are high.
116935
- Spend Levels: ${getSpendingLevelSummary(input.spendingLevels, secondary)}
116936
-
116937
- Learn the core value averaging concept.`;
116938
- const description = highlightTextWithLinks(descriptionText, [
116952
+ const spendingRows = getSpendingLevelRows(input.spendingLevels, secondary);
116953
+ const description = (0, import_react.createElement)(
116954
+ "div",
116939
116955
  {
116940
- highlight: "value averaging",
116941
- link: "https://www.investopedia.com/terms/v/value_averaging.asp"
116942
- }
116943
- ]);
116956
+ style: {
116957
+ display: "flex",
116958
+ flexDirection: "column",
116959
+ gap: "12px"
116960
+ }
116961
+ },
116962
+ (0, import_react.createElement)(
116963
+ "p",
116964
+ null,
116965
+ `Troves Value Averaging (TVA) vault for ${main} -> ${secondary} accumulation.`
116966
+ ),
116967
+ (0, import_react.createElement)(
116968
+ "p",
116969
+ null,
116970
+ `We're all bullish on ${secondary}. Price only dips to hit new ATHs in the next cycle. This vault helps you prep - degen style. After all, YOLO.`
116971
+ ),
116972
+ (0, import_react.createElement)("p", null, (0, import_react.createElement)("strong", null, "Start Date: "), input.startDate),
116973
+ (0, import_react.createElement)("p", null, (0, import_react.createElement)("strong", null, "Expiry Date: "), input.expiryDate),
116974
+ (0, import_react.createElement)(
116975
+ "p",
116976
+ null,
116977
+ (0, import_react.createElement)("strong", null, "Execution Window: "),
116978
+ `${input.totalEpochs} epochs, minimum ${formatDurationSeconds(input.minEpochDurationSeconds)} per epoch`
116979
+ ),
116980
+ (0, import_react.createElement)(
116981
+ "p",
116982
+ null,
116983
+ (0, import_react.createElement)("strong", null, "TVA Edge vs DCA: "),
116984
+ "deploys more aggressively into dips and stays measured when prices are high."
116985
+ ),
116986
+ (0, import_react.createElement)("div", null, (0, import_react.createElement)("strong", null, "Spend Levels: ")),
116987
+ (0, import_react.createElement)(
116988
+ "div",
116989
+ {
116990
+ style: {
116991
+ display: "grid",
116992
+ gridTemplateColumns: "2fr 1fr",
116993
+ gap: "4px 12px",
116994
+ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
116995
+ fontSize: "12px",
116996
+ lineHeight: "18px",
116997
+ padding: "8px 10px",
116998
+ borderRadius: "8px",
116999
+ background: "rgba(255,255,255,0.04)"
117000
+ }
117001
+ },
117002
+ (0, import_react.createElement)("strong", { key: "h-range" }, "Range"),
117003
+ (0, import_react.createElement)("strong", { key: "h-mult" }, "Multiplier"),
117004
+ ...spendingRows.flatMap((row, idx) => [
117005
+ (0, import_react.createElement)("span", { key: `r-${idx}` }, row.range),
117006
+ (0, import_react.createElement)("span", { key: `m-${idx}` }, row.multiplier)
117007
+ ])
117008
+ ),
117009
+ (0, import_react.createElement)(
117010
+ "p",
117011
+ null,
117012
+ "Learn the core ",
117013
+ highlightTextWithLinks("value averaging", [
117014
+ {
117015
+ highlight: "value averaging",
117016
+ link: "https://www.investopedia.com/terms/v/value_averaging.asp"
117017
+ }
117018
+ ]),
117019
+ " concept."
117020
+ )
117021
+ );
116944
117022
  const vaultTypeDescription2 = `Troves Value Averaging (TVA) vault to accumulate ${secondary} from ${main} using level-based buying until ${input.expiryDate}.`;
116945
117023
  const faqs3 = [
116946
117024
  {
@@ -116969,7 +117047,7 @@ Learn the core value averaging concept.`;
116969
117047
  },
116970
117048
  {
116971
117049
  question: "What are the fees in this vault?",
116972
- answer: "This Vault has two fees: Swap fee (similar to management fee) and Performance fee. Swap fee covers execution and routing costs each epoch. Performance fee applies only when exits are in profit. If TVL scales, fee reduction or removal is on the table."
117050
+ answer: "This Vault has two fees: Swap fee (0.5%) (similar to management fee) and Performance fee (10%). Swap fee covers execution and routing costs each epoch. Performance fee applies only when exits are in profit. If TVL scales, fee reduction or removal is on the table."
116973
117051
  }
116974
117052
  ];
116975
117053
  const investmentSteps2 = [
@@ -117019,6 +117097,7 @@ Learn the core value averaging concept.`;
117019
117097
  type: "Troves Value Averaging" /* TVA */,
117020
117098
  description: yoloCopy.vaultTypeDescription
117021
117099
  },
117100
+ curator: UnwrapLabsCurator,
117022
117101
  security: {
117023
117102
  auditStatus: "Not Audited" /* NOT_AUDITED */,
117024
117103
  sourceCode: {
@@ -117066,13 +117145,14 @@ Learn the core value averaging concept.`;
117066
117145
  settings: {
117067
117146
  liveStatus: "Hot & New \u{1F525}" /* HOT */,
117068
117147
  isAudited: false,
117069
- quoteToken: btcYoloConfig.mainToken
117148
+ quoteToken: btcYoloConfig.mainToken,
117149
+ isTransactionHistDisabled: true,
117150
+ maxTVL: new Web3Number("200000", 6)
117070
117151
  },
117071
117152
  apyHistoryUIConfig: {
117072
117153
  showApyHistory: false,
117073
117154
  noApyHistoryMessage: "APY history is hidden because this is a TVA accumulation vault, not a yield-bearing APY strategy."
117074
- },
117075
- isPreview: true
117155
+ }
117076
117156
  }
117077
117157
  ];
117078
117158
 
@@ -120506,10 +120586,7 @@ Learn the core value averaging concept.`;
120506
120586
  auditUrl: AUDIT_URL3,
120507
120587
  protocols: [Protocols.VESU],
120508
120588
  realizedApyMethodology: "The realizedAPY is based on past 14 days performance by the vault",
120509
- curator: {
120510
- name: "Unwrap Labs",
120511
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
120512
- },
120589
+ curator: UnwrapLabsCurator,
120513
120590
  settings: createUniversalSettings(params.tokenSymbol, params.maxTVLDecimals),
120514
120591
  contractDetails: getContractDetails(params.vaultSettings),
120515
120592
  faqs: getFAQs(),
@@ -122175,10 +122252,7 @@ Learn the core value averaging concept.`;
122175
122252
  },
122176
122253
  auditUrl: AUDIT_URL4,
122177
122254
  protocols: [Protocols.ENDUR, Protocols.VESU],
122178
- curator: {
122179
- name: "Unwrap Labs",
122180
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
122181
- },
122255
+ curator: UnwrapLabsCurator,
122182
122256
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
122183
122257
  contractDetails: getContractDetails(settings2),
122184
122258
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
@@ -3282,6 +3282,10 @@ var Protocols = {
3282
3282
  ENDUR: EndurProtocol,
3283
3283
  EXTENDED: ExtendedProtocol
3284
3284
  };
3285
+ var UnwrapLabsCurator = {
3286
+ name: "Unwrap Labs",
3287
+ logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
3288
+ };
3285
3289
 
3286
3290
  // src/interfaces/initializable.ts
3287
3291
  var Initializable = class {
@@ -11267,10 +11271,7 @@ var createVesuRebalanceStrategy = (idSymbol, name, tokenSymbol, address) => ({
11267
11271
  ],
11268
11272
  protocols: [_protocol],
11269
11273
  auditUrl: AUDIT_URL,
11270
- curator: {
11271
- name: "Unwrap Labs",
11272
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
11273
- },
11274
+ curator: UnwrapLabsCurator,
11274
11275
  settings: createVesuRebalanceSettings(tokenSymbol),
11275
11276
  risk: getVesuRebalanceRisk(),
11276
11277
  additionalInfo: {
@@ -17993,10 +17994,7 @@ var xSTRKSTRK = {
17993
17994
  ],
17994
17995
  protocols: [_protocol2],
17995
17996
  auditUrl: AUDIT_URL2,
17996
- curator: {
17997
- name: "Unwrap Labs",
17998
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
17999
- },
17997
+ curator: UnwrapLabsCurator,
18000
17998
  risk: {
18001
17999
  riskFactor: _lstPoolRiskFactors,
18002
18000
  netRisk: _lstPoolRiskFactors.reduce((acc, curr) => acc + curr.value * curr.weight, 0) / _lstPoolRiskFactors.reduce((acc, curr) => acc + curr.weight, 0),
@@ -28533,10 +28531,7 @@ var SenseiStrategies = [
28533
28531
  ),
28534
28532
  launchBlock: 1053811,
28535
28533
  type: "Other",
28536
- curator: {
28537
- name: "Unwrap Labs",
28538
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
28539
- },
28534
+ curator: UnwrapLabsCurator,
28540
28535
  vaultType: {
28541
28536
  type: "Looping" /* LOOPING */,
28542
28537
  description: "Creates leveraged looping position on xSTRK by borrowing STRK to increase yield"
@@ -29432,6 +29427,7 @@ var yoloVault_abi_default = [
29432
29427
  ];
29433
29428
 
29434
29429
  // src/strategies/yoloVault.ts
29430
+ import { createElement } from "react";
29435
29431
  var YoLoVault = class extends BaseStrategy {
29436
29432
  constructor(config, pricer, metadata) {
29437
29433
  super(config, {
@@ -29541,6 +29537,32 @@ var YoLoVault = class extends BaseStrategy {
29541
29537
  };
29542
29538
  }
29543
29539
  }
29540
+ async getVaultPositions() {
29541
+ const vaultStatus = await this.getVaultStatus();
29542
+ const {
29543
+ remaining_base: remainingBase,
29544
+ total_second_tokens: totalSecondTokens
29545
+ } = vaultStatus;
29546
+ const primaryTokenAmount = Web3Number.fromWei(remainingBase.toString(), this.primaryToken.decimals);
29547
+ const secondaryTokenAmount = Web3Number.fromWei(totalSecondTokens.toString(), this.secondaryToken.decimals);
29548
+ const [primaryTokenPrice, secondaryTokenPrice] = await Promise.all([
29549
+ this.pricer.getPrice(this.primaryToken.symbol),
29550
+ this.pricer.getPrice(this.secondaryToken.symbol)
29551
+ ]);
29552
+ const primaryTokenUsd = primaryTokenAmount.multipliedBy(primaryTokenPrice.price);
29553
+ const secondaryTokenUsd = secondaryTokenAmount.multipliedBy(secondaryTokenPrice.price);
29554
+ return [{
29555
+ amount: primaryTokenAmount,
29556
+ usdValue: primaryTokenUsd.toNumber(),
29557
+ token: this.primaryToken,
29558
+ remarks: "Remaining deposit tokens in the Vault"
29559
+ }, {
29560
+ amount: secondaryTokenAmount,
29561
+ usdValue: secondaryTokenUsd.toNumber(),
29562
+ token: this.secondaryToken,
29563
+ remarks: "Total swapped tokens in the Vault"
29564
+ }];
29565
+ }
29544
29566
  async getTVL() {
29545
29567
  try {
29546
29568
  const [vaultStatus, primaryTokenPrice, secondaryTokenPrice] = await Promise.all([
@@ -29705,35 +29727,90 @@ var getLevelRangeLabel = (level, secondaryTokenSymbol) => {
29705
29727
  }
29706
29728
  return `< ${formatPriceLabel(level.maxPrice)} ${secondaryTokenSymbol}`;
29707
29729
  };
29708
- var getSpendingLevelSummary = (levels, secondaryTokenSymbol) => {
29709
- return levels.map(
29710
- (level) => {
29711
- const minSpendPercent = Math.min(...levels.map((l) => l.spendPercent));
29712
- const multiplier = level.spendPercent / minSpendPercent;
29713
- return `${getLevelRangeLabel(level, secondaryTokenSymbol)} -> ${multiplier.toFixed(2)}x`;
29714
- }
29715
- ).join(" | ");
29730
+ var getSpendingLevelRows = (levels, secondaryTokenSymbol) => {
29731
+ const positiveSpends = levels.map((l) => l.spendPercent).filter((v) => v > 0);
29732
+ const minSpendPercent = positiveSpends.length > 0 ? Math.min(...positiveSpends) : 1;
29733
+ return levels.map((level) => {
29734
+ const multiplier = level.spendPercent > 0 ? level.spendPercent / minSpendPercent : 0;
29735
+ return {
29736
+ range: getLevelRangeLabel(level, secondaryTokenSymbol),
29737
+ multiplier: `${multiplier.toFixed(2)}x`
29738
+ };
29739
+ });
29716
29740
  };
29717
29741
  var getYoloVaultCopy = (input) => {
29718
29742
  const main = input.mainToken.symbol;
29719
29743
  const secondary = input.secondaryToken.symbol;
29720
- const descriptionText = `Troves Value Averaging (TVA) vault for ${main} -> ${secondary} accumulation.
29721
-
29722
- We're all bullish on ${secondary}. Price only dips to hit new ATHs in the next cycle. This vault helps you prep - degen style. After all, YOLO.
29723
-
29724
- Start Date: ${input.startDate}
29725
- Expiry Date: ${input.expiryDate}
29726
- Execution Window: ${input.totalEpochs} epochs, minimum ${formatDurationSeconds(input.minEpochDurationSeconds)} per epoch
29727
- TVA Edge vs DCA: deploys more aggressively into dips and stays measured when prices are high.
29728
- Spend Levels: ${getSpendingLevelSummary(input.spendingLevels, secondary)}
29729
-
29730
- Learn the core value averaging concept.`;
29731
- const description = highlightTextWithLinks(descriptionText, [
29744
+ const spendingRows = getSpendingLevelRows(input.spendingLevels, secondary);
29745
+ const description = createElement(
29746
+ "div",
29732
29747
  {
29733
- highlight: "value averaging",
29734
- link: "https://www.investopedia.com/terms/v/value_averaging.asp"
29735
- }
29736
- ]);
29748
+ style: {
29749
+ display: "flex",
29750
+ flexDirection: "column",
29751
+ gap: "12px"
29752
+ }
29753
+ },
29754
+ createElement(
29755
+ "p",
29756
+ null,
29757
+ `Troves Value Averaging (TVA) vault for ${main} -> ${secondary} accumulation.`
29758
+ ),
29759
+ createElement(
29760
+ "p",
29761
+ null,
29762
+ `We're all bullish on ${secondary}. Price only dips to hit new ATHs in the next cycle. This vault helps you prep - degen style. After all, YOLO.`
29763
+ ),
29764
+ createElement("p", null, createElement("strong", null, "Start Date: "), input.startDate),
29765
+ createElement("p", null, createElement("strong", null, "Expiry Date: "), input.expiryDate),
29766
+ createElement(
29767
+ "p",
29768
+ null,
29769
+ createElement("strong", null, "Execution Window: "),
29770
+ `${input.totalEpochs} epochs, minimum ${formatDurationSeconds(input.minEpochDurationSeconds)} per epoch`
29771
+ ),
29772
+ createElement(
29773
+ "p",
29774
+ null,
29775
+ createElement("strong", null, "TVA Edge vs DCA: "),
29776
+ "deploys more aggressively into dips and stays measured when prices are high."
29777
+ ),
29778
+ createElement("div", null, createElement("strong", null, "Spend Levels: ")),
29779
+ createElement(
29780
+ "div",
29781
+ {
29782
+ style: {
29783
+ display: "grid",
29784
+ gridTemplateColumns: "2fr 1fr",
29785
+ gap: "4px 12px",
29786
+ fontFamily: "ui-monospace, SFMono-Regular, Menlo, monospace",
29787
+ fontSize: "12px",
29788
+ lineHeight: "18px",
29789
+ padding: "8px 10px",
29790
+ borderRadius: "8px",
29791
+ background: "rgba(255,255,255,0.04)"
29792
+ }
29793
+ },
29794
+ createElement("strong", { key: "h-range" }, "Range"),
29795
+ createElement("strong", { key: "h-mult" }, "Multiplier"),
29796
+ ...spendingRows.flatMap((row, idx) => [
29797
+ createElement("span", { key: `r-${idx}` }, row.range),
29798
+ createElement("span", { key: `m-${idx}` }, row.multiplier)
29799
+ ])
29800
+ ),
29801
+ createElement(
29802
+ "p",
29803
+ null,
29804
+ "Learn the core ",
29805
+ highlightTextWithLinks("value averaging", [
29806
+ {
29807
+ highlight: "value averaging",
29808
+ link: "https://www.investopedia.com/terms/v/value_averaging.asp"
29809
+ }
29810
+ ]),
29811
+ " concept."
29812
+ )
29813
+ );
29737
29814
  const vaultTypeDescription2 = `Troves Value Averaging (TVA) vault to accumulate ${secondary} from ${main} using level-based buying until ${input.expiryDate}.`;
29738
29815
  const faqs3 = [
29739
29816
  {
@@ -29762,7 +29839,7 @@ Learn the core value averaging concept.`;
29762
29839
  },
29763
29840
  {
29764
29841
  question: "What are the fees in this vault?",
29765
- answer: "This Vault has two fees: Swap fee (similar to management fee) and Performance fee. Swap fee covers execution and routing costs each epoch. Performance fee applies only when exits are in profit. If TVL scales, fee reduction or removal is on the table."
29842
+ answer: "This Vault has two fees: Swap fee (0.5%) (similar to management fee) and Performance fee (10%). Swap fee covers execution and routing costs each epoch. Performance fee applies only when exits are in profit. If TVL scales, fee reduction or removal is on the table."
29766
29843
  }
29767
29844
  ];
29768
29845
  const investmentSteps2 = [
@@ -29812,6 +29889,7 @@ var YoloVaultStrategies = [
29812
29889
  type: "Troves Value Averaging" /* TVA */,
29813
29890
  description: yoloCopy.vaultTypeDescription
29814
29891
  },
29892
+ curator: UnwrapLabsCurator,
29815
29893
  security: {
29816
29894
  auditStatus: "Not Audited" /* NOT_AUDITED */,
29817
29895
  sourceCode: {
@@ -29859,13 +29937,14 @@ var YoloVaultStrategies = [
29859
29937
  settings: {
29860
29938
  liveStatus: "Hot & New \u{1F525}" /* HOT */,
29861
29939
  isAudited: false,
29862
- quoteToken: btcYoloConfig.mainToken
29940
+ quoteToken: btcYoloConfig.mainToken,
29941
+ isTransactionHistDisabled: true,
29942
+ maxTVL: new Web3Number("200000", 6)
29863
29943
  },
29864
29944
  apyHistoryUIConfig: {
29865
29945
  showApyHistory: false,
29866
29946
  noApyHistoryMessage: "APY history is hidden because this is a TVA accumulation vault, not a yield-bearing APY strategy."
29867
- },
29868
- isPreview: true
29947
+ }
29869
29948
  }
29870
29949
  ];
29871
29950
 
@@ -33303,10 +33382,7 @@ var createUniversalStrategy = (params) => {
33303
33382
  auditUrl: AUDIT_URL3,
33304
33383
  protocols: [Protocols.VESU],
33305
33384
  realizedApyMethodology: "The realizedAPY is based on past 14 days performance by the vault",
33306
- curator: {
33307
- name: "Unwrap Labs",
33308
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
33309
- },
33385
+ curator: UnwrapLabsCurator,
33310
33386
  settings: createUniversalSettings(params.tokenSymbol, params.maxTVLDecimals),
33311
33387
  contractDetails: getContractDetails(params.vaultSettings),
33312
33388
  faqs: getFAQs(),
@@ -34975,10 +35051,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview =
34975
35051
  },
34976
35052
  auditUrl: AUDIT_URL4,
34977
35053
  protocols: [Protocols.ENDUR, Protocols.VESU],
34978
- curator: {
34979
- name: "Unwrap Labs",
34980
- logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
34981
- },
35054
+ curator: UnwrapLabsCurator,
34982
35055
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
34983
35056
  contractDetails: getContractDetails(settings),
34984
35057
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
@@ -35295,6 +35368,7 @@ export {
35295
35368
  UniversalLstMultiplierStrategy,
35296
35369
  UniversalStrategies,
35297
35370
  UniversalStrategy,
35371
+ UnwrapLabsCurator,
35298
35372
  VESU_SINGLETON,
35299
35373
  VESU_V2_MODIFY_POSITION_SANITIZER,
35300
35374
  VaultType,
package/dist/index.d.ts CHANGED
@@ -125,6 +125,10 @@ interface IProtocol {
125
125
  name: string;
126
126
  logo: string;
127
127
  }
128
+ interface ICurator {
129
+ name: string;
130
+ logo: string;
131
+ }
128
132
  declare enum StrategyTag {
129
133
  META_VAULT = "Meta Vaults",
130
134
  LEVERED = "Maxx",
@@ -260,10 +264,7 @@ interface IStrategyMetadata<T> {
260
264
  }[];
261
265
  docs?: string;
262
266
  investmentSteps: string[];
263
- curator?: {
264
- name: string;
265
- logo: string;
266
- };
267
+ curator?: ICurator;
267
268
  isPreview?: boolean;
268
269
  tags?: StrategyTag[];
269
270
  security: SecurityMetadata;
@@ -350,6 +351,7 @@ declare const Protocols: {
350
351
  ENDUR: IProtocol;
351
352
  EXTENDED: IProtocol;
352
353
  };
354
+ declare const UnwrapLabsCurator: ICurator;
353
355
 
354
356
  interface ILendingMetadata {
355
357
  name: string;
@@ -1241,6 +1243,7 @@ declare class YoLoVault extends BaseStrategy<DualTokenInfo, SingleActionAmount,
1241
1243
  private getNormalizedUserInfo;
1242
1244
  private resolveWithdrawRequest;
1243
1245
  getUserTVL(user: ContractAddr): Promise<DualTokenInfo>;
1246
+ getVaultPositions(): Promise<VaultPosition[]>;
1244
1247
  getTVL(): Promise<DualTokenInfo>;
1245
1248
  depositCall(amountInfo: SingleActionAmount, receiver: ContractAddr): Promise<Call[]>;
1246
1249
  getVaultStatus(): Promise<YoloVaultStatus>;
@@ -2303,4 +2306,4 @@ declare class PasswordJsonCryptoUtil {
2303
2306
  decrypt(encryptedData: string, password: string): any;
2304
2307
  }
2305
2308
 
2306
- export { APYType, AUMTypes, AVNU_EXCHANGE, AVNU_MIDDLEWARE, type AccessControlInfo, AccessControlType, type AccountInfo, type AdapterLeafType, type AllAccountsStore, type AmountInfo, type AmountsInfo, type ApproveCallParams, AuditStatus, AutoCompounderSTRK, type AvnuSwapCallParams, AvnuWrapper, BaseAdapter, type BaseAdapterConfig, BaseStrategy, type CLVaultStrategySettings, CommonAdapter, type CommonAdapterConfig, ContractAddr, type DecreaseLeverParams, Deployer, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, type EkuboQuote, EkuboQuoter, type EkuboRouteNode, type EkuboSplit, type FAQ, FactoryStrategyType, FatalError, type FilterOption, type FlashloanCallParams, FlowChartColors, type GenerateCallFn, Global, HyperLSTStrategies, type HyperLSTStrategySettings, type IConfig, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, type IncreaseLeverParams, Initializable, type InputModeFromAction, InstantWithdrawalVault, LSTAPRService, LSTPriceType, type LSTStats, type LeafAdapterFn, type LeafData, type LendingToken, type ManageCall, MarginType, MyNumber, type NetAPYDetails, type NetAPYSplit, Network, PRICE_ROUTER, PasswordJsonCryptoUtil, type PositionAPY, type PositionInfo, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerLST, PricerRedis, Protocols, type RedemptionInfo, type RequiredFields, type RequiredKeys, type RequiredStoreConfig, type RiskFactor, RiskType, type Route, type RouteNode, SIMPLE_SANITIZER, SIMPLE_SANITIZER_V2, SIMPLE_SANITIZER_VESU_V1_DELEGATIONS, type SecurityMetadata, SenseiStrategies, SenseiVault, type SenseiVaultSettings, type SingleActionAmount, type SingleTokenInfo, type SourceCodeInfo, SourceCodeType, StandardMerkleTree, type StandardMerkleTreeData, Store, type StoreConfig, type StrategyAlert, type StrategyApyHistoryUIConfig, type StrategyCapabilities, type StrategyFilterMetadata, type StrategyInputMode, StrategyLiveStatus, type StrategyMetadata, type StrategyRegistryEntry, type StrategySettings, StrategyTag, StrategyType, type SupportedPosition, type Swap, type SwapInfo, TelegramGroupNotif, TelegramNotif, type TokenAmount, type TokenInfo, UNIVERSAL_ADAPTERS, UNIVERSAL_MANAGE_IDS, UniversalLstMultiplierStrategy, type UniversalManageCall, UniversalStrategies, UniversalStrategy, type UniversalStrategySettings, type UserYoloInfo, VESU_SINGLETON, VESU_V2_MODIFY_POSITION_SANITIZER, type VaultPosition, VaultType, VesuAdapter, type VesuAdapterConfig, type VesuAmount, VesuAmountDenomination, VesuAmountType, type VesuDefiSpringRewardsCallParams, type VesuModifyDelegationCallParams, type VesuModifyPositionCallParams, type VesuMultiplyCallParams, VesuPoolMetadata, VesuPools, VesuRebalance, type VesuRebalanceSettings, VesuRebalanceStrategies, Web3Number, YoLoVault, type YoloSettings, type YoloSpendingLevel, type YoloVaultSettings, type YoloVaultStatus, YoloVaultStrategies, ZkLend, assert, buildStrategyRegistry, createEkuboCLStrategy, createHyperLSTStrategy, createSenseiStrategy, createStrategy, createUniversalStrategy, createVesuRebalanceStrategy, createYoloVaultStrategy, detectCapabilities, extensionMap, getAPIUsingHeadlessBrowser, getAllStrategyMetadata, getAllStrategyTags, getContractDetails, getDefaultStoreConfig, getFilterMetadata, getLiveStrategies, getMainnetConfig, getNoRiskTags, getRiskColor, getRiskExplaination, getStrategiesByType, getStrategyTagDesciption, getStrategyTypeFromMetadata, getTrovesEndpoint, getVesuSingletonAddress, highlightTextWithLinks, type i257, isDualTokenStrategy, logger, toAmountsInfo, toBigInt };
2309
+ export { APYType, AUMTypes, AVNU_EXCHANGE, AVNU_MIDDLEWARE, type AccessControlInfo, AccessControlType, type AccountInfo, type AdapterLeafType, type AllAccountsStore, type AmountInfo, type AmountsInfo, type ApproveCallParams, AuditStatus, AutoCompounderSTRK, type AvnuSwapCallParams, AvnuWrapper, BaseAdapter, type BaseAdapterConfig, BaseStrategy, type CLVaultStrategySettings, CommonAdapter, type CommonAdapterConfig, ContractAddr, type DecreaseLeverParams, Deployer, type DualActionAmount, type DualTokenInfo, ERC20, type EkuboBounds, EkuboCLVault, EkuboCLVaultStrategies, type EkuboPoolKey, type EkuboQuote, EkuboQuoter, type EkuboRouteNode, type EkuboSplit, type FAQ, FactoryStrategyType, FatalError, type FilterOption, type FlashloanCallParams, FlowChartColors, type GenerateCallFn, Global, HyperLSTStrategies, type HyperLSTStrategySettings, type IConfig, type ICurator, type IInvestmentFlow, ILending, type ILendingMetadata, type ILendingPosition, type IProtocol, type IStrategyMetadata, type IncreaseLeverParams, Initializable, type InputModeFromAction, InstantWithdrawalVault, LSTAPRService, LSTPriceType, type LSTStats, type LeafAdapterFn, type LeafData, type LendingToken, type ManageCall, MarginType, MyNumber, type NetAPYDetails, type NetAPYSplit, Network, PRICE_ROUTER, PasswordJsonCryptoUtil, type PositionAPY, type PositionInfo, Pragma, type PriceInfo, Pricer, PricerFromApi, PricerLST, PricerRedis, Protocols, type RedemptionInfo, type RequiredFields, type RequiredKeys, type RequiredStoreConfig, type RiskFactor, RiskType, type Route, type RouteNode, SIMPLE_SANITIZER, SIMPLE_SANITIZER_V2, SIMPLE_SANITIZER_VESU_V1_DELEGATIONS, type SecurityMetadata, SenseiStrategies, SenseiVault, type SenseiVaultSettings, type SingleActionAmount, type SingleTokenInfo, type SourceCodeInfo, SourceCodeType, StandardMerkleTree, type StandardMerkleTreeData, Store, type StoreConfig, type StrategyAlert, type StrategyApyHistoryUIConfig, type StrategyCapabilities, type StrategyFilterMetadata, type StrategyInputMode, StrategyLiveStatus, type StrategyMetadata, type StrategyRegistryEntry, type StrategySettings, StrategyTag, StrategyType, type SupportedPosition, type Swap, type SwapInfo, TelegramGroupNotif, TelegramNotif, type TokenAmount, type TokenInfo, UNIVERSAL_ADAPTERS, UNIVERSAL_MANAGE_IDS, UniversalLstMultiplierStrategy, type UniversalManageCall, UniversalStrategies, UniversalStrategy, type UniversalStrategySettings, UnwrapLabsCurator, type UserYoloInfo, VESU_SINGLETON, VESU_V2_MODIFY_POSITION_SANITIZER, type VaultPosition, VaultType, VesuAdapter, type VesuAdapterConfig, type VesuAmount, VesuAmountDenomination, VesuAmountType, type VesuDefiSpringRewardsCallParams, type VesuModifyDelegationCallParams, type VesuModifyPositionCallParams, type VesuMultiplyCallParams, VesuPoolMetadata, VesuPools, VesuRebalance, type VesuRebalanceSettings, VesuRebalanceStrategies, Web3Number, YoLoVault, type YoloSettings, type YoloSpendingLevel, type YoloVaultSettings, type YoloVaultStatus, YoloVaultStrategies, ZkLend, assert, buildStrategyRegistry, createEkuboCLStrategy, createHyperLSTStrategy, createSenseiStrategy, createStrategy, createUniversalStrategy, createVesuRebalanceStrategy, createYoloVaultStrategy, detectCapabilities, extensionMap, getAPIUsingHeadlessBrowser, getAllStrategyMetadata, getAllStrategyTags, getContractDetails, getDefaultStoreConfig, getFilterMetadata, getLiveStrategies, getMainnetConfig, getNoRiskTags, getRiskColor, getRiskExplaination, getStrategiesByType, getStrategyTagDesciption, getStrategyTypeFromMetadata, getTrovesEndpoint, getVesuSingletonAddress, highlightTextWithLinks, type i257, isDualTokenStrategy, logger, toAmountsInfo, toBigInt };