@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
package/dist/index.mjs
CHANGED
|
@@ -11083,7 +11083,9 @@ var createVesuRebalanceStrategy = (idSymbol, name, tokenSymbol, address) => ({
|
|
|
11083
11083
|
investmentSteps: [],
|
|
11084
11084
|
tags: [],
|
|
11085
11085
|
security: VESU_SECURITY,
|
|
11086
|
-
redemptionInfo: VESU_REDEMPTION_INFO
|
|
11086
|
+
redemptionInfo: VESU_REDEMPTION_INFO,
|
|
11087
|
+
usualTimeToEarnings: null,
|
|
11088
|
+
usualTimeToEarningsDescription: null
|
|
11087
11089
|
});
|
|
11088
11090
|
var VESU_SECURITY = {
|
|
11089
11091
|
auditStatus: "Audited" /* AUDITED */,
|
|
@@ -17860,7 +17862,9 @@ var xSTRKSTRK = {
|
|
|
17860
17862
|
instantWithdrawalVault: "Yes" /* YES */,
|
|
17861
17863
|
redemptionsInfo: [],
|
|
17862
17864
|
alerts: []
|
|
17863
|
-
}
|
|
17865
|
+
},
|
|
17866
|
+
usualTimeToEarnings: null,
|
|
17867
|
+
usualTimeToEarningsDescription: null
|
|
17864
17868
|
};
|
|
17865
17869
|
var getLSTAlerts = () => [
|
|
17866
17870
|
{
|
|
@@ -27383,7 +27387,25 @@ var VesuPools = {
|
|
|
27383
27387
|
Genesis: ContractAddr.from("0x4dc4f0ca6ea4961e4c8373265bfd5317678f4fe374d76f3fd7135f57763bf28"),
|
|
27384
27388
|
Re7xSTRK: ContractAddr.from("0x052fb52363939c3aa848f8f4ac28f0a51379f8d1b971d8444de25fbd77d8f161"),
|
|
27385
27389
|
Re7xBTC: ContractAddr.from("0x3a8416bf20d036df5b1cf3447630a2e1cb04685f6b0c3a70ed7fb1473548ecf"),
|
|
27386
|
-
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
|
+
}
|
|
27387
27409
|
};
|
|
27388
27410
|
var extensionMap = {};
|
|
27389
27411
|
extensionMap[VesuPools.Re7xSTRK.address] = ContractAddr.from("0x04e06e04b8d624d039aa1c3ca8e0aa9e21dc1ccba1d88d0d650837159e0ee054");
|
|
@@ -27768,12 +27790,12 @@ var VesuAdapter = class _VesuAdapter extends BaseAdapter {
|
|
|
27768
27790
|
amount: collateralAmount,
|
|
27769
27791
|
token: this.config.collateral,
|
|
27770
27792
|
usdValue: collateralAmount.multipliedBy(token1Price.price).toNumber(),
|
|
27771
|
-
remarks:
|
|
27793
|
+
remarks: `Collateral - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
|
|
27772
27794
|
}, {
|
|
27773
27795
|
amount: debtAmount,
|
|
27774
27796
|
token: this.config.debt,
|
|
27775
27797
|
usdValue: debtAmount.multipliedBy(token2Price.price).toNumber(),
|
|
27776
|
-
remarks:
|
|
27798
|
+
remarks: `Debt - ${VesuPoolMetadata[this.config.poolId.address].name} pool`
|
|
27777
27799
|
}];
|
|
27778
27800
|
this.setCache(CACHE_KEY, value, 6e4);
|
|
27779
27801
|
return value;
|
|
@@ -28444,6 +28466,8 @@ var SenseiStrategies = [
|
|
|
28444
28466
|
redemptionsInfo: [],
|
|
28445
28467
|
alerts: []
|
|
28446
28468
|
},
|
|
28469
|
+
usualTimeToEarnings: "2 weeks",
|
|
28470
|
+
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.",
|
|
28447
28471
|
points: [{
|
|
28448
28472
|
multiplier: 4,
|
|
28449
28473
|
logo: "https://endur.fi/favicon.ico",
|
|
@@ -31840,7 +31864,7 @@ var EVERGREEN_SECURITY = {
|
|
|
31840
31864
|
var EVERGREEN_REDEMPTION_INFO = {
|
|
31841
31865
|
instantWithdrawalVault: "No" /* NO */,
|
|
31842
31866
|
redemptionsInfo: [{
|
|
31843
|
-
title: "
|
|
31867
|
+
title: "Typical Duration",
|
|
31844
31868
|
description: "1-2 hours"
|
|
31845
31869
|
}],
|
|
31846
31870
|
alerts: [{
|
|
@@ -31883,7 +31907,9 @@ var createUniversalStrategy = (params) => ({
|
|
|
31883
31907
|
investmentSteps,
|
|
31884
31908
|
tags: params.tags,
|
|
31885
31909
|
security: EVERGREEN_SECURITY,
|
|
31886
|
-
redemptionInfo: EVERGREEN_REDEMPTION_INFO
|
|
31910
|
+
redemptionInfo: EVERGREEN_REDEMPTION_INFO,
|
|
31911
|
+
usualTimeToEarnings: null,
|
|
31912
|
+
usualTimeToEarningsDescription: null
|
|
31887
31913
|
});
|
|
31888
31914
|
var UniversalStrategies = [
|
|
31889
31915
|
createUniversalStrategy({
|
|
@@ -32006,20 +32032,19 @@ var UniversalLstMultiplierStrategy = class _UniversalLstMultiplierStrategy exten
|
|
|
32006
32032
|
// todo support lending assets of underlying as well (like if xSTRK looping is not viable, simply supply STRK)
|
|
32007
32033
|
getVesuAdapters() {
|
|
32008
32034
|
const adapters = [];
|
|
32009
|
-
for (const
|
|
32010
|
-
const
|
|
32011
|
-
|
|
32012
|
-
|
|
32013
|
-
|
|
32014
|
-
|
|
32015
|
-
|
|
32016
|
-
|
|
32017
|
-
|
|
32018
|
-
|
|
32019
|
-
|
|
32020
|
-
|
|
32021
|
-
|
|
32022
|
-
}
|
|
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);
|
|
32023
32048
|
}
|
|
32024
32049
|
return adapters;
|
|
32025
32050
|
}
|
|
@@ -32645,7 +32670,7 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
|
|
|
32645
32670
|
id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, underlyingToken.symbol, poolId.toString()),
|
|
32646
32671
|
adapter: vesuAdapterLST
|
|
32647
32672
|
}]);
|
|
32648
|
-
const { isV2, addr:
|
|
32673
|
+
const { isV2, addr: poolAddr } = getVesuSingletonAddress(poolId);
|
|
32649
32674
|
const VESU_MULTIPLY = isV2 ? vesuAdapterLST.VESU_MULTIPLY : vesuAdapterLST.VESU_MULTIPLY_V1;
|
|
32650
32675
|
const leafIdApprove = getVesuGenericLegId(poolId.toString(), "multiple_approve" /* MULTIPLE_APPROVE */);
|
|
32651
32676
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, VESU_MULTIPLY, leafIdApprove).bind(commonAdapter));
|
|
@@ -32655,9 +32680,11 @@ function addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commo
|
|
|
32655
32680
|
vaultSettings.leafAdapters.push(vesuAdapterLST.getVesuModifyDelegationAdapter(leafIdDelegationOff).bind(vesuAdapterLST));
|
|
32656
32681
|
const multiplID = getVesuLegId("multiply_vesu" /* MULTIPLY_VESU */, underlyingToken.symbol, poolId.toString());
|
|
32657
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));
|
|
32658
32685
|
return vesuAdapterLST;
|
|
32659
32686
|
}
|
|
32660
|
-
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId
|
|
32687
|
+
function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultPoolId) {
|
|
32661
32688
|
vaultSettings.leafAdapters = [];
|
|
32662
32689
|
const pool1 = vaultSettings.defaultPoolId;
|
|
32663
32690
|
if (!pool1.eq(defaultPoolId)) {
|
|
@@ -32676,10 +32703,11 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
|
|
|
32676
32703
|
id: "common_adapter" /* COMMON */,
|
|
32677
32704
|
adapter: commonAdapter
|
|
32678
32705
|
}]);
|
|
32679
|
-
|
|
32680
|
-
altSupportedPoolIds.map((poolId) => addVesuLeaves(poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
|
|
32706
|
+
vaultSettings.borrowable_assets.map((borrowableAsset) => addVesuLeaves(borrowableAsset.poolId, lstSymbol, underlyingSymbol, vaultSettings, commonAdapter));
|
|
32681
32707
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, AVNU_EXCHANGE, "avnu_mul_approve_withdr" /* AVNU_MULTIPLY_APPROVE_WITHDRAW */).bind(commonAdapter));
|
|
32682
|
-
|
|
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);
|
|
32683
32711
|
const debtAsset = borrowableAsset;
|
|
32684
32712
|
const approve_debt_token_id = getAvnuManageIDs("avnu_mul_approve_dep" /* AVNU_MULTIPLY_APPROVE_DEPOSIT */, debtAsset.symbol);
|
|
32685
32713
|
const swap_debt_token_id = getAvnuManageIDs("avnu_mul_swap_dep" /* AVNU_MULTIPLY_SWAP_DEPOSIT */, debtAsset.symbol);
|
|
@@ -32687,23 +32715,9 @@ function getLooperSettings2(lstSymbol, underlyingSymbol, vaultSettings, defaultP
|
|
|
32687
32715
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(debtAsset.address, AVNU_EXCHANGE, approve_debt_token_id).bind(commonAdapter));
|
|
32688
32716
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(debtAsset.address, lstToken.address, swap_debt_token_id, false).bind(commonAdapter));
|
|
32689
32717
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(lstToken.address, debtAsset.address, swap_lst_token_id, false).bind(commonAdapter));
|
|
32690
|
-
const vesuAdapter = new VesuAdapter({
|
|
32691
|
-
poolId: pool1,
|
|
32692
|
-
collateral: lstToken,
|
|
32693
|
-
debt: debtAsset,
|
|
32694
|
-
vaultAllocator: vaultSettings.vaultAllocator,
|
|
32695
|
-
id: getVesuLegId("vesu_leg1" /* VESU_LEG1 */, debtAsset.symbol, pool1.toString())
|
|
32696
|
-
});
|
|
32697
|
-
const { isV2, addr: poolAddr } = getVesuSingletonAddress(pool1);
|
|
32698
|
-
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, poolAddr, "approve_token1" /* APPROVE_TOKEN1 */).bind(commonAdapter));
|
|
32699
|
-
vaultSettings.leafAdapters.push(vesuAdapter.getModifyPosition.bind(vesuAdapter));
|
|
32700
|
-
if (borrowableAsset.address.eq(underlyingToken.address)) {
|
|
32701
|
-
continue;
|
|
32702
|
-
}
|
|
32703
32718
|
}
|
|
32704
32719
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(lstToken.address, vaultSettings.vaultAddress, "approve_bring_liquidity" /* APPROVE_BRING_LIQUIDITY */).bind(commonAdapter));
|
|
32705
32720
|
vaultSettings.leafAdapters.push(commonAdapter.getBringLiquidityAdapter("bring_liquidity" /* BRING_LIQUIDITY */).bind(commonAdapter));
|
|
32706
|
-
vaultSettings.leafAdapters.push(vesuAdapterLST.getDefispringRewardsAdapter("defispring_rewards" /* DEFISPRING_REWARDS */).bind(vesuAdapterLST));
|
|
32707
32721
|
const STRKToken = Global.getDefaultTokens().find((token) => token.symbol === "STRK");
|
|
32708
32722
|
vaultSettings.leafAdapters.push(commonAdapter.getApproveAdapter(STRKToken.address, AVNU_EXCHANGE, "approve_swap_token1" /* APPROVE_SWAP_TOKEN1 */).bind(commonAdapter));
|
|
32709
32723
|
vaultSettings.leafAdapters.push(commonAdapter.getAvnuAdapter(STRKToken.address, lstToken.address, "avnu_swap_rewards" /* AVNU_SWAP_REWARDS */, false).bind(commonAdapter));
|
|
@@ -32762,7 +32776,7 @@ var _riskFactor4 = [
|
|
|
32762
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." },
|
|
32763
32777
|
{ type: "Depeg Risk" /* DEPEG_RISK */, value: 2 /* GENERALLY_STABLE */, weight: 25, reason: "Generally stable pegged assets" }
|
|
32764
32778
|
];
|
|
32765
|
-
var
|
|
32779
|
+
var btcBorrowableAssets = [
|
|
32766
32780
|
"WBTC",
|
|
32767
32781
|
"tBTC",
|
|
32768
32782
|
"LBTC",
|
|
@@ -32778,10 +32792,12 @@ var hyperxSTRK = {
|
|
|
32778
32792
|
adapters: [],
|
|
32779
32793
|
targetHealthFactor: 1.1,
|
|
32780
32794
|
minHealthFactor: 1.05,
|
|
32781
|
-
borrowable_assets:
|
|
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
|
+
],
|
|
32782
32799
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "STRK"),
|
|
32783
|
-
defaultPoolId: VesuPools.Re7xSTRK
|
|
32784
|
-
altSupportedPoolIds: [VesuPools.Prime]
|
|
32800
|
+
defaultPoolId: VesuPools.Re7xSTRK
|
|
32785
32801
|
};
|
|
32786
32802
|
var hyperxWBTC = {
|
|
32787
32803
|
vaultAddress: ContractAddr.from("0x2da9d0f96a46b453f55604313785dc866424240b1c6811d13bef594343db818"),
|
|
@@ -32793,10 +32809,14 @@ var hyperxWBTC = {
|
|
|
32793
32809
|
adapters: [],
|
|
32794
32810
|
targetHealthFactor: 1.1,
|
|
32795
32811
|
minHealthFactor: 1.05,
|
|
32796
|
-
borrowable_assets:
|
|
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
|
+
],
|
|
32797
32818
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "WBTC"),
|
|
32798
32819
|
defaultPoolId: VesuPools.Re7xBTC,
|
|
32799
|
-
altSupportedPoolIds: [VesuPools.Prime],
|
|
32800
32820
|
redemptionRouter: ContractAddr.from("0x6ea649f402898f69baf775c1afdd08522c071c640b9c4460192070ec2b96417")
|
|
32801
32821
|
};
|
|
32802
32822
|
var hyperxtBTC = {
|
|
@@ -32809,10 +32829,11 @@ var hyperxtBTC = {
|
|
|
32809
32829
|
adapters: [],
|
|
32810
32830
|
targetHealthFactor: 1.1,
|
|
32811
32831
|
minHealthFactor: 1.05,
|
|
32812
|
-
borrowable_assets:
|
|
32832
|
+
borrowable_assets: [
|
|
32833
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "tBTC" || token.symbol === "WBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
32834
|
+
],
|
|
32813
32835
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "tBTC"),
|
|
32814
32836
|
defaultPoolId: VesuPools.Re7xBTC,
|
|
32815
|
-
altSupportedPoolIds: [],
|
|
32816
32837
|
redemptionRouter: ContractAddr.from("0x3de9c409d1e357e25778fb7a3e2e2393666956846a5c2caa607296fa8e76b5d")
|
|
32817
32838
|
};
|
|
32818
32839
|
var hyperxsBTC = {
|
|
@@ -32825,10 +32846,11 @@ var hyperxsBTC = {
|
|
|
32825
32846
|
adapters: [],
|
|
32826
32847
|
targetHealthFactor: 1.1,
|
|
32827
32848
|
minHealthFactor: 1.05,
|
|
32828
|
-
borrowable_assets:
|
|
32849
|
+
borrowable_assets: [
|
|
32850
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "solvBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
32851
|
+
],
|
|
32829
32852
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "solvBTC"),
|
|
32830
|
-
defaultPoolId: VesuPools.Re7xBTC
|
|
32831
|
-
altSupportedPoolIds: []
|
|
32853
|
+
defaultPoolId: VesuPools.Re7xBTC
|
|
32832
32854
|
};
|
|
32833
32855
|
var hyperxLBTC = {
|
|
32834
32856
|
vaultAddress: ContractAddr.from("0x64cf24d4883fe569926419a0569ab34497c6956a1a308fa883257f7486d7030"),
|
|
@@ -32840,10 +32862,11 @@ var hyperxLBTC = {
|
|
|
32840
32862
|
adapters: [],
|
|
32841
32863
|
targetHealthFactor: 1.1,
|
|
32842
32864
|
minHealthFactor: 1.05,
|
|
32843
|
-
borrowable_assets:
|
|
32865
|
+
borrowable_assets: [
|
|
32866
|
+
...Global.getDefaultTokens().filter((token) => token.symbol === "LBTC").map((token) => ({ token, poolId: VesuPools.Re7xBTC }))
|
|
32867
|
+
],
|
|
32844
32868
|
underlyingToken: Global.getDefaultTokens().find((token) => token.symbol === "LBTC"),
|
|
32845
|
-
defaultPoolId: VesuPools.Re7xBTC
|
|
32846
|
-
altSupportedPoolIds: []
|
|
32869
|
+
defaultPoolId: VesuPools.Re7xBTC
|
|
32847
32870
|
};
|
|
32848
32871
|
function getInvestmentSteps(lstSymbol, underlyingSymbol) {
|
|
32849
32872
|
return [
|
|
@@ -32930,7 +32953,7 @@ var HYPER_LST_SECURITY = {
|
|
|
32930
32953
|
var HYPER_LST_REDEMPTION_INFO = {
|
|
32931
32954
|
instantWithdrawalVault: "No" /* NO */,
|
|
32932
32955
|
redemptionsInfo: [{
|
|
32933
|
-
title: "
|
|
32956
|
+
title: "Typical Duration",
|
|
32934
32957
|
description: "1-2 hours"
|
|
32935
32958
|
}],
|
|
32936
32959
|
alerts: [{
|
|
@@ -32939,12 +32962,12 @@ var HYPER_LST_REDEMPTION_INFO = {
|
|
|
32939
32962
|
tab: "withdraw"
|
|
32940
32963
|
}]
|
|
32941
32964
|
};
|
|
32942
|
-
function getStrategySettings(lstSymbol, underlyingSymbol,
|
|
32965
|
+
function getStrategySettings(lstSymbol, underlyingSymbol, settings, isPreview = false) {
|
|
32943
32966
|
return {
|
|
32944
32967
|
id: `hyper_${lstSymbol.toLowerCase()}`,
|
|
32945
32968
|
name: `Hyper ${lstSymbol}`,
|
|
32946
32969
|
description: getDescription2(lstSymbol, underlyingSymbol),
|
|
32947
|
-
address:
|
|
32970
|
+
address: settings.vaultAddress,
|
|
32948
32971
|
launchBlock: 0,
|
|
32949
32972
|
type: "Other",
|
|
32950
32973
|
vaultType: {
|
|
@@ -32959,7 +32982,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
32959
32982
|
additionalInfo: getLooperSettings2(
|
|
32960
32983
|
lstSymbol,
|
|
32961
32984
|
underlyingSymbol,
|
|
32962
|
-
|
|
32985
|
+
settings,
|
|
32963
32986
|
lstSymbol === "xSTRK" ? VesuPools.Re7xSTRK : VesuPools.Re7xBTC
|
|
32964
32987
|
),
|
|
32965
32988
|
risk: {
|
|
@@ -32977,7 +33000,7 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
32977
33000
|
logo: "https://assets.troves.fi/integrations/unwraplabs/white.png"
|
|
32978
33001
|
},
|
|
32979
33002
|
settings: createHyperLSTSettings(lstSymbol, underlyingSymbol),
|
|
32980
|
-
contractDetails: getContractDetails(
|
|
33003
|
+
contractDetails: getContractDetails(settings),
|
|
32981
33004
|
faqs: getFAQs2(lstSymbol, underlyingSymbol),
|
|
32982
33005
|
investmentSteps: getInvestmentSteps(lstSymbol, underlyingSymbol),
|
|
32983
33006
|
isPreview,
|
|
@@ -32985,6 +33008,8 @@ function getStrategySettings(lstSymbol, underlyingSymbol, addresses, isPreview =
|
|
|
32985
33008
|
tags: lstSymbol.includes("BTC") ? ["BTC" /* BTC */, "Maxx" /* LEVERED */] : ["Maxx" /* LEVERED */],
|
|
32986
33009
|
security: HYPER_LST_SECURITY,
|
|
32987
33010
|
redemptionInfo: HYPER_LST_REDEMPTION_INFO,
|
|
33011
|
+
usualTimeToEarnings: "2 weeks",
|
|
33012
|
+
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.",
|
|
32988
33013
|
points: [{
|
|
32989
33014
|
multiplier: 4,
|
|
32990
33015
|
logo: "https://endur.fi/favicon.ico",
|
|
@@ -33863,6 +33888,7 @@ export {
|
|
|
33863
33888
|
VesuAdapter,
|
|
33864
33889
|
VesuAmountDenomination,
|
|
33865
33890
|
VesuAmountType,
|
|
33891
|
+
VesuPoolMetadata,
|
|
33866
33892
|
VesuPools,
|
|
33867
33893
|
VesuRebalance,
|
|
33868
33894
|
VesuRebalanceStrategies,
|
package/package.json
CHANGED
|
@@ -201,6 +201,8 @@ export interface IStrategyMetadata<T> {
|
|
|
201
201
|
tags?: StrategyTag[];
|
|
202
202
|
security: SecurityMetadata;
|
|
203
203
|
redemptionInfo: RedemptionInfo;
|
|
204
|
+
usualTimeToEarnings: null | string; // e.g. "2 weeks" // some strats grow like step functions
|
|
205
|
+
usualTimeToEarningsDescription: null | string; // e.g. "LSTs price on DEX goes up roughly every 2 weeks"
|
|
204
206
|
settings?: StrategySettings;
|
|
205
207
|
// Legacy field for multi-step strategies (deprecated, use investmentFlows instead)
|
|
206
208
|
actions?: Array<{
|
|
@@ -2431,6 +2431,8 @@ const xSTRKSTRK: IStrategyMetadata<CLVaultStrategySettings> = {
|
|
|
2431
2431
|
redemptionsInfo: [],
|
|
2432
2432
|
alerts: [],
|
|
2433
2433
|
},
|
|
2434
|
+
usualTimeToEarnings: null,
|
|
2435
|
+
usualTimeToEarningsDescription: null,
|
|
2434
2436
|
};
|
|
2435
2437
|
|
|
2436
2438
|
// Helper to create common LST alerts
|
package/src/strategies/sensei.ts
CHANGED
|
@@ -646,6 +646,8 @@ export const SenseiStrategies: IStrategyMetadata<SenseiVaultSettings>[] =
|
|
|
646
646
|
redemptionsInfo: [],
|
|
647
647
|
alerts: [],
|
|
648
648
|
},
|
|
649
|
+
usualTimeToEarnings: "2 weeks",
|
|
650
|
+
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.",
|
|
649
651
|
points: [{
|
|
650
652
|
multiplier: 4,
|
|
651
653
|
logo: 'https://endur.fi/favicon.ico',
|
|
@@ -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:
|
|
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:
|
|
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;
|