@strkfarm/sdk 2.0.0-staging.17 → 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.
package/dist/index.js CHANGED
@@ -92,6 +92,7 @@ __export(index_exports, {
92
92
  VesuAdapter: () => VesuAdapter,
93
93
  VesuAmountDenomination: () => VesuAmountDenomination,
94
94
  VesuAmountType: () => VesuAmountType,
95
+ VesuPoolMetadata: () => VesuPoolMetadata,
95
96
  VesuPools: () => VesuPools,
96
97
  VesuRebalance: () => VesuRebalance,
97
98
  VesuRebalanceStrategies: () => VesuRebalanceStrategies,
@@ -27516,7 +27517,25 @@ var VesuPools = {
27516
27517
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
27517
27518
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
27518
27519
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
27519
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
27520
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
27521
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
27522
+ };
27523
+ var VesuPoolMetadata = {
27524
+ [VesuPools.Genesis.address]: {
27525
+ name: "Genesis"
27526
+ },
27527
+ [VesuPools.Re7xSTRK.address]: {
27528
+ name: "Re7 xSTRK"
27529
+ },
27530
+ [VesuPools.Re7xBTC.address]: {
27531
+ name: "Re7 xBTC"
27532
+ },
27533
+ [VesuPools.Prime.address]: {
27534
+ name: "Prime"
27535
+ },
27536
+ [VesuPools.Re7STRK.address]: {
27537
+ name: "Re7 STRK"
27538
+ }
27520
27539
  };
27521
27540
  var extensionMap = {};
27522
27541
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -27901,12 +27920,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27901
27920
  amount: collateralAmount,
27902
27921
  token: this.config.collateral,
27903
27922
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
27904
- remarks: "Collateral"
27923
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27905
27924
  }, {
27906
27925
  amount: debtAmount,
27907
27926
  token: this.config.debt,
27908
27927
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
27909
- remarks: "Debt"
27928
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27910
27929
  }];
27911
27930
  this.setCache(CACHE_KEY, value, 6e4);
27912
27931
  return value;
@@ -32143,20 +32162,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32143
32162
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
32144
32163
  getVesuAdapters() {
32145
32164
  const adapters = [];
32146
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
32147
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
32148
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
32149
- const vesuAdapter1 = new VesuAdapter({
32150
- poolId: baseAdapter.config.poolId,
32151
- collateral: this.asset(),
32152
- debt: asset,
32153
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32154
- id: ""
32155
- });
32156
- vesuAdapter1.pricer = this.pricer;
32157
- vesuAdapter1.networkConfig = this.config;
32158
- adapters.push(vesuAdapter1);
32159
- }
32165
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
32166
+ const asset = borrowableInfo.token;
32167
+ const poolId = borrowableInfo.poolId;
32168
+ const vesuAdapter1 = new VesuAdapter({
32169
+ poolId,
32170
+ collateral: this.asset(),
32171
+ debt: asset,
32172
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32173
+ id: ""
32174
+ });
32175
+ vesuAdapter1.pricer = this.pricer;
32176
+ vesuAdapter1.networkConfig = this.config;
32177
+ adapters.push(vesuAdapter1);
32160
32178
  }
32161
32179
  return adapters;
32162
32180
  }
@@ -32782,7 +32800,7 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32782
32800
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
32783
32801
  adapter: vesuAdapterLST
32784
32802
  }]);
32785
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
32803
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
32786
32804
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
32787
32805
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
32788
32806
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
@@ -32792,9 +32810,11 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32792
32810
  vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
32793
32811
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
32794
32812
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
32813
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32814
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
32795
32815
  return vesuAdapterLST;
32796
32816
  }
32797
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
32817
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
32798
32818
  vaultSettings.leafAdapters = [];
32799
32819
  const pool1 = vaultSettings.defaultPoolId;
32800
32820
  if (!pool1.eq(defaultPoolId)) {
@@ -32813,10 +32833,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32813
32833
  id: "common_adapter" /* COMMON */,
32814
32834
  adapter: commonAdapter
32815
32835
  }]);
32816
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
32817
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32836
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32818
32837
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
32819
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
32838
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
32839
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
32840
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
32820
32841
  const debtAsset = borrowableAsset;
32821
32842
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
32822
32843
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -32824,23 +32845,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32824
32845
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
32825
32846
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
32826
32847
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
32827
- const vesuAdapter = new VesuAdapter({
32828
- poolId: pool1,
32829
- collateral: lstToken,
32830
- debt: debtAsset,
32831
- vaultAllocator: vaultSettings.vaultAllocator,
32832
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
32833
- });
32834
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
32835
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32836
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
32837
- if (borrowableAsset.address.eq(underlyingToken.address)) {
32838
- continue;
32839
- }
32840
32848
  }
32841
32849
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
32842
32850
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
32843
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
32844
32851
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
32845
32852
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
32846
32853
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -32899,7 +32906,7 @@ var _riskFactor4 = [
32899
32906
  { 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." },
32900
32907
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
32901
32908
  ];
32902
- var borrowableAssets = [
32909
+ var btcBorrowableAssets = [
32903
32910
  "WBTC",
32904
32911
  "tBTC",
32905
32912
  "LBTC",
@@ -32915,10 +32922,12 @@ var hyperxSTRK = {
32915
32922
  adapters: [],
32916
32923
  targetHealthFactor: 1.1,
32917
32924
  minHealthFactor: 1.05,
32918
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
32925
+ borrowable_assets: [
32926
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
32927
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime }))
32928
+ ],
32919
32929
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
32920
- defaultPoolId: VesuPools.Re7xSTRK,
32921
- altSupportedPoolIds: [VesuPools.Prime]
32930
+ defaultPoolId: VesuPools.Re7xSTRK
32922
32931
  };
32923
32932
  var hyperxWBTC = {
32924
32933
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -32930,10 +32939,14 @@ var hyperxWBTC = {
32930
32939
  adapters: [],
32931
32940
  targetHealthFactor: 1.1,
32932
32941
  minHealthFactor: 1.05,
32933
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
32942
+ borrowable_assets: [
32943
+ // allow all BTC flavours borrowing on Re7xBTC pool
32944
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
32945
+ // allow only WBTC borrowing on Prime pool
32946
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
32947
+ ],
32934
32948
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
32935
32949
  defaultPoolId: VesuPools.Re7xBTC,
32936
- altSupportedPoolIds: [VesuPools.Prime],
32937
32950
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
32938
32951
  };
32939
32952
  var hyperxtBTC = {
@@ -32946,10 +32959,11 @@ var hyperxtBTC = {
32946
32959
  adapters: [],
32947
32960
  targetHealthFactor: 1.1,
32948
32961
  minHealthFactor: 1.05,
32949
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
32962
+ borrowable_assets: [
32963
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32964
+ ],
32950
32965
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
32951
32966
  defaultPoolId: VesuPools.Re7xBTC,
32952
- altSupportedPoolIds: [],
32953
32967
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
32954
32968
  };
32955
32969
  var hyperxsBTC = {
@@ -32962,10 +32976,11 @@ var hyperxsBTC = {
32962
32976
  adapters: [],
32963
32977
  targetHealthFactor: 1.1,
32964
32978
  minHealthFactor: 1.05,
32965
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
32979
+ borrowable_assets: [
32980
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32981
+ ],
32966
32982
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
32967
- defaultPoolId: VesuPools.Re7xBTC,
32968
- altSupportedPoolIds: []
32983
+ defaultPoolId: VesuPools.Re7xBTC
32969
32984
  };
32970
32985
  var hyperxLBTC = {
32971
32986
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -32977,10 +32992,11 @@ var hyperxLBTC = {
32977
32992
  adapters: [],
32978
32993
  targetHealthFactor: 1.1,
32979
32994
  minHealthFactor: 1.05,
32980
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
32995
+ borrowable_assets: [
32996
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32997
+ ],
32981
32998
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
32982
- defaultPoolId: VesuPools.Re7xBTC,
32983
- altSupportedPoolIds: []
32999
+ defaultPoolId: VesuPools.Re7xBTC
32984
33000
  };
32985
33001
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
32986
33002
  return [
@@ -33076,12 +33092,12 @@ var HYPER_LST_REDEMPTION_INFO = {
33076
33092
  tab: "withdraw"
33077
33093
  }]
33078
33094
  };
33079
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
33095
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
33080
33096
  return {
33081
33097
  id: `hyper_${lstSymbol.toLowerCase()}`,
33082
33098
  name: `Hyper ${lstSymbol}`,
33083
33099
  description: getDescription2(lstSymbol, underlyingSymbol),
33084
- address: addresses.vaultAddress,
33100
+ address: settings.vaultAddress,
33085
33101
  launchBlock: 0,
33086
33102
  type: "Other",
33087
33103
  vaultType: {
@@ -33096,7 +33112,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
33096
33112
  additionalInfo: getLooperSettings2(
33097
33113
  lstSymbol,
33098
33114
  underlyingSymbol,
33099
- addresses,
33115
+ settings,
33100
33116
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
33101
33117
  ),
33102
33118
  risk: {
@@ -33114,7 +33130,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
33114
33130
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
33115
33131
  },
33116
33132
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
33117
- contractDetails: getContractDetails(addresses),
33133
+ contractDetails: getContractDetails(settings),
33118
33134
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
33119
33135
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
33120
33136
  isPreview,
@@ -34003,6 +34019,7 @@ var deployer_default = Deployer;
34003
34019
  VesuAdapter,
34004
34020
  VesuAmountDenomination,
34005
34021
  VesuAmountType,
34022
+ VesuPoolMetadata,
34006
34023
  VesuPools,
34007
34024
  VesuRebalance,
34008
34025
  VesuRebalanceStrategies,
package/dist/index.mjs CHANGED
@@ -27387,7 +27387,25 @@ var VesuPools = {
27387
27387
  Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
27388
27388
  Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
27389
27389
  Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
27390
- Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5")
27390
+ Prime: ContractAddr.from("0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5"),
27391
+ Re7STRK: ContractAddr.from("0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2")
27392
+ };
27393
+ var VesuPoolMetadata = {
27394
+ [VesuPools.Genesis.address]: {
27395
+ name: "Genesis"
27396
+ },
27397
+ [VesuPools.Re7xSTRK.address]: {
27398
+ name: "Re7 xSTRK"
27399
+ },
27400
+ [VesuPools.Re7xBTC.address]: {
27401
+ name: "Re7 xBTC"
27402
+ },
27403
+ [VesuPools.Prime.address]: {
27404
+ name: "Prime"
27405
+ },
27406
+ [VesuPools.Re7STRK.address]: {
27407
+ name: "Re7 STRK"
27408
+ }
27391
27409
  };
27392
27410
  var extensionMap = {};
27393
27411
  extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
@@ -27772,12 +27790,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
27772
27790
  amount: collateralAmount,
27773
27791
  token: this.config.collateral,
27774
27792
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
27775
- remarks: "Collateral"
27793
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27776
27794
  }, {
27777
27795
  amount: debtAmount,
27778
27796
  token: this.config.debt,
27779
27797
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
27780
- remarks: "Debt"
27798
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
27781
27799
  }];
27782
27800
  this.setCache(CACHE_KEY, value, 6e4);
27783
27801
  return value;
@@ -32014,20 +32032,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
32014
32032
  // todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
32015
32033
  getVesuAdapters() {
32016
32034
  const adapters = [];
32017
- for (const poolId of [this.metadata.additionalInfo.defaultPoolId, ...this.metadata.additionalInfo.altSupportedPoolIds]) {
32018
- const baseAdapter = this.getVesuSameTokenAdapter(poolId);
32019
- for (const asset of this.metadata.additionalInfo.borrowable_assets) {
32020
- const vesuAdapter1 = new VesuAdapter({
32021
- poolId: baseAdapter.config.poolId,
32022
- collateral: this.asset(),
32023
- debt: asset,
32024
- vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32025
- id: ""
32026
- });
32027
- vesuAdapter1.pricer = this.pricer;
32028
- vesuAdapter1.networkConfig = this.config;
32029
- adapters.push(vesuAdapter1);
32030
- }
32035
+ for (const borrowableInfo of this.metadata.additionalInfo.borrowable_assets) {
32036
+ const asset = borrowableInfo.token;
32037
+ const poolId = borrowableInfo.poolId;
32038
+ const vesuAdapter1 = new VesuAdapter({
32039
+ poolId,
32040
+ collateral: this.asset(),
32041
+ debt: asset,
32042
+ vaultAllocator: this.metadata.additionalInfo.vaultAllocator,
32043
+ id: ""
32044
+ });
32045
+ vesuAdapter1.pricer = this.pricer;
32046
+ vesuAdapter1.networkConfig = this.config;
32047
+ adapters.push(vesuAdapter1);
32031
32048
  }
32032
32049
  return adapters;
32033
32050
  }
@@ -32653,7 +32670,7 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32653
32670
  id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
32654
32671
  adapter: vesuAdapterLST
32655
32672
  }]);
32656
- const { isV2, addr: _ } = getVesuSingletonAddress(poolId);
32673
+ const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
32657
32674
  const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
32658
32675
  const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
32659
32676
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
@@ -32663,9 +32680,11 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
32663
32680
  vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
32664
32681
  const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
32665
32682
  vaultSettings.leafAdapters.push(vesuAdapterLST.getMultiplyAdapter(multiplID).bind(vesuAdapterLST));
32683
+ vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32684
+ vaultSettings.leafAdapters.push(vesuAdapterLST.getModifyPosition.bind(vesuAdapterLST));
32666
32685
  return vesuAdapterLST;
32667
32686
  }
32668
- function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId, altSupportedPoolIds = []) {
32687
+ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
32669
32688
  vaultSettings.leafAdapters = [];
32670
32689
  const pool1 = vaultSettings.defaultPoolId;
32671
32690
  if (!pool1.eq(defaultPoolId)) {
@@ -32684,10 +32703,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32684
32703
  id: "common_adapter" /* COMMON */,
32685
32704
  adapter: commonAdapter
32686
32705
  }]);
32687
- const vesuAdapterLST = addVesuLeaves(defaultPoolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter);
32688
- altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32706
+ vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
32689
32707
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
32690
- for (let borrowableAsset of vaultSettings.borrowable_assets) {
32708
+ const uniqueBorrowableAssets = [...new Set(vaultSettings.borrowable_assets.map((borrowableAsset) => borrowableAsset.token.symbol))];
32709
+ for (let borrowableAssetSymbol of uniqueBorrowableAssets) {
32710
+ const borrowableAsset = Global.getDefaultTokens().find((token) => token.symbol === borrowableAssetSymbol);
32691
32711
  const debtAsset = borrowableAsset;
32692
32712
  const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
32693
32713
  const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
@@ -32695,23 +32715,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
32695
32715
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
32696
32716
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
32697
32717
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
32698
- const vesuAdapter = new VesuAdapter({
32699
- poolId: pool1,
32700
- collateral: lstToken,
32701
- debt: debtAsset,
32702
- vaultAllocator: vaultSettings.vaultAllocator,
32703
- id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
32704
- });
32705
- const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
32706
- vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
32707
- vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
32708
- if (borrowableAsset.address.eq(underlyingToken.address)) {
32709
- continue;
32710
- }
32711
32718
  }
32712
32719
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
32713
32720
  vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
32714
- vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
32715
32721
  const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
32716
32722
  vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
32717
32723
  vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
@@ -32770,7 +32776,7 @@ var _riskFactor4 = [
32770
32776
  { 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." },
32771
32777
  { type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
32772
32778
  ];
32773
- var borrowableAssets = [
32779
+ var btcBorrowableAssets = [
32774
32780
  "WBTC",
32775
32781
  "tBTC",
32776
32782
  "LBTC",
@@ -32786,10 +32792,12 @@ var hyperxSTRK = {
32786
32792
  adapters: [],
32787
32793
  targetHealthFactor: 1.1,
32788
32794
  minHealthFactor: 1.05,
32789
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "STRK"),
32795
+ borrowable_assets: [
32796
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Re7xSTRK })),
32797
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "STRK").map((token) => ({ token, poolId: VesuPools.Prime }))
32798
+ ],
32790
32799
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
32791
- defaultPoolId: VesuPools.Re7xSTRK,
32792
- altSupportedPoolIds: [VesuPools.Prime]
32800
+ defaultPoolId: VesuPools.Re7xSTRK
32793
32801
  };
32794
32802
  var hyperxWBTC = {
32795
32803
  vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
@@ -32801,10 +32809,14 @@ var hyperxWBTC = {
32801
32809
  adapters: [],
32802
32810
  targetHealthFactor: 1.1,
32803
32811
  minHealthFactor: 1.05,
32804
- borrowable_assets: borrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)),
32812
+ borrowable_assets: [
32813
+ // allow all BTC flavours borrowing on Re7xBTC pool
32814
+ ...btcBorrowableAssets.map((asset) => Global.getDefaultTokens().find((token) => token.symbol === asset)).map((token) => ({ token, poolId: VesuPools.Re7xBTC })),
32815
+ // allow only WBTC borrowing on Prime pool
32816
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Prime }))
32817
+ ],
32805
32818
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
32806
32819
  defaultPoolId: VesuPools.Re7xBTC,
32807
- altSupportedPoolIds: [VesuPools.Prime],
32808
32820
  redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
32809
32821
  };
32810
32822
  var hyperxtBTC = {
@@ -32817,10 +32829,11 @@ var hyperxtBTC = {
32817
32829
  adapters: [],
32818
32830
  targetHealthFactor: 1.1,
32819
32831
  minHealthFactor: 1.05,
32820
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC"),
32832
+ borrowable_assets: [
32833
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32834
+ ],
32821
32835
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
32822
32836
  defaultPoolId: VesuPools.Re7xBTC,
32823
- altSupportedPoolIds: [],
32824
32837
  redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
32825
32838
  };
32826
32839
  var hyperxsBTC = {
@@ -32833,10 +32846,11 @@ var hyperxsBTC = {
32833
32846
  adapters: [],
32834
32847
  targetHealthFactor: 1.1,
32835
32848
  minHealthFactor: 1.05,
32836
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC"),
32849
+ borrowable_assets: [
32850
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32851
+ ],
32837
32852
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
32838
- defaultPoolId: VesuPools.Re7xBTC,
32839
- altSupportedPoolIds: []
32853
+ defaultPoolId: VesuPools.Re7xBTC
32840
32854
  };
32841
32855
  var hyperxLBTC = {
32842
32856
  vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
@@ -32848,10 +32862,11 @@ var hyperxLBTC = {
32848
32862
  adapters: [],
32849
32863
  targetHealthFactor: 1.1,
32850
32864
  minHealthFactor: 1.05,
32851
- borrowable_assets: Global.getDefaultTokens().filter((token) => token.symbol === "LBTC"),
32865
+ borrowable_assets: [
32866
+ ...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
32867
+ ],
32852
32868
  underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
32853
- defaultPoolId: VesuPools.Re7xBTC,
32854
- altSupportedPoolIds: []
32869
+ defaultPoolId: VesuPools.Re7xBTC
32855
32870
  };
32856
32871
  function getInvestmentSteps(lstSymbol, underlyingSymbol) {
32857
32872
  return [
@@ -32947,12 +32962,12 @@ var HYPER_LST_REDEMPTION_INFO = {
32947
32962
  tab: "withdraw"
32948
32963
  }]
32949
32964
  };
32950
- function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview = false) {
32965
+ function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
32951
32966
  return {
32952
32967
  id: `hyper_${lstSymbol.toLowerCase()}`,
32953
32968
  name: `Hyper ${lstSymbol}`,
32954
32969
  description: getDescription2(lstSymbol, underlyingSymbol),
32955
- address: addresses.vaultAddress,
32970
+ address: settings.vaultAddress,
32956
32971
  launchBlock: 0,
32957
32972
  type: "Other",
32958
32973
  vaultType: {
@@ -32967,7 +32982,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32967
32982
  additionalInfo: getLooperSettings2(
32968
32983
  lstSymbol,
32969
32984
  underlyingSymbol,
32970
- addresses,
32985
+ settings,
32971
32986
  lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
32972
32987
  ),
32973
32988
  risk: {
@@ -32985,7 +33000,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
32985
33000
  logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
32986
33001
  },
32987
33002
  settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
32988
- contractDetails: getContractDetails(addresses),
33003
+ contractDetails: getContractDetails(settings),
32989
33004
  faqs: getFAQs2(lstSymbol, underlyingSymbol),
32990
33005
  investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
32991
33006
  isPreview,
@@ -33873,6 +33888,7 @@ export {
33873
33888
  VesuAdapter,
33874
33889
  VesuAmountDenomination,
33875
33890
  VesuAmountType,
33891
+ VesuPoolMetadata,
33876
33892
  VesuPools,
33877
33893
  VesuRebalance,
33878
33894
  VesuRebalanceStrategies,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strkfarm/sdk",
3
- "version": "2.0.0-staging.17",
3
+ "version": "2.0.0-staging.18",
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",
@@ -234,6 +234,25 @@ export const VesuPools = {
234
234
  Re7xSTRK: ContractAddr.from('0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161'),
235
235
  Re7xBTC: ContractAddr.from('0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf'),
236
236
  Prime: ContractAddr.from('0x451fe483d5921a2919ddd81d0de6696669bccdacd859f72a4fba7656b97c3b5'),
237
+ Re7STRK: ContractAddr.from('0x01fcdacc1d8184eca7b472b5acbaf1500cec9d5683ca95fede8128b46c8f9cc2'),
238
+ }
239
+
240
+ export const VesuPoolMetadata = {
241
+ [VesuPools.Genesis.address]: {
242
+ name: 'Genesis',
243
+ },
244
+ [VesuPools.Re7xSTRK.address]: {
245
+ name: 'Re7 xSTRK',
246
+ },
247
+ [VesuPools.Re7xBTC.address]: {
248
+ name: 'Re7 xBTC',
249
+ },
250
+ [VesuPools.Prime.address]: {
251
+ name: 'Prime',
252
+ },
253
+ [VesuPools.Re7STRK.address]: {
254
+ name: 'Re7 STRK',
255
+ },
237
256
  }
238
257
 
239
258
  export const extensionMap: {[key: string]: ContractAddr} = {};
@@ -654,12 +673,12 @@ export class VesuAdapter extends BaseAdapter {
654
673
  amount: collateralAmount,
655
674
  token: this.config.collateral,
656
675
  usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
657
- remarks: "Collateral"
676
+ remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
658
677
  }, {
659
678
  amount: debtAmount,
660
679
  token: this.config.debt,
661
680
  usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
662
- remarks: "Debt"
681
+ remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
663
682
  }];
664
683
  this.setCache(CACHE_KEY, value, 60000); // ttl: 1min
665
684
  return value;