@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.
- package/dist/index.browser.global.js +85 -59
- package/dist/index.browser.mjs +85 -59
- package/dist/index.d.ts +25 -3
- package/dist/index.js +86 -59
- package/dist/index.mjs +85 -59
- package/package.json +1 -1
- package/src/interfaces/common.tsx +2 -0
- package/src/strategies/ekubo-cl-vault.tsx +2 -0
- package/src/strategies/sensei.ts +2 -0
- package/src/strategies/universal-adapters/vesu-adapter.ts +21 -2
- package/src/strategies/universal-lst-muliplier-strategy.tsx +57 -61
- package/src/strategies/universal-strategy.tsx +4 -2
- package/src/strategies/vesu-rebalance.tsx +2 -0
|
@@ -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:
|
|
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:
|
|
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: "
|
|
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
|
|
119402
|
-
const
|
|
119403
|
-
|
|
119404
|
-
|
|
119405
|
-
|
|
119406
|
-
|
|
119407
|
-
|
|
119408
|
-
|
|
119409
|
-
|
|
119410
|
-
|
|
119411
|
-
|
|
119412
|
-
|
|
119413
|
-
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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: "
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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",
|
package/dist/index.browser.mjs
CHANGED
|
@@ -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:
|
|
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:
|
|
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: "
|
|
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
|
|
32007
|
-
const
|
|
32008
|
-
|
|
32009
|
-
|
|
32010
|
-
|
|
32011
|
-
|
|
32012
|
-
|
|
32013
|
-
|
|
32014
|
-
|
|
32015
|
-
|
|
32016
|
-
|
|
32017
|
-
|
|
32018
|
-
|
|
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:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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: "
|
|
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,
|
|
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:
|
|
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
|
-
|
|
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(
|
|
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,
|