@defisaver/positions-sdk 2.1.8 → 2.1.9-dev-spark-2
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/cjs/fluid/index.js +40 -12
- package/cjs/helpers/sparkHelpers/index.d.ts +4 -4
- package/cjs/helpers/sparkHelpers/index.js +12 -12
- package/cjs/markets/fluid/index.d.ts +4 -0
- package/cjs/markets/fluid/index.js +4 -0
- package/cjs/portfolio/index.js +1 -1
- package/cjs/spark/index.d.ts +3 -1
- package/cjs/spark/index.js +24 -24
- package/cjs/types/fluid.d.ts +7 -3
- package/cjs/types/fluid.js +4 -0
- package/cjs/types/spark.d.ts +3 -4
- package/esm/fluid/index.js +40 -12
- package/esm/helpers/sparkHelpers/index.d.ts +4 -4
- package/esm/helpers/sparkHelpers/index.js +13 -13
- package/esm/markets/fluid/index.d.ts +4 -0
- package/esm/markets/fluid/index.js +4 -0
- package/esm/portfolio/index.js +1 -1
- package/esm/spark/index.d.ts +3 -1
- package/esm/spark/index.js +25 -25
- package/esm/types/fluid.d.ts +7 -3
- package/esm/types/fluid.js +4 -0
- package/esm/types/spark.d.ts +3 -4
- package/package.json +2 -2
- package/src/fluid/index.ts +44 -14
- package/src/helpers/sparkHelpers/index.ts +14 -11
- package/src/markets/fluid/index.ts +4 -0
- package/src/portfolio/index.ts +1 -1
- package/src/spark/index.ts +36 -25
- package/src/types/fluid.ts +4 -0
- package/src/types/spark.ts +3 -5
package/cjs/fluid/index.js
CHANGED
|
@@ -1099,19 +1099,21 @@ const _getFluidTokenData = (provider, network, token) => __awaiter(void 0, void
|
|
|
1099
1099
|
exports._getFluidTokenData = _getFluidTokenData;
|
|
1100
1100
|
const getFluidTokenData = (provider, network, token) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getFluidTokenData)((0, viem_1.getViemProvider)(provider, network), network, token); });
|
|
1101
1101
|
exports.getFluidTokenData = getFluidTokenData;
|
|
1102
|
-
const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
1103
|
-
|
|
1104
|
-
const rewardsRate = new decimal_js_1.default(fTokenData.rewardsRate).div(1e12).toString();
|
|
1102
|
+
const parseFDepositTokenData = (fTokenData, userPosition, apiData, fTokenAddress) => {
|
|
1103
|
+
var _a, _b;
|
|
1105
1104
|
const decimals = fTokenData.decimals.toString();
|
|
1106
1105
|
const depositRate = new decimal_js_1.default((0, utils_1.getEthAmountForDecimals)(fTokenData.convertToShares.toString(), decimals)).toString();
|
|
1107
1106
|
const withdrawRate = new decimal_js_1.default((0, utils_1.getEthAmountForDecimals)(fTokenData.convertToAssets.toString(), decimals)).toString();
|
|
1107
|
+
const supplyRate = new decimal_js_1.default((apiData === null || apiData === void 0 ? void 0 : apiData.supplyRate) || '0').div(100).toString();
|
|
1108
|
+
const rewardRates = ((_a = apiData === null || apiData === void 0 ? void 0 : apiData.rewards) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => acc.add(new decimal_js_1.default(item.rate || '0').div(100)), new decimal_js_1.default(0))) || '0';
|
|
1109
|
+
const stakeRate = new decimal_js_1.default(((_b = apiData === null || apiData === void 0 ? void 0 : apiData.asset) === null || _b === void 0 ? void 0 : _b.stakingApr) || '0').div(100).toString();
|
|
1108
1110
|
return {
|
|
1109
1111
|
fTokenAddress,
|
|
1110
1112
|
fTokenSymbol: fTokenData.symbol,
|
|
1111
1113
|
decimals,
|
|
1112
1114
|
totalDeposited: (0, utils_1.getEthAmountForDecimals)(fTokenData.totalAssets.toString(), decimals),
|
|
1113
1115
|
withdrawable: (0, utils_1.getEthAmountForDecimals)(fTokenData.withdrawable.toString(), decimals),
|
|
1114
|
-
apy: new decimal_js_1.default(supplyRate).
|
|
1116
|
+
apy: new decimal_js_1.default(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
|
|
1115
1117
|
depositRate,
|
|
1116
1118
|
withdrawRate,
|
|
1117
1119
|
deposited: (0, utils_1.getEthAmountForDecimals)(userPosition.underlyingAssets.toString(), decimals),
|
|
@@ -1121,21 +1123,44 @@ const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
|
1121
1123
|
const _getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1122
1124
|
const view = (0, contracts_1.FluidViewContractViem)(provider, network);
|
|
1123
1125
|
const fTokenAddress = (0, markets_1.getFTokenAddress)(token, network);
|
|
1124
|
-
const [userPosition, fTokenData] = yield
|
|
1125
|
-
|
|
1126
|
+
const [[userPosition, fTokenData], rewardsApiResponse,] = yield Promise.all([
|
|
1127
|
+
view.read.getUserEarnPositionWithFToken([fTokenAddress, address]),
|
|
1128
|
+
fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
|
|
1129
|
+
]);
|
|
1130
|
+
let rewardsData = { rewards: [] };
|
|
1131
|
+
if (!rewardsApiResponse.ok) {
|
|
1132
|
+
console.log('External API Failure: Failed to fetch fluid rewards APY');
|
|
1133
|
+
}
|
|
1134
|
+
else {
|
|
1135
|
+
rewardsData = yield rewardsApiResponse.json();
|
|
1136
|
+
}
|
|
1137
|
+
return parseFDepositTokenData(fTokenData, userPosition, rewardsData, fTokenAddress);
|
|
1126
1138
|
});
|
|
1127
1139
|
exports._getFluidDepositData = _getFluidDepositData;
|
|
1128
1140
|
const getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getFluidDepositData)((0, viem_1.getViemProvider)(provider, network), network, token, address); });
|
|
1129
1141
|
exports.getFluidDepositData = getFluidDepositData;
|
|
1130
1142
|
const _getAllUserEarnPositionsWithFTokens = (provider, network, user) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1131
1143
|
const view = (0, contracts_1.FluidViewContractViem)(provider, network);
|
|
1132
|
-
const [userPositions, fTokensData] = yield
|
|
1144
|
+
const [[userPositions, fTokensData], rewardsApiResponse,] = yield Promise.all([
|
|
1145
|
+
view.read.getAllUserEarnPositionsWithFTokens([user]),
|
|
1146
|
+
fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens`),
|
|
1147
|
+
]);
|
|
1148
|
+
let rewardsData = {
|
|
1149
|
+
data: [{ address: constants_1.ZERO_ADDRESS, rewards: [] }],
|
|
1150
|
+
};
|
|
1151
|
+
if (!rewardsApiResponse.ok) {
|
|
1152
|
+
console.log('External API Failure: Failed to fetch fluid rewards APY');
|
|
1153
|
+
}
|
|
1154
|
+
else {
|
|
1155
|
+
rewardsData = yield rewardsApiResponse.json();
|
|
1156
|
+
}
|
|
1133
1157
|
const parsedRes = fTokensData.reduce((acc, fTokenData, i) => {
|
|
1134
1158
|
const userPosition = userPositions[i];
|
|
1135
1159
|
const deposited = userPosition === null || userPosition === void 0 ? void 0 : userPosition.underlyingAssets;
|
|
1136
1160
|
if (Number(deposited) > 0) {
|
|
1137
1161
|
const fTokenAddress = fTokenData.tokenAddress;
|
|
1138
|
-
|
|
1162
|
+
const apiData = rewardsData.data.find((item) => (0, utils_1.compareAddresses)(item.address, fTokenAddress));
|
|
1163
|
+
acc.push(parseFDepositTokenData(fTokenData, userPosition, apiData, fTokenAddress));
|
|
1139
1164
|
}
|
|
1140
1165
|
return acc;
|
|
1141
1166
|
}, []);
|
|
@@ -1184,19 +1209,22 @@ const getTokenPricePortfolio = (token, provider, network) => __awaiter(void 0, v
|
|
|
1184
1209
|
const tokensWithoutChainlinkPrices = ['sUSDS', 'USDA', 'ezETH', 'rsETH', 'weETHs', 'LBTC'];
|
|
1185
1210
|
const handleTokenWithoutChainlinkPrice = (token, prices) => {
|
|
1186
1211
|
if (token === 'sUSDS') {
|
|
1187
|
-
return new decimal_js_1.default('
|
|
1212
|
+
return new decimal_js_1.default('107057929').div(1e8).toString();
|
|
1188
1213
|
}
|
|
1189
1214
|
if (token === 'USDA') {
|
|
1190
1215
|
return new decimal_js_1.default('100000000').div(1e8).toString();
|
|
1191
1216
|
}
|
|
1217
|
+
if (token === 'wstUSR') {
|
|
1218
|
+
return new decimal_js_1.default('111280000').div(1e8).toString();
|
|
1219
|
+
}
|
|
1192
1220
|
if (token === 'ezETH') {
|
|
1193
|
-
return new decimal_js_1.default(prices.ETH).mul(1.
|
|
1221
|
+
return new decimal_js_1.default(prices.ETH).mul(1.06).toString();
|
|
1194
1222
|
}
|
|
1195
1223
|
if (token === 'rsETH') {
|
|
1196
|
-
return new decimal_js_1.default(prices.wstETH).mul(1.
|
|
1224
|
+
return new decimal_js_1.default(prices.wstETH).mul(1.0557).toString();
|
|
1197
1225
|
}
|
|
1198
1226
|
if (token === 'weETHs') {
|
|
1199
|
-
return new decimal_js_1.default(prices.wstETH).mul(1.
|
|
1227
|
+
return new decimal_js_1.default(prices.wstETH).mul(1.032).toString();
|
|
1200
1228
|
}
|
|
1201
1229
|
if (token === 'LBTC') {
|
|
1202
1230
|
return prices.WBTC;
|
|
@@ -7,19 +7,19 @@ export declare const sparkIsInIsolationMode: ({ usedAssets, assetsData }: {
|
|
|
7
7
|
export declare const sparkGetCollSuppliedAssets: ({ usedAssets }: {
|
|
8
8
|
usedAssets: SparkUsedAssets;
|
|
9
9
|
}) => import("../../types").SparkUsedAsset[];
|
|
10
|
-
export declare const sparkGetSuppliableAssets: ({ usedAssets, eModeCategory,
|
|
10
|
+
export declare const sparkGetSuppliableAssets: ({ usedAssets, eModeCategory, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => {
|
|
11
11
|
symbol: string;
|
|
12
12
|
canBeCollateral: boolean;
|
|
13
13
|
}[];
|
|
14
|
-
export declare const sparkGetSuppliableAsCollAssets: ({ usedAssets, eModeCategory,
|
|
14
|
+
export declare const sparkGetSuppliableAsCollAssets: ({ usedAssets, eModeCategory, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => {
|
|
15
15
|
symbol: string;
|
|
16
16
|
canBeCollateral: boolean;
|
|
17
17
|
}[];
|
|
18
|
-
export declare const sparkGetEmodeMutableProps: ({ eModeCategory, assetsData, }: SparkHelperCommon, _asset: string) => {
|
|
18
|
+
export declare const sparkGetEmodeMutableProps: ({ eModeCategory, eModeCategoriesData, assetsData, }: SparkHelperCommon, _asset: string) => {
|
|
19
19
|
liquidationRatio: string;
|
|
20
20
|
collateralFactor: string;
|
|
21
21
|
};
|
|
22
|
-
export declare const sparkGetAggregatedPositionData: ({ usedAssets, eModeCategory,
|
|
22
|
+
export declare const sparkGetAggregatedPositionData: ({ usedAssets, eModeCategory, eModeCategoriesData, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => SparkAggregatedPositionData;
|
|
23
23
|
export declare const getApyAfterValuesEstimation: (selectedMarket: SparkMarketData, actions: [{
|
|
24
24
|
action: string;
|
|
25
25
|
amount: string;
|
|
@@ -38,8 +38,8 @@ exports.sparkIsInIsolationMode = sparkIsInIsolationMode;
|
|
|
38
38
|
const sparkGetCollSuppliedAssets = ({ usedAssets }) => Object.values(usedAssets).filter(({ isSupplied, collateral }) => isSupplied && collateral);
|
|
39
39
|
exports.sparkGetCollSuppliedAssets = sparkGetCollSuppliedAssets;
|
|
40
40
|
const sparkGetSuppliableAssets = (_a) => {
|
|
41
|
-
var { usedAssets, eModeCategory,
|
|
42
|
-
const data = Object.assign({ usedAssets, eModeCategory,
|
|
41
|
+
var { usedAssets, eModeCategory, assetsData, selectedMarket, network } = _a, rest = __rest(_a, ["usedAssets", "eModeCategory", "assetsData", "selectedMarket", "network"]);
|
|
42
|
+
const data = Object.assign({ usedAssets, eModeCategory, assetsData, selectedMarket, network }, rest);
|
|
43
43
|
const collAccountAssets = (0, exports.sparkGetCollSuppliedAssets)(data);
|
|
44
44
|
const marketAssets = Object.values(assetsData);
|
|
45
45
|
if ((0, exports.sparkIsInIsolationMode)(data)) {
|
|
@@ -50,27 +50,27 @@ const sparkGetSuppliableAssets = (_a) => {
|
|
|
50
50
|
};
|
|
51
51
|
exports.sparkGetSuppliableAssets = sparkGetSuppliableAssets;
|
|
52
52
|
const sparkGetSuppliableAsCollAssets = (_a) => {
|
|
53
|
-
var { usedAssets, eModeCategory,
|
|
54
|
-
return (0, exports.sparkGetSuppliableAssets)(Object.assign({ usedAssets, eModeCategory,
|
|
53
|
+
var { usedAssets, eModeCategory, assetsData, selectedMarket, network } = _a, rest = __rest(_a, ["usedAssets", "eModeCategory", "assetsData", "selectedMarket", "network"]);
|
|
54
|
+
return (0, exports.sparkGetSuppliableAssets)(Object.assign({ usedAssets, eModeCategory, assetsData, selectedMarket, network }, rest)).filter(({ canBeCollateral }) => canBeCollateral);
|
|
55
55
|
};
|
|
56
56
|
exports.sparkGetSuppliableAsCollAssets = sparkGetSuppliableAsCollAssets;
|
|
57
|
-
const sparkGetEmodeMutableProps = ({ eModeCategory, assetsData, }, _asset) => {
|
|
58
|
-
|
|
59
|
-
const asset = (0, utils_1.wethToEth)(_asset);
|
|
57
|
+
const sparkGetEmodeMutableProps = ({ eModeCategory, eModeCategoriesData, assetsData, }, _asset) => {
|
|
58
|
+
const asset = (0, utils_1.getNativeAssetFromWrapped)(_asset);
|
|
60
59
|
const assetData = assetsData[asset];
|
|
60
|
+
const eModeCategoryData = (eModeCategoriesData === null || eModeCategoriesData === void 0 ? void 0 : eModeCategoriesData[eModeCategory]) || { collateralAssets: [], collateralFactor: '0', liquidationRatio: '0' };
|
|
61
61
|
if (eModeCategory === 0
|
|
62
|
-
||
|
|
63
|
-
|| new decimal_js_1.default(
|
|
62
|
+
|| !eModeCategoryData.collateralAssets.includes(asset)
|
|
63
|
+
|| new decimal_js_1.default(eModeCategoryData.collateralFactor || 0).eq(0)) {
|
|
64
64
|
const { liquidationRatio, collateralFactor } = assetData;
|
|
65
65
|
return ({ liquidationRatio, collateralFactor });
|
|
66
66
|
}
|
|
67
|
-
const { liquidationRatio, collateralFactor } =
|
|
67
|
+
const { liquidationRatio, collateralFactor } = eModeCategoryData;
|
|
68
68
|
return ({ liquidationRatio, collateralFactor });
|
|
69
69
|
};
|
|
70
70
|
exports.sparkGetEmodeMutableProps = sparkGetEmodeMutableProps;
|
|
71
71
|
const sparkGetAggregatedPositionData = (_a) => {
|
|
72
|
-
var { usedAssets, eModeCategory,
|
|
73
|
-
const data = Object.assign({ usedAssets, eModeCategory,
|
|
72
|
+
var { usedAssets, eModeCategory, eModeCategoriesData, assetsData, selectedMarket, network } = _a, rest = __rest(_a, ["usedAssets", "eModeCategory", "eModeCategoriesData", "assetsData", "selectedMarket", "network"]);
|
|
73
|
+
const data = Object.assign({ usedAssets, eModeCategory, eModeCategoriesData, assetsData, selectedMarket, network }, rest);
|
|
74
74
|
const payload = {};
|
|
75
75
|
payload.suppliedUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied }) => isSupplied, ({ suppliedUsd }) => suppliedUsd);
|
|
76
76
|
payload.suppliedCollateralUsd = (0, moneymarket_1.getAssetsTotal)(usedAssets, ({ isSupplied, collateral }) => isSupplied && collateral, ({ suppliedUsd }) => suppliedUsd);
|
|
@@ -244,17 +244,21 @@ export declare const FluidFTokens: (networkId: NetworkNumber) => {
|
|
|
244
244
|
wstETH: string;
|
|
245
245
|
GHO: string;
|
|
246
246
|
sUSDS: string;
|
|
247
|
+
USDtb: string;
|
|
247
248
|
} | {
|
|
248
249
|
ETH: string;
|
|
249
250
|
USDC: string;
|
|
250
251
|
USDT: string;
|
|
251
252
|
wstETH: string;
|
|
252
253
|
ARB: string;
|
|
254
|
+
GHO: string;
|
|
255
|
+
sUSDS: string;
|
|
253
256
|
} | {
|
|
254
257
|
ETH: string;
|
|
255
258
|
USDC: string;
|
|
256
259
|
EURC: string;
|
|
257
260
|
wstETH: string;
|
|
258
261
|
sUSDS: string;
|
|
262
|
+
GHO: string;
|
|
259
263
|
};
|
|
260
264
|
export declare const getFTokenAddress: (token: string, networkId: NetworkNumber) => any;
|
|
@@ -2415,6 +2415,7 @@ const FluidMainnetFTokenAddresses = {
|
|
|
2415
2415
|
[types_1.FluidMainnetDepositToken.wstETH]: '0x2411802D8BEA09be0aF8fD8D08314a63e706b29C',
|
|
2416
2416
|
[types_1.FluidMainnetDepositToken.GHO]: '0x6A29A46E21C730DcA1d8b23d637c101cec605C5B',
|
|
2417
2417
|
[types_1.FluidMainnetDepositToken.sUSDS]: '0x2BBE31d63E6813E3AC858C04dae43FB2a72B0D11',
|
|
2418
|
+
[types_1.FluidMainnetDepositToken.USDtb]: '0x15e8c742614b5D8Db4083A41Df1A14F5D2bFB400',
|
|
2418
2419
|
};
|
|
2419
2420
|
const FluidArbitrumFTokenAddresses = {
|
|
2420
2421
|
[types_1.FluidArbitrumDepositToken.ETH]: '0x45Df0656F8aDf017590009d2f1898eeca4F0a205',
|
|
@@ -2422,6 +2423,8 @@ const FluidArbitrumFTokenAddresses = {
|
|
|
2422
2423
|
[types_1.FluidArbitrumDepositToken.USDT]: '0x4A03F37e7d3fC243e3f99341d36f4b829BEe5E03',
|
|
2423
2424
|
[types_1.FluidArbitrumDepositToken.wstETH]: '0x66C25Cd75EBdAA7E04816F643d8E46cecd3183c9',
|
|
2424
2425
|
[types_1.FluidArbitrumDepositToken.ARB]: '0xbE3860FD4c3facDf8ad57Aa8c1A36D6dc4390a49',
|
|
2426
|
+
[types_1.FluidArbitrumDepositToken.GHO]: '0x037dFf1C12805707d7c29F163E0F09fC9102657A',
|
|
2427
|
+
[types_1.FluidArbitrumDepositToken.sUSDS]: '0x3459fcc94390C3372c0F7B4cD3F8795F0E5aFE96',
|
|
2425
2428
|
};
|
|
2426
2429
|
const FluidBaseFTokenAddresses = {
|
|
2427
2430
|
[types_1.FluidBaseDepositToken.ETH]: '0x9272D6153133175175Bc276512B2336BE3931CE9',
|
|
@@ -2429,6 +2432,7 @@ const FluidBaseFTokenAddresses = {
|
|
|
2429
2432
|
[types_1.FluidBaseDepositToken.EURC]: '0x1943FA26360f038230442525Cf1B9125b5DCB401',
|
|
2430
2433
|
[types_1.FluidBaseDepositToken.wstETH]: '0x896E39f0E9af61ECA9dD2938E14543506ef2c2b5',
|
|
2431
2434
|
[types_1.FluidBaseDepositToken.sUSDS]: '0xf62e339f21d8018940f188F6987Bcdf02A849619',
|
|
2435
|
+
[types_1.FluidBaseDepositToken.GHO]: '0x8DdbfFA3CFda2355a23d6B11105AC624BDbE3631',
|
|
2432
2436
|
};
|
|
2433
2437
|
const FluidFTokens = (networkId) => {
|
|
2434
2438
|
switch (networkId) {
|
package/cjs/portfolio/index.js
CHANGED
|
@@ -452,7 +452,7 @@ function getPortfolioData(provider, network, defaultProvider, addresses, summerF
|
|
|
452
452
|
}))).flat(),
|
|
453
453
|
...sparkMarkets.map((market) => allAddresses.map((address) => __awaiter(this, void 0, void 0, function* () {
|
|
454
454
|
try {
|
|
455
|
-
const accData = yield (0, spark_1._getSparkAccountData)(client, network, address, { selectedMarket: market, assetsData: sparkMarketsData[market.value].assetsData });
|
|
455
|
+
const accData = yield (0, spark_1._getSparkAccountData)(client, network, address, { selectedMarket: market, assetsData: sparkMarketsData[market.value].assetsData, eModeCategoriesData: sparkMarketsData[market.value].eModeCategoriesData });
|
|
456
456
|
if (new decimal_js_1.default(accData.suppliedUsd).gt(0))
|
|
457
457
|
positions[address.toLowerCase()].spark[market.value] = { error: '', data: accData };
|
|
458
458
|
}
|
package/cjs/spark/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client } from 'viem';
|
|
2
2
|
import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances } from '../types/common';
|
|
3
|
-
import { SparkEModeCategoryDataMapping, SparkAssetsData, SparkMarketData, SparkMarketsData, SparkPositionData, SparkUsedAssets } from '../types';
|
|
3
|
+
import { SparkEModeCategoryDataMapping, SparkAssetsData, SparkMarketData, SparkMarketsData, SparkPositionData, SparkUsedAssets, EModeCategoriesData } from '../types';
|
|
4
4
|
export declare const sparkEmodeCategoriesMapping: (extractedState: {
|
|
5
5
|
assetsData: SparkAssetsData;
|
|
6
6
|
}, usedAssets: SparkUsedAssets) => {
|
|
@@ -32,9 +32,11 @@ export declare const getSparkAccountBalances: (provider: EthereumProvider, netwo
|
|
|
32
32
|
export declare const _getSparkAccountData: (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: {
|
|
33
33
|
selectedMarket: SparkMarketData;
|
|
34
34
|
assetsData: SparkAssetsData;
|
|
35
|
+
eModeCategoriesData: EModeCategoriesData;
|
|
35
36
|
}) => Promise<SparkPositionData>;
|
|
36
37
|
export declare const getSparkAccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: {
|
|
37
38
|
selectedMarket: SparkMarketData;
|
|
38
39
|
assetsData: SparkAssetsData;
|
|
40
|
+
eModeCategoriesData: EModeCategoriesData;
|
|
39
41
|
}) => Promise<SparkPositionData>;
|
|
40
42
|
export declare const getSparkFullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, market: SparkMarketData) => Promise<SparkPositionData>;
|
package/cjs/spark/index.js
CHANGED
|
@@ -28,7 +28,6 @@ const sparkEmodeCategoriesMapping = (extractedState, usedAssets) => {
|
|
|
28
28
|
const usedAssetsValues = Object.values(usedAssets);
|
|
29
29
|
const categoriesMapping = {};
|
|
30
30
|
Object.values(assetsData).forEach((a) => {
|
|
31
|
-
var _a;
|
|
32
31
|
const borrowingOnlyFromCategory = a.eModeCategory === 0
|
|
33
32
|
? true
|
|
34
33
|
: !usedAssetsValues.filter(u => u.isBorrowed && u.eModeCategory !== a.eModeCategory).length;
|
|
@@ -39,8 +38,6 @@ const sparkEmodeCategoriesMapping = (extractedState, usedAssets) => {
|
|
|
39
38
|
enteringTerms,
|
|
40
39
|
canEnterCategory: !enteringTerms.includes(false),
|
|
41
40
|
id: a.eModeCategory,
|
|
42
|
-
data: a.eModeCategoryData,
|
|
43
|
-
assets: a.eModeCategory === 0 ? [] : [...(((_a = categoriesMapping[a.eModeCategory]) === null || _a === void 0 ? void 0 : _a.assets) || []), a.symbol],
|
|
44
41
|
enabledData: {
|
|
45
42
|
ratio: afterEnteringCategory.ratio,
|
|
46
43
|
liqRatio: afterEnteringCategory.liqRatio,
|
|
@@ -56,18 +53,17 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
56
53
|
const marketAddress = selectedMarket.providerAddress;
|
|
57
54
|
const loanInfoContract = (0, contracts_1.SparkViewContractViem)(provider, network);
|
|
58
55
|
const sparkIncentivesContract = (0, contracts_1.SparkIncentiveDataProviderContractViem)(provider, network);
|
|
59
|
-
|
|
56
|
+
// eslint-disable-next-line prefer-const
|
|
57
|
+
let [loanInfo, rewardInfo] = yield Promise.all([
|
|
60
58
|
loanInfoContract.read.getFullTokensInfo([marketAddress, selectedMarket.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a)).address)]),
|
|
61
|
-
|
|
59
|
+
sparkIncentivesContract.read.getReservesIncentivesData([marketAddress]),
|
|
62
60
|
]);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}, {});
|
|
70
|
-
}
|
|
61
|
+
rewardInfo = rewardInfo.reduce((all, market) => {
|
|
62
|
+
// eslint-disable-next-line no-param-reassign
|
|
63
|
+
all[market.underlyingAsset] = market;
|
|
64
|
+
return all;
|
|
65
|
+
}, {});
|
|
66
|
+
const eModeCategoriesData = {};
|
|
71
67
|
const assetsData = yield Promise.all(loanInfo
|
|
72
68
|
.map((market, i) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
69
|
const symbol = selectedMarket.assets[i];
|
|
@@ -82,6 +78,15 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
82
78
|
if (new decimal_js_1.default(marketLiquidity).lt(0)) {
|
|
83
79
|
marketLiquidity = '0';
|
|
84
80
|
}
|
|
81
|
+
eModeCategoriesData[+market.emodeCategory.toString()] = {
|
|
82
|
+
id: +market.emodeCategory.toString(),
|
|
83
|
+
label: market.label,
|
|
84
|
+
liquidationBonus: new decimal_js_1.default(market.liquidationBonus).div(10000).toString(),
|
|
85
|
+
liquidationRatio: new decimal_js_1.default(market.liquidationThreshold).div(10000).toString(),
|
|
86
|
+
collateralFactor: new decimal_js_1.default(market.ltv).div(10000).toString(),
|
|
87
|
+
collateralAssets: eModeCategoriesData[+market.emodeCategory.toString()] ? [...eModeCategoriesData[+market.emodeCategory.toString()].collateralAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
|
|
88
|
+
borrowAssets: eModeCategoriesData[+market.emodeCategory.toString()] ? [...eModeCategoriesData[+market.emodeCategory.toString()].borrowAssets, selectedMarket.assets[i]] : [selectedMarket.assets[i]],
|
|
89
|
+
};
|
|
85
90
|
return ({
|
|
86
91
|
symbol: selectedMarket.assets[i],
|
|
87
92
|
isIsolated: new decimal_js_1.default(market.debtCeilingForIsolationMode.toString()).gt(0),
|
|
@@ -116,13 +121,6 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
116
121
|
isolationModeBorrowingEnabled: market.isolationModeBorrowingEnabled,
|
|
117
122
|
isFlashLoanEnabled: market.isFlashLoanEnabled,
|
|
118
123
|
aTokenAddress: market.aTokenAddress,
|
|
119
|
-
eModeCategoryData: {
|
|
120
|
-
label: market.label,
|
|
121
|
-
liquidationBonus: new decimal_js_1.default(market.liquidationBonus).div(10000).toString(),
|
|
122
|
-
liquidationRatio: new decimal_js_1.default(market.liquidationThreshold).div(10000).toString(),
|
|
123
|
-
collateralFactor: new decimal_js_1.default(market.ltv).div(10000).toString(),
|
|
124
|
-
priceSource: market.priceSource,
|
|
125
|
-
},
|
|
126
124
|
supplyIncentives: [],
|
|
127
125
|
borrowIncentives: [],
|
|
128
126
|
});
|
|
@@ -154,7 +152,7 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
154
152
|
return;
|
|
155
153
|
rewardForMarket.aIncentiveData.rewardsTokenInformation.forEach(supplyRewardData => {
|
|
156
154
|
if (supplyRewardData) {
|
|
157
|
-
if (supplyRewardData.emissionEndTimestamp * 1000 < Date.now())
|
|
155
|
+
if (+(supplyRewardData.emissionEndTimestamp.toString()) * 1000 < Date.now())
|
|
158
156
|
return;
|
|
159
157
|
const supplyEmissionPerSecond = supplyRewardData.emissionPerSecond;
|
|
160
158
|
const supplyRewardPrice = new decimal_js_1.default(supplyRewardData.rewardPriceFeed).div(Math.pow(10, supplyRewardData.priceFeedDecimals))
|
|
@@ -175,7 +173,7 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
175
173
|
});
|
|
176
174
|
rewardForMarket.vIncentiveData.rewardsTokenInformation.forEach(borrowRewardData => {
|
|
177
175
|
if (borrowRewardData) {
|
|
178
|
-
if (borrowRewardData.emissionEndTimestamp * 1000 < Date.now())
|
|
176
|
+
if (+(borrowRewardData.emissionEndTimestamp.toString()) * 1000 < Date.now())
|
|
179
177
|
return;
|
|
180
178
|
const supplyEmissionPerSecond = borrowRewardData.emissionPerSecond;
|
|
181
179
|
const supplyRewardPrice = new decimal_js_1.default(borrowRewardData.rewardPriceFeed).div(Math.pow(10, borrowRewardData.priceFeedDecimals))
|
|
@@ -207,7 +205,9 @@ const _getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(vo
|
|
|
207
205
|
.forEach((assetData, i) => {
|
|
208
206
|
payload[assetData.symbol] = Object.assign(Object.assign({}, assetData), { sortIndex: i });
|
|
209
207
|
});
|
|
210
|
-
|
|
208
|
+
eModeCategoriesData[0].collateralAssets = Object.values(payload).map(a => a.symbol);
|
|
209
|
+
eModeCategoriesData[0].borrowAssets = Object.values(payload).map(a => a.symbol);
|
|
210
|
+
return { assetsData: payload, eModeCategoriesData };
|
|
211
211
|
});
|
|
212
212
|
exports._getSparkMarketsData = _getSparkMarketsData;
|
|
213
213
|
const getSparkMarketsData = (provider, network, selectedMarket) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getSparkMarketsData)((0, viem_1.getViemProvider)(provider, network), network, selectedMarket); });
|
|
@@ -349,7 +349,7 @@ const getSparkAccountData = (provider, network, address, extractedState) => __aw
|
|
|
349
349
|
exports.getSparkAccountData = getSparkAccountData;
|
|
350
350
|
const getSparkFullPositionData = (provider, network, address, market) => __awaiter(void 0, void 0, void 0, function* () {
|
|
351
351
|
const marketData = yield (0, exports.getSparkMarketsData)(provider, network, market);
|
|
352
|
-
const positionData = yield (0, exports.getSparkAccountData)(provider, network, address, { assetsData: marketData.assetsData, selectedMarket: market });
|
|
352
|
+
const positionData = yield (0, exports.getSparkAccountData)(provider, network, address, { assetsData: marketData.assetsData, selectedMarket: market, eModeCategoriesData: marketData.eModeCategoriesData });
|
|
353
353
|
return positionData;
|
|
354
354
|
});
|
|
355
355
|
exports.getSparkFullPositionData = getSparkFullPositionData;
|
package/cjs/types/fluid.d.ts
CHANGED
|
@@ -149,21 +149,25 @@ export declare enum FluidMainnetDepositToken {
|
|
|
149
149
|
USDC = "USDC",
|
|
150
150
|
USDT = "USDT",
|
|
151
151
|
GHO = "GHO",
|
|
152
|
-
sUSDS = "sUSDS"
|
|
152
|
+
sUSDS = "sUSDS",
|
|
153
|
+
USDtb = "USDtb"
|
|
153
154
|
}
|
|
154
155
|
export declare enum FluidArbitrumDepositToken {
|
|
155
156
|
ETH = "ETH",
|
|
156
157
|
wstETH = "wstETH",
|
|
157
158
|
USDC = "USDC",
|
|
158
159
|
USDT = "USDT",
|
|
159
|
-
ARB = "ARB"
|
|
160
|
+
ARB = "ARB",
|
|
161
|
+
GHO = "GHO",
|
|
162
|
+
sUSDS = "sUSDS"
|
|
160
163
|
}
|
|
161
164
|
export declare enum FluidBaseDepositToken {
|
|
162
165
|
ETH = "ETH",
|
|
163
166
|
USDC = "USDC",
|
|
164
167
|
wstETH = "wstETH",
|
|
165
168
|
EURC = "EURC",
|
|
166
|
-
sUSDS = "sUSDS"
|
|
169
|
+
sUSDS = "sUSDS",
|
|
170
|
+
GHO = "GHO"
|
|
167
171
|
}
|
|
168
172
|
export type FluidDepositTokenByNetwork = {
|
|
169
173
|
[NetworkNumber.Eth]: FluidMainnetDepositToken;
|
package/cjs/types/fluid.js
CHANGED
|
@@ -136,6 +136,7 @@ var FluidMainnetDepositToken;
|
|
|
136
136
|
FluidMainnetDepositToken["USDT"] = "USDT";
|
|
137
137
|
FluidMainnetDepositToken["GHO"] = "GHO";
|
|
138
138
|
FluidMainnetDepositToken["sUSDS"] = "sUSDS";
|
|
139
|
+
FluidMainnetDepositToken["USDtb"] = "USDtb";
|
|
139
140
|
})(FluidMainnetDepositToken || (exports.FluidMainnetDepositToken = FluidMainnetDepositToken = {}));
|
|
140
141
|
var FluidArbitrumDepositToken;
|
|
141
142
|
(function (FluidArbitrumDepositToken) {
|
|
@@ -144,6 +145,8 @@ var FluidArbitrumDepositToken;
|
|
|
144
145
|
FluidArbitrumDepositToken["USDC"] = "USDC";
|
|
145
146
|
FluidArbitrumDepositToken["USDT"] = "USDT";
|
|
146
147
|
FluidArbitrumDepositToken["ARB"] = "ARB";
|
|
148
|
+
FluidArbitrumDepositToken["GHO"] = "GHO";
|
|
149
|
+
FluidArbitrumDepositToken["sUSDS"] = "sUSDS";
|
|
147
150
|
})(FluidArbitrumDepositToken || (exports.FluidArbitrumDepositToken = FluidArbitrumDepositToken = {}));
|
|
148
151
|
var FluidBaseDepositToken;
|
|
149
152
|
(function (FluidBaseDepositToken) {
|
|
@@ -152,6 +155,7 @@ var FluidBaseDepositToken;
|
|
|
152
155
|
FluidBaseDepositToken["wstETH"] = "wstETH";
|
|
153
156
|
FluidBaseDepositToken["EURC"] = "EURC";
|
|
154
157
|
FluidBaseDepositToken["sUSDS"] = "sUSDS";
|
|
158
|
+
FluidBaseDepositToken["GHO"] = "GHO";
|
|
155
159
|
})(FluidBaseDepositToken || (exports.FluidBaseDepositToken = FluidBaseDepositToken = {}));
|
|
156
160
|
var FluidVaultType;
|
|
157
161
|
(function (FluidVaultType) {
|
package/cjs/types/spark.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EModeCategoriesData } from './aave';
|
|
1
2
|
import { EthAddress, MMAssetData, MMPositionData, MMUsedAsset, NetworkNumber } from './common';
|
|
2
3
|
export declare enum SparkVersions {
|
|
3
4
|
SparkV1 = "v1default"
|
|
@@ -13,8 +14,6 @@ export interface SparkEModeCategoryDataMapping {
|
|
|
13
14
|
enteringTerms: boolean[];
|
|
14
15
|
canEnterCategory: boolean;
|
|
15
16
|
id: number;
|
|
16
|
-
data: SparkEModeCategoryData;
|
|
17
|
-
assets: string[];
|
|
18
17
|
enabledData: {
|
|
19
18
|
ratio: string;
|
|
20
19
|
liqRatio: string;
|
|
@@ -45,7 +44,6 @@ export interface SparkAssetData extends MMAssetData {
|
|
|
45
44
|
usageAsCollateralEnabled: boolean;
|
|
46
45
|
isIsolated: boolean;
|
|
47
46
|
eModeCategory: number;
|
|
48
|
-
eModeCategoryData: SparkEModeCategoryData;
|
|
49
47
|
liquidationRatio: string;
|
|
50
48
|
}
|
|
51
49
|
export interface SparkAssetsData {
|
|
@@ -53,6 +51,7 @@ export interface SparkAssetsData {
|
|
|
53
51
|
}
|
|
54
52
|
export type SparkMarketsData = {
|
|
55
53
|
assetsData: SparkAssetsData;
|
|
54
|
+
eModeCategoriesData: EModeCategoriesData;
|
|
56
55
|
};
|
|
57
56
|
export interface SparkUsedAsset extends MMUsedAsset {
|
|
58
57
|
stableBorrowRate: string;
|
|
@@ -71,7 +70,7 @@ export interface SparkUsedAssets {
|
|
|
71
70
|
export interface SparkHelperCommon {
|
|
72
71
|
usedAssets: SparkUsedAssets;
|
|
73
72
|
eModeCategory: number;
|
|
74
|
-
|
|
73
|
+
eModeCategoriesData?: EModeCategoriesData;
|
|
75
74
|
assetsData: SparkAssetsData;
|
|
76
75
|
selectedMarket?: SparkMarketData;
|
|
77
76
|
network?: NetworkNumber;
|
package/esm/fluid/index.js
CHANGED
|
@@ -1081,19 +1081,21 @@ export const _getFluidTokenData = (provider, network, token) => __awaiter(void 0
|
|
|
1081
1081
|
};
|
|
1082
1082
|
});
|
|
1083
1083
|
export const getFluidTokenData = (provider, network, token) => __awaiter(void 0, void 0, void 0, function* () { return _getFluidTokenData(getViemProvider(provider, network), network, token); });
|
|
1084
|
-
const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
1085
|
-
|
|
1086
|
-
const rewardsRate = new Dec(fTokenData.rewardsRate).div(1e12).toString();
|
|
1084
|
+
const parseFDepositTokenData = (fTokenData, userPosition, apiData, fTokenAddress) => {
|
|
1085
|
+
var _a, _b;
|
|
1087
1086
|
const decimals = fTokenData.decimals.toString();
|
|
1088
1087
|
const depositRate = new Dec(getEthAmountForDecimals(fTokenData.convertToShares.toString(), decimals)).toString();
|
|
1089
1088
|
const withdrawRate = new Dec(getEthAmountForDecimals(fTokenData.convertToAssets.toString(), decimals)).toString();
|
|
1089
|
+
const supplyRate = new Dec((apiData === null || apiData === void 0 ? void 0 : apiData.supplyRate) || '0').div(100).toString();
|
|
1090
|
+
const rewardRates = ((_a = apiData === null || apiData === void 0 ? void 0 : apiData.rewards) === null || _a === void 0 ? void 0 : _a.reduce((acc, item) => acc.add(new Dec(item.rate || '0').div(100)), new Dec(0))) || '0';
|
|
1091
|
+
const stakeRate = new Dec(((_b = apiData === null || apiData === void 0 ? void 0 : apiData.asset) === null || _b === void 0 ? void 0 : _b.stakingApr) || '0').div(100).toString();
|
|
1090
1092
|
return {
|
|
1091
1093
|
fTokenAddress,
|
|
1092
1094
|
fTokenSymbol: fTokenData.symbol,
|
|
1093
1095
|
decimals,
|
|
1094
1096
|
totalDeposited: getEthAmountForDecimals(fTokenData.totalAssets.toString(), decimals),
|
|
1095
1097
|
withdrawable: getEthAmountForDecimals(fTokenData.withdrawable.toString(), decimals),
|
|
1096
|
-
apy: new Dec(supplyRate).
|
|
1098
|
+
apy: new Dec(supplyRate).plus(rewardRates).plus(stakeRate).toString(),
|
|
1097
1099
|
depositRate,
|
|
1098
1100
|
withdrawRate,
|
|
1099
1101
|
deposited: getEthAmountForDecimals(userPosition.underlyingAssets.toString(), decimals),
|
|
@@ -1103,19 +1105,42 @@ const parseFDepositTokenData = (fTokenData, userPosition, fTokenAddress) => {
|
|
|
1103
1105
|
export const _getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1104
1106
|
const view = FluidViewContractViem(provider, network);
|
|
1105
1107
|
const fTokenAddress = getFTokenAddress(token, network);
|
|
1106
|
-
const [userPosition, fTokenData] = yield
|
|
1107
|
-
|
|
1108
|
+
const [[userPosition, fTokenData], rewardsApiResponse,] = yield Promise.all([
|
|
1109
|
+
view.read.getUserEarnPositionWithFToken([fTokenAddress, address]),
|
|
1110
|
+
fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens/${fTokenAddress}`),
|
|
1111
|
+
]);
|
|
1112
|
+
let rewardsData = { rewards: [] };
|
|
1113
|
+
if (!rewardsApiResponse.ok) {
|
|
1114
|
+
console.log('External API Failure: Failed to fetch fluid rewards APY');
|
|
1115
|
+
}
|
|
1116
|
+
else {
|
|
1117
|
+
rewardsData = yield rewardsApiResponse.json();
|
|
1118
|
+
}
|
|
1119
|
+
return parseFDepositTokenData(fTokenData, userPosition, rewardsData, fTokenAddress);
|
|
1108
1120
|
});
|
|
1109
1121
|
export const getFluidDepositData = (provider, network, token, address) => __awaiter(void 0, void 0, void 0, function* () { return _getFluidDepositData(getViemProvider(provider, network), network, token, address); });
|
|
1110
1122
|
export const _getAllUserEarnPositionsWithFTokens = (provider, network, user) => __awaiter(void 0, void 0, void 0, function* () {
|
|
1111
1123
|
const view = FluidViewContractViem(provider, network);
|
|
1112
|
-
const [userPositions, fTokensData] = yield
|
|
1124
|
+
const [[userPositions, fTokensData], rewardsApiResponse,] = yield Promise.all([
|
|
1125
|
+
view.read.getAllUserEarnPositionsWithFTokens([user]),
|
|
1126
|
+
fetch(`https://api.fluid.instadapp.io/v2/lending/${network}/tokens`),
|
|
1127
|
+
]);
|
|
1128
|
+
let rewardsData = {
|
|
1129
|
+
data: [{ address: ZERO_ADDRESS, rewards: [] }],
|
|
1130
|
+
};
|
|
1131
|
+
if (!rewardsApiResponse.ok) {
|
|
1132
|
+
console.log('External API Failure: Failed to fetch fluid rewards APY');
|
|
1133
|
+
}
|
|
1134
|
+
else {
|
|
1135
|
+
rewardsData = yield rewardsApiResponse.json();
|
|
1136
|
+
}
|
|
1113
1137
|
const parsedRes = fTokensData.reduce((acc, fTokenData, i) => {
|
|
1114
1138
|
const userPosition = userPositions[i];
|
|
1115
1139
|
const deposited = userPosition === null || userPosition === void 0 ? void 0 : userPosition.underlyingAssets;
|
|
1116
1140
|
if (Number(deposited) > 0) {
|
|
1117
1141
|
const fTokenAddress = fTokenData.tokenAddress;
|
|
1118
|
-
|
|
1142
|
+
const apiData = rewardsData.data.find((item) => compareAddresses(item.address, fTokenAddress));
|
|
1143
|
+
acc.push(parseFDepositTokenData(fTokenData, userPosition, apiData, fTokenAddress));
|
|
1119
1144
|
}
|
|
1120
1145
|
return acc;
|
|
1121
1146
|
}, []);
|
|
@@ -1160,19 +1185,22 @@ const getTokenPricePortfolio = (token, provider, network) => __awaiter(void 0, v
|
|
|
1160
1185
|
const tokensWithoutChainlinkPrices = ['sUSDS', 'USDA', 'ezETH', 'rsETH', 'weETHs', 'LBTC'];
|
|
1161
1186
|
const handleTokenWithoutChainlinkPrice = (token, prices) => {
|
|
1162
1187
|
if (token === 'sUSDS') {
|
|
1163
|
-
return new Dec('
|
|
1188
|
+
return new Dec('107057929').div(1e8).toString();
|
|
1164
1189
|
}
|
|
1165
1190
|
if (token === 'USDA') {
|
|
1166
1191
|
return new Dec('100000000').div(1e8).toString();
|
|
1167
1192
|
}
|
|
1193
|
+
if (token === 'wstUSR') {
|
|
1194
|
+
return new Dec('111280000').div(1e8).toString();
|
|
1195
|
+
}
|
|
1168
1196
|
if (token === 'ezETH') {
|
|
1169
|
-
return new Dec(prices.ETH).mul(1.
|
|
1197
|
+
return new Dec(prices.ETH).mul(1.06).toString();
|
|
1170
1198
|
}
|
|
1171
1199
|
if (token === 'rsETH') {
|
|
1172
|
-
return new Dec(prices.wstETH).mul(1.
|
|
1200
|
+
return new Dec(prices.wstETH).mul(1.0557).toString();
|
|
1173
1201
|
}
|
|
1174
1202
|
if (token === 'weETHs') {
|
|
1175
|
-
return new Dec(prices.wstETH).mul(1.
|
|
1203
|
+
return new Dec(prices.wstETH).mul(1.032).toString();
|
|
1176
1204
|
}
|
|
1177
1205
|
if (token === 'LBTC') {
|
|
1178
1206
|
return prices.WBTC;
|
|
@@ -7,19 +7,19 @@ export declare const sparkIsInIsolationMode: ({ usedAssets, assetsData }: {
|
|
|
7
7
|
export declare const sparkGetCollSuppliedAssets: ({ usedAssets }: {
|
|
8
8
|
usedAssets: SparkUsedAssets;
|
|
9
9
|
}) => import("../../types").SparkUsedAsset[];
|
|
10
|
-
export declare const sparkGetSuppliableAssets: ({ usedAssets, eModeCategory,
|
|
10
|
+
export declare const sparkGetSuppliableAssets: ({ usedAssets, eModeCategory, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => {
|
|
11
11
|
symbol: string;
|
|
12
12
|
canBeCollateral: boolean;
|
|
13
13
|
}[];
|
|
14
|
-
export declare const sparkGetSuppliableAsCollAssets: ({ usedAssets, eModeCategory,
|
|
14
|
+
export declare const sparkGetSuppliableAsCollAssets: ({ usedAssets, eModeCategory, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => {
|
|
15
15
|
symbol: string;
|
|
16
16
|
canBeCollateral: boolean;
|
|
17
17
|
}[];
|
|
18
|
-
export declare const sparkGetEmodeMutableProps: ({ eModeCategory, assetsData, }: SparkHelperCommon, _asset: string) => {
|
|
18
|
+
export declare const sparkGetEmodeMutableProps: ({ eModeCategory, eModeCategoriesData, assetsData, }: SparkHelperCommon, _asset: string) => {
|
|
19
19
|
liquidationRatio: string;
|
|
20
20
|
collateralFactor: string;
|
|
21
21
|
};
|
|
22
|
-
export declare const sparkGetAggregatedPositionData: ({ usedAssets, eModeCategory,
|
|
22
|
+
export declare const sparkGetAggregatedPositionData: ({ usedAssets, eModeCategory, eModeCategoriesData, assetsData, selectedMarket, network, ...rest }: SparkHelperCommon) => SparkAggregatedPositionData;
|
|
23
23
|
export declare const getApyAfterValuesEstimation: (selectedMarket: SparkMarketData, actions: [{
|
|
24
24
|
action: string;
|
|
25
25
|
amount: string;
|