@strkfarm/sdk 2.0.0-staging.15 → 2.0.0-staging.18

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.
@@ -27962,6 +27962,7 @@ ${JSON.stringify(data, null, 2)}`;
27962
27962
  VesuAdapter: () => VesuAdapter,
27963
27963
  VesuAmountDenomination: () => VesuAmountDenomination,
27964
27964
  VesuAmountType: () => VesuAmountType,
27965
+ VesuPoolMetadata: () => VesuPoolMetadata,
27965
27966
  VesuPools: () => VesuPools,
27966
27967
  VesuRebalance: () => VesuRebalance,
27967
27968
  VesuRebalanceStrategies: () => VesuRebalanceStrategies,
@@ -98601,7 +98602,9 @@ spurious results.`);
98601
98602
  investmentSteps: [],
98602
98603
  tags: [],
98603
98604
  security: VESU_SECURITY,
98604
- redemptionInfo: VESU_REDEMPTION_INFO
98605
+ redemptionInfo: VESU_REDEMPTION_INFO,
98606
+ usualTimeToEarnings: null,
98607
+ usualTimeToEarningsDescription: null
98605
98608
  });
98606
98609
  var VESU_SECURITY = {
98607
98610
  auditStatus: "Audited" /* AUDITED */,
@@ -105367,7 +105370,9 @@ spurious results.`);
105367
105370
  instantWithdrawalVault: "Yes" /* YES */,
105368
105371
  redemptionsInfo: [],
105369
105372
  alerts: []
105370
- }
105373
+ },
105374
+ usualTimeToEarnings: null,
105375
+ usualTimeToEarningsDescription: null
105371
105376
  };
105372
105377
  var getLSTAlerts = () => [
105373
105378
  {
@@ -114883,7 +114888,25 @@ spurious results.`);
114883
114888
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
114884
114889
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
114885
114890
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
114886
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
114891
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
114892
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
114893
+ };
114894
+ var VesuPoolMetadata = {
114895
+ [VesuPools.Genesis.address]: {
114896
+ name: "Genesis"
114897
+ },
114898
+ [VesuPools.Re7xSTRK.address]: {
114899
+ name: "Re7 xSTRK"
114900
+ },
114901
+ [VesuPools.Re7xBTC.address]: {
114902
+ name: "Re7 xBTC"
114903
+ },
114904
+ [VesuPools.Prime.address]: {
114905
+ name: "Prime"
114906
+ },
114907
+ [VesuPools.Re7STRK.address]: {
114908
+ name: "Re7 STRK"
114909
+ }
114887
114910
  };
114888
114911
  var extensionMap = {};
114889
114912
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -115268,12 +115291,12 @@ spurious results.`);
115268
115291
  amount: collateralAmount,
115269
115292
  token: this.config.collateral,
115270
115293
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
115271
- remarks: "Collateral"
115294
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
115272
115295
  }, {
115273
115296
  amount: debtAmount,
115274
115297
  token: this.config.debt,
115275
115298
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
115276
- remarks: "Debt"
115299
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
115277
115300
  }];
115278
115301
  this.setCache(CACHE_KEY, value, 6e4);
115279
115302
  return value;
@@ -115843,6 +115866,8 @@ spurious results.`);
115843
115866
  redemptionsInfo: [],
115844
115867
  alerts: []
115845
115868
  },
115869
+ usualTimeToEarnings: "2 weeks",
115870
+ usualTimeToEarningsDescription: "Strategy returns depend on LST price on DEXes. Even though the true price of LST on Endur increases continuously, the DEX price may lag sometimes, and historically is seen to rebase at least once every 2 hours. This is when you realise your earnings.",
115846
115871
  points: [{
115847
115872
  multiplier: 4,
115848
115873
  logo: "https://endur.fi/favicon.ico",
@@ -119235,7 +119260,7 @@ spurious results.`);
119235
119260
  var EVERGREEN_REDEMPTION_INFO = {
119236
119261
  instantWithdrawalVault: "No" /* NO */,
119237
119262
  redemptionsInfo: [{
119238
- title: "Usual time",
119263
+ title: "Typical Duration",
119239
119264
  description: "1-2 hours"
119240
119265
  }],
119241
119266
  alerts: [{
@@ -119278,7 +119303,9 @@ spurious results.`);
119278
119303
  investmentSteps,
119279
119304
  tags: params.tags,
119280
119305
  security: EVERGREEN_SECURITY,
119281
- redemptionInfo: EVERGREEN_REDEMPTION_INFO
119306
+ redemptionInfo: EVERGREEN_REDEMPTION_INFO,
119307
+ usualTimeToEarnings: null,
119308
+ usualTimeToEarningsDescription: null
119282
119309
  });
119283
119310
  var UniversalStrategies = [
119284
119311
  createUniversalStrategy({
@@ -119398,20 +119425,19 @@ spurious results.`);
119398
119425
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
119399
119426
  getVesuAdapters() {
119400
119427
  const adapters = [];
119401
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
119402
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
119403
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
119404
- const vesuAdapter1 = new VesuAdapter({
119405
- poolId: baseAdapter.config.poolId,
119406
- collateral: this.asset(),
119407
- debt: asset,
119408
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
119409
- id: ""
119410
- });
119411
- vesuAdapter1.pricer = this.pricer;
119412
- vesuAdapter1.networkConfig = this.config;
119413
- adapters.push(vesuAdapter1);
119414
- }
119428
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
119429
+ const asset = borrowableInfo.token;
119430
+ const poolId = borrowableInfo.poolId;
119431
+ const vesuAdapter1 = new VesuAdapter({
119432
+ poolId,
119433
+ collateral: this.asset(),
119434
+ debt: asset,
119435
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
119436
+ id: ""
119437
+ });
119438
+ vesuAdapter1.pricer = this.pricer;
119439
+ vesuAdapter1.networkConfig = this.config;
119440
+ adapters.push(vesuAdapter1);
119415
119441
  }
119416
119442
  return adapters;
119417
119443
  }
@@ -120037,7 +120063,7 @@ spurious results.`);
120037
120063
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
120038
120064
  adapter: vesuAdapterLST
120039
120065
  }]);
120040
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
120066
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
120041
120067
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
120042
120068
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
120043
120069
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
@@ -120047,9 +120073,11 @@ spurious results.`);
120047
120073
  vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
120048
120074
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
120049
120075
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
120076
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
120077
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
120050
120078
  return vesuAdapterLST;
120051
120079
  }
120052
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
120080
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
120053
120081
  vaultSettings.leafAdapters = [];
120054
120082
  const pool1 = vaultSettings.defaultPoolId;
120055
120083
  if (!pool1.eq(defaultPoolId)) {
@@ -120068,10 +120096,11 @@ spurious results.`);
120068
120096
  id: "common_adapter" /* COMMON */,
120069
120097
  adapter: commonAdapter
120070
120098
  }]);
120071
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
120072
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
120099
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
120073
120100
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
120074
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
120101
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
120102
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
120103
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
120075
120104
  const debtAsset = borrowableAsset;
120076
120105
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
120077
120106
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -120079,23 +120108,9 @@ spurious results.`);
120079
120108
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
120080
120109
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
120081
120110
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
120082
- const vesuAdapter = new VesuAdapter({
120083
- poolId: pool1,
120084
- collateral: lstToken,
120085
- debt: debtAsset,
120086
- vaultAllocator: vaultSettings.vaultAllocator,
120087
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
120088
- });
120089
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
120090
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
120091
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
120092
- if (borrowableAsset.address.eq(underlyingToken.address)) {
120093
- continue;
120094
- }
120095
120111
  }
120096
120112
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
120097
120113
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
120098
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
120099
120114
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
120100
120115
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
120101
120116
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -120154,7 +120169,7 @@ spurious results.`);
120154
120169
  { 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." },
120155
120170
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
120156
120171
  ];
120157
- var borrowableAssets = [
120172
+ var btcBorrowableAssets = [
120158
120173
  "WBTC",
120159
120174
  "tBTC",
120160
120175
  "LBTC",
@@ -120170,10 +120185,12 @@ spurious results.`);
120170
120185
  adapters: [],
120171
120186
  targetHealthFactor: 1.1,
120172
120187
  minHealthFactor: 1.05,
120173
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
120188
+ borrowable_assets: [
120189
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
120190
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime }))
120191
+ ],
120174
120192
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
120175
- defaultPoolId: VesuPools.Re7xSTRK,
120176
- altSupportedPoolIds: [VesuPools.Prime]
120193
+ defaultPoolId: VesuPools.Re7xSTRK
120177
120194
  };
120178
120195
  var hyperxWBTC = {
120179
120196
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -120185,10 +120202,14 @@ spurious results.`);
120185
120202
  adapters: [],
120186
120203
  targetHealthFactor: 1.1,
120187
120204
  minHealthFactor: 1.05,
120188
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
120205
+ borrowable_assets: [
120206
+ // allow all BTC flavours borrowing on Re7xBTC pool
120207
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
120208
+ // allow only WBTC borrowing on Prime pool
120209
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
120210
+ ],
120189
120211
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
120190
120212
  defaultPoolId: VesuPools.Re7xBTC,
120191
- altSupportedPoolIds: [VesuPools.Prime],
120192
120213
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
120193
120214
  };
120194
120215
  var hyperxtBTC = {
@@ -120201,10 +120222,11 @@ spurious results.`);
120201
120222
  adapters: [],
120202
120223
  targetHealthFactor: 1.1,
120203
120224
  minHealthFactor: 1.05,
120204
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
120225
+ borrowable_assets: [
120226
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
120227
+ ],
120205
120228
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
120206
120229
  defaultPoolId: VesuPools.Re7xBTC,
120207
- altSupportedPoolIds: [],
120208
120230
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
120209
120231
  };
120210
120232
  var hyperxsBTC = {
@@ -120217,10 +120239,11 @@ spurious results.`);
120217
120239
  adapters: [],
120218
120240
  targetHealthFactor: 1.1,
120219
120241
  minHealthFactor: 1.05,
120220
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
120242
+ borrowable_assets: [
120243
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
120244
+ ],
120221
120245
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
120222
- defaultPoolId: VesuPools.Re7xBTC,
120223
- altSupportedPoolIds: []
120246
+ defaultPoolId: VesuPools.Re7xBTC
120224
120247
  };
120225
120248
  var hyperxLBTC = {
120226
120249
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -120232,10 +120255,11 @@ spurious results.`);
120232
120255
  adapters: [],
120233
120256
  targetHealthFactor: 1.1,
120234
120257
  minHealthFactor: 1.05,
120235
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
120258
+ borrowable_assets: [
120259
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
120260
+ ],
120236
120261
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
120237
- defaultPoolId: VesuPools.Re7xBTC,
120238
- altSupportedPoolIds: []
120262
+ defaultPoolId: VesuPools.Re7xBTC
120239
120263
  };
120240
120264
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
120241
120265
  return [
@@ -120322,7 +120346,7 @@ spurious results.`);
120322
120346
  var HYPER_LST_REDEMPTION_INFO = {
120323
120347
  instantWithdrawalVault: "No" /* NO */,
120324
120348
  redemptionsInfo: [{
120325
- title: "Usual time",
120349
+ title: "Typical Duration",
120326
120350
  description: "1-2 hours"
120327
120351
  }],
120328
120352
  alerts: [{
@@ -120331,12 +120355,12 @@ spurious results.`);
120331
120355
  tab: "withdraw"
120332
120356
  }]
120333
120357
  };
120334
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
120358
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings2, isPreview = false) {
120335
120359
  return {
120336
120360
  id: `hyper_${lstSymbol.toLowerCase()}`,
120337
120361
  name: `Hyper ${lstSymbol}`,
120338
120362
  description: getDescription2(lstSymbol, underlyingSymbol),
120339
- address: addresses.vaultAddress,
120363
+ address: settings2.vaultAddress,
120340
120364
  launchBlock: 0,
120341
120365
  type: "Other",
120342
120366
  vaultType: {
@@ -120351,7 +120375,7 @@ spurious results.`);
120351
120375
  additionalInfo: getLooperSettings2(
120352
120376
  lstSymbol,
120353
120377
  underlyingSymbol,
120354
- addresses,
120378
+ settings2,
120355
120379
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
120356
120380
  ),
120357
120381
  risk: {
@@ -120369,7 +120393,7 @@ spurious results.`);
120369
120393
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
120370
120394
  },
120371
120395
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
120372
- contractDetails: getContractDetails(addresses),
120396
+ contractDetails: getContractDetails(settings2),
120373
120397
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
120374
120398
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
120375
120399
  isPreview,
@@ -120377,6 +120401,8 @@ spurious results.`);
120377
120401
  tags: lstSymbol.includes("BTC") ? ["BTC" /* BTC */, "Maxx" /* LEVERED */] : ["Maxx" /* LEVERED */],
120378
120402
  security: HYPER_LST_SECURITY,
120379
120403
  redemptionInfo: HYPER_LST_REDEMPTION_INFO,
120404
+ usualTimeToEarnings: "2 weeks",
120405
+ usualTimeToEarningsDescription: "Strategy returns depend on LST price on DEXes. Even though the true price of LST on Endur increases continuously, the DEX price may lag sometimes, and historically is seen to rebase at least once every 2 hours. This is when you realise your earnings.",
120380
120406
  points: [{
120381
120407
  multiplier: 4,
120382
120408
  logo: "https://endur.fi/favicon.ico",
@@ -11181,7 +11181,9 @@ var createVesuRebalanceStrategy = (idSymbol, name, tokenSymbol, address) => ({
11181
11181
  investmentSteps: [],
11182
11182
  tags: [],
11183
11183
  security: VESU_SECURITY,
11184
- redemptionInfo: VESU_REDEMPTION_INFO
11184
+ redemptionInfo: VESU_REDEMPTION_INFO,
11185
+ usualTimeToEarnings: null,
11186
+ usualTimeToEarningsDescription: null
11185
11187
  });
11186
11188
  var VESU_SECURITY = {
11187
11189
  auditStatus: "Audited" /* AUDITED */,
@@ -17958,7 +17960,9 @@ var xSTRKSTRK = {
17958
17960
  instantWithdrawalVault: "Yes" /* YES */,
17959
17961
  redemptionsInfo: [],
17960
17962
  alerts: []
17961
- }
17963
+ },
17964
+ usualTimeToEarnings: null,
17965
+ usualTimeToEarningsDescription: null
17962
17966
  };
17963
17967
  var getLSTAlerts = () => [
17964
17968
  {
@@ -27481,7 +27485,25 @@ var VesuPools = {
27481
27485
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
27482
27486
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
27483
27487
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
27484
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
27488
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
27489
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
27490
+ };
27491
+ var VesuPoolMetadata = {
27492
+ [VesuPools.Genesis.address]: {
27493
+ name: "Genesis"
27494
+ },
27495
+ [VesuPools.Re7xSTRK.address]: {
27496
+ name: "Re7 xSTRK"
27497
+ },
27498
+ [VesuPools.Re7xBTC.address]: {
27499
+ name: "Re7 xBTC"
27500
+ },
27501
+ [VesuPools.Prime.address]: {
27502
+ name: "Prime"
27503
+ },
27504
+ [VesuPools.Re7STRK.address]: {
27505
+ name: "Re7 STRK"
27506
+ }
27485
27507
  };
27486
27508
  var extensionMap = {};
27487
27509
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -27866,12 +27888,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27866
27888
  amount: collateralAmount,
27867
27889
  token: this.config.collateral,
27868
27890
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
27869
- remarks: "Collateral"
27891
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27870
27892
  }, {
27871
27893
  amount: debtAmount,
27872
27894
  token: this.config.debt,
27873
27895
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
27874
- remarks: "Debt"
27896
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27875
27897
  }];
27876
27898
  this.setCache(CACHE_KEY, value, 6e4);
27877
27899
  return value;
@@ -28441,6 +28463,8 @@ var SenseiStrategies = [
28441
28463
  redemptionsInfo: [],
28442
28464
  alerts: []
28443
28465
  },
28466
+ usualTimeToEarnings: "2 weeks",
28467
+ usualTimeToEarningsDescription: "Strategy returns depend on LST price on DEXes. Even though the true price of LST on Endur increases continuously, the DEX price may lag sometimes, and historically is seen to rebase at least once every 2 hours. This is when you realise your earnings.",
28444
28468
  points: [{
28445
28469
  multiplier: 4,
28446
28470
  logo: "https://endur.fi/favicon.ico",
@@ -31837,7 +31861,7 @@ var EVERGREEN_SECURITY = {
31837
31861
  var EVERGREEN_REDEMPTION_INFO = {
31838
31862
  instantWithdrawalVault: "No" /* NO */,
31839
31863
  redemptionsInfo: [{
31840
- title: "Usual time",
31864
+ title: "Typical Duration",
31841
31865
  description: "1-2 hours"
31842
31866
  }],
31843
31867
  alerts: [{
@@ -31880,7 +31904,9 @@ var createUniversalStrategy = (params) => ({
31880
31904
  investmentSteps,
31881
31905
  tags: params.tags,
31882
31906
  security: EVERGREEN_SECURITY,
31883
- redemptionInfo: EVERGREEN_REDEMPTION_INFO
31907
+ redemptionInfo: EVERGREEN_REDEMPTION_INFO,
31908
+ usualTimeToEarnings: null,
31909
+ usualTimeToEarningsDescription: null
31884
31910
  });
31885
31911
  var UniversalStrategies = [
31886
31912
  createUniversalStrategy({
@@ -32003,20 +32029,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32003
32029
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
32004
32030
  getVesuAdapters() {
32005
32031
  const adapters = [];
32006
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
32007
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
32008
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
32009
- const vesuAdapter1 = new VesuAdapter({
32010
- poolId: baseAdapter.config.poolId,
32011
- collateral: this.asset(),
32012
- debt: asset,
32013
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32014
- id: ""
32015
- });
32016
- vesuAdapter1.pricer = this.pricer;
32017
- vesuAdapter1.networkConfig = this.config;
32018
- adapters.push(vesuAdapter1);
32019
- }
32032
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
32033
+ const asset = borrowableInfo.token;
32034
+ const poolId = borrowableInfo.poolId;
32035
+ const vesuAdapter1 = new VesuAdapter({
32036
+ poolId,
32037
+ collateral: this.asset(),
32038
+ debt: asset,
32039
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32040
+ id: ""
32041
+ });
32042
+ vesuAdapter1.pricer = this.pricer;
32043
+ vesuAdapter1.networkConfig = this.config;
32044
+ adapters.push(vesuAdapter1);
32020
32045
  }
32021
32046
  return adapters;
32022
32047
  }
@@ -32642,7 +32667,7 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32642
32667
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
32643
32668
  adapter: vesuAdapterLST
32644
32669
  }]);
32645
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
32670
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
32646
32671
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
32647
32672
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
32648
32673
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
@@ -32652,9 +32677,11 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32652
32677
  vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
32653
32678
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
32654
32679
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
32680
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32681
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
32655
32682
  return vesuAdapterLST;
32656
32683
  }
32657
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
32684
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
32658
32685
  vaultSettings.leafAdapters = [];
32659
32686
  const pool1 = vaultSettings.defaultPoolId;
32660
32687
  if (!pool1.eq(defaultPoolId)) {
@@ -32673,10 +32700,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32673
32700
  id: "common_adapter" /* COMMON */,
32674
32701
  adapter: commonAdapter
32675
32702
  }]);
32676
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
32677
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32703
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32678
32704
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
32679
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
32705
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
32706
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
32707
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
32680
32708
  const debtAsset = borrowableAsset;
32681
32709
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
32682
32710
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -32684,23 +32712,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32684
32712
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
32685
32713
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
32686
32714
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
32687
- const vesuAdapter = new VesuAdapter({
32688
- poolId: pool1,
32689
- collateral: lstToken,
32690
- debt: debtAsset,
32691
- vaultAllocator: vaultSettings.vaultAllocator,
32692
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
32693
- });
32694
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
32695
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32696
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
32697
- if (borrowableAsset.address.eq(underlyingToken.address)) {
32698
- continue;
32699
- }
32700
32715
  }
32701
32716
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
32702
32717
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
32703
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
32704
32718
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
32705
32719
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
32706
32720
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -32759,7 +32773,7 @@ var _riskFactor4 = [
32759
32773
  { 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." },
32760
32774
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
32761
32775
  ];
32762
- var borrowableAssets = [
32776
+ var btcBorrowableAssets = [
32763
32777
  "WBTC",
32764
32778
  "tBTC",
32765
32779
  "LBTC",
@@ -32775,10 +32789,12 @@ var hyperxSTRK = {
32775
32789
  adapters: [],
32776
32790
  targetHealthFactor: 1.1,
32777
32791
  minHealthFactor: 1.05,
32778
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
32792
+ borrowable_assets: [
32793
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
32794
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime }))
32795
+ ],
32779
32796
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
32780
- defaultPoolId: VesuPools.Re7xSTRK,
32781
- altSupportedPoolIds: [VesuPools.Prime]
32797
+ defaultPoolId: VesuPools.Re7xSTRK
32782
32798
  };
32783
32799
  var hyperxWBTC = {
32784
32800
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -32790,10 +32806,14 @@ var hyperxWBTC = {
32790
32806
  adapters: [],
32791
32807
  targetHealthFactor: 1.1,
32792
32808
  minHealthFactor: 1.05,
32793
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
32809
+ borrowable_assets: [
32810
+ // allow all BTC flavours borrowing on Re7xBTC pool
32811
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
32812
+ // allow only WBTC borrowing on Prime pool
32813
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
32814
+ ],
32794
32815
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
32795
32816
  defaultPoolId: VesuPools.Re7xBTC,
32796
- altSupportedPoolIds: [VesuPools.Prime],
32797
32817
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
32798
32818
  };
32799
32819
  var hyperxtBTC = {
@@ -32806,10 +32826,11 @@ var hyperxtBTC = {
32806
32826
  adapters: [],
32807
32827
  targetHealthFactor: 1.1,
32808
32828
  minHealthFactor: 1.05,
32809
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
32829
+ borrowable_assets: [
32830
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32831
+ ],
32810
32832
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
32811
32833
  defaultPoolId: VesuPools.Re7xBTC,
32812
- altSupportedPoolIds: [],
32813
32834
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
32814
32835
  };
32815
32836
  var hyperxsBTC = {
@@ -32822,10 +32843,11 @@ var hyperxsBTC = {
32822
32843
  adapters: [],
32823
32844
  targetHealthFactor: 1.1,
32824
32845
  minHealthFactor: 1.05,
32825
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
32846
+ borrowable_assets: [
32847
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32848
+ ],
32826
32849
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
32827
- defaultPoolId: VesuPools.Re7xBTC,
32828
- altSupportedPoolIds: []
32850
+ defaultPoolId: VesuPools.Re7xBTC
32829
32851
  };
32830
32852
  var hyperxLBTC = {
32831
32853
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -32837,10 +32859,11 @@ var hyperxLBTC = {
32837
32859
  adapters: [],
32838
32860
  targetHealthFactor: 1.1,
32839
32861
  minHealthFactor: 1.05,
32840
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
32862
+ borrowable_assets: [
32863
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32864
+ ],
32841
32865
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
32842
- defaultPoolId: VesuPools.Re7xBTC,
32843
- altSupportedPoolIds: []
32866
+ defaultPoolId: VesuPools.Re7xBTC
32844
32867
  };
32845
32868
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
32846
32869
  return [
@@ -32927,7 +32950,7 @@ var HYPER_LST_SECURITY = {
32927
32950
  var HYPER_LST_REDEMPTION_INFO = {
32928
32951
  instantWithdrawalVault: "No" /* NO */,
32929
32952
  redemptionsInfo: [{
32930
- title: "Usual time",
32953
+ title: "Typical Duration",
32931
32954
  description: "1-2 hours"
32932
32955
  }],
32933
32956
  alerts: [{
@@ -32936,12 +32959,12 @@ var HYPER_LST_REDEMPTION_INFO = {
32936
32959
  tab: "withdraw"
32937
32960
  }]
32938
32961
  };
32939
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
32962
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
32940
32963
  return {
32941
32964
  id: `hyper_${lstSymbol.toLowerCase()}`,
32942
32965
  name: `Hyper ${lstSymbol}`,
32943
32966
  description: getDescription2(lstSymbol, underlyingSymbol),
32944
- address: addresses.vaultAddress,
32967
+ address: settings.vaultAddress,
32945
32968
  launchBlock: 0,
32946
32969
  type: "Other",
32947
32970
  vaultType: {
@@ -32956,7 +32979,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32956
32979
  additionalInfo: getLooperSettings2(
32957
32980
  lstSymbol,
32958
32981
  underlyingSymbol,
32959
- addresses,
32982
+ settings,
32960
32983
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
32961
32984
  ),
32962
32985
  risk: {
@@ -32974,7 +32997,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32974
32997
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
32975
32998
  },
32976
32999
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
32977
- contractDetails: getContractDetails(addresses),
33000
+ contractDetails: getContractDetails(settings),
32978
33001
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
32979
33002
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
32980
33003
  isPreview,
@@ -32982,6 +33005,8 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32982
33005
  tags: lstSymbol.includes("BTC") ? ["BTC" /* BTC */, "Maxx" /* LEVERED */] : ["Maxx" /* LEVERED */],
32983
33006
  security: HYPER_LST_SECURITY,
32984
33007
  redemptionInfo: HYPER_LST_REDEMPTION_INFO,
33008
+ usualTimeToEarnings: "2 weeks",
33009
+ usualTimeToEarningsDescription: "Strategy returns depend on LST price on DEXes. Even though the true price of LST on Endur increases continuously, the DEX price may lag sometimes, and historically is seen to rebase at least once every 2 hours. This is when you realise your earnings.",
32985
33010
  points: [{
32986
33011
  multiplier: 4,
32987
33012
  logo: "https://endur.fi/favicon.ico",
@@ -33267,6 +33292,7 @@ export {
33267
33292
  VesuAdapter,
33268
33293
  VesuAmountDenomination,
33269
33294
  VesuAmountType,
33295
+ VesuPoolMetadata,
33270
33296
  VesuPools,
33271
33297
  VesuRebalance,
33272
33298
  VesuRebalanceStrategies,