@defisaver/positions-sdk 1.0.26-dev-portfolio-15 → 1.0.26-dev-portfolio-16
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/aaveV3/index.d.ts +4 -4
- package/cjs/aaveV3/index.js +14 -14
- package/cjs/markets/aave/marketAssets.js +1 -1
- package/cjs/staking/staking.js +3 -1
- package/esm/aaveV3/index.d.ts +4 -4
- package/esm/aaveV3/index.js +14 -14
- package/esm/markets/aave/marketAssets.js +1 -1
- package/esm/staking/staking.js +3 -1
- package/package.json +3 -3
- package/src/aaveV3/index.ts +12 -12
- package/src/markets/aave/marketAssets.ts +1 -1
- package/src/staking/staking.ts +2 -1
package/cjs/aaveV3/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances
|
|
|
4
4
|
export declare const aaveV3EmodeCategoriesMapping: (extractedState: any, usedAssets: AaveV3UsedAssets) => {
|
|
5
5
|
[key: number]: EModeCategoryDataMapping;
|
|
6
6
|
};
|
|
7
|
-
export declare function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData>;
|
|
8
|
-
export declare function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData>;
|
|
7
|
+
export declare function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
|
|
8
|
+
export declare function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
|
|
9
9
|
export declare const EMPTY_AAVE_DATA: {
|
|
10
10
|
usedAssets: {};
|
|
11
11
|
suppliedUsd: string;
|
|
@@ -29,6 +29,6 @@ export declare const EMPTY_AAVE_DATA: {
|
|
|
29
29
|
};
|
|
30
30
|
export declare const _getAaveV3AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
31
31
|
export declare const getAaveV3AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
32
|
-
export declare const _getAaveV3AccountData: (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
|
|
33
|
-
export declare const getAaveV3AccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
|
|
32
|
+
export declare const _getAaveV3AccountData: (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: "latest" | number) => Promise<AaveV3PositionData>;
|
|
33
|
+
export declare const getAaveV3AccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: "latest" | number) => Promise<AaveV3PositionData>;
|
|
34
34
|
export declare const getAaveV3FullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, market: AaveMarketInfo) => Promise<AaveV3PositionData>;
|
package/cjs/aaveV3/index.js
CHANGED
|
@@ -51,8 +51,8 @@ const aaveV3EmodeCategoriesMapping = (extractedState, usedAssets) => {
|
|
|
51
51
|
return categoriesMapping;
|
|
52
52
|
};
|
|
53
53
|
exports.aaveV3EmodeCategoriesMapping = aaveV3EmodeCategoriesMapping;
|
|
54
|
-
function _getAaveV3MarketData(
|
|
55
|
-
return __awaiter(this,
|
|
54
|
+
function _getAaveV3MarketData(provider_1, network_1, market_1) {
|
|
55
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, market, blockNumber = 'latest') {
|
|
56
56
|
const _addresses = market.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a), network).address);
|
|
57
57
|
const isL2 = (0, utils_1.isLayer2Network)(network);
|
|
58
58
|
const loanInfoContract = (0, contracts_1.AaveV3ViewContractViem)(provider, network);
|
|
@@ -61,10 +61,10 @@ function _getAaveV3MarketData(provider, network, market) {
|
|
|
61
61
|
const networksWithIncentives = [common_1.NetworkNumber.Eth, common_1.NetworkNumber.Arb, common_1.NetworkNumber.Opt];
|
|
62
62
|
// eslint-disable-next-line prefer-const
|
|
63
63
|
let [loanInfo, eModesInfo, isBorrowAllowed, rewardInfo] = yield Promise.all([
|
|
64
|
-
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses]),
|
|
65
|
-
loanInfoContract.read.getAllEmodes([marketAddress]),
|
|
66
|
-
loanInfoContract.read.isBorrowAllowed([marketAddress]), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
67
|
-
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress]) : null,
|
|
64
|
+
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses], (0, viem_1.setViemBlockNumber)(blockNumber)),
|
|
65
|
+
loanInfoContract.read.getAllEmodes([marketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)),
|
|
66
|
+
loanInfoContract.read.isBorrowAllowed([marketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
67
|
+
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress], (0, viem_1.setViemBlockNumber)(blockNumber)) : null,
|
|
68
68
|
]);
|
|
69
69
|
isBorrowAllowed = (0, utils_1.isLayer2Network)(network) ? isBorrowAllowed : true;
|
|
70
70
|
const eModeCategoriesData = {};
|
|
@@ -263,9 +263,9 @@ function _getAaveV3MarketData(provider, network, market) {
|
|
|
263
263
|
return { assetsData: payload, eModeCategoriesData };
|
|
264
264
|
});
|
|
265
265
|
}
|
|
266
|
-
function getAaveV3MarketData(
|
|
267
|
-
return __awaiter(this,
|
|
268
|
-
return _getAaveV3MarketData((0, viem_1.getViemProvider)(provider, network), network, market);
|
|
266
|
+
function getAaveV3MarketData(provider_1, network_1, market_1) {
|
|
267
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, market, blockNumber = 'latest') {
|
|
268
|
+
return _getAaveV3MarketData((0, viem_1.getViemProvider)(provider, network), network, market, blockNumber);
|
|
269
269
|
});
|
|
270
270
|
}
|
|
271
271
|
exports.EMPTY_AAVE_DATA = {
|
|
@@ -325,7 +325,7 @@ const _getAaveV3AccountBalances = (provider, network, block, addressMapping, add
|
|
|
325
325
|
exports._getAaveV3AccountBalances = _getAaveV3AccountBalances;
|
|
326
326
|
const getAaveV3AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () { return (0, exports._getAaveV3AccountBalances)((0, viem_1.getViemProvider)(provider, network), network, block, addressMapping, address); });
|
|
327
327
|
exports.getAaveV3AccountBalances = getAaveV3AccountBalances;
|
|
328
|
-
const _getAaveV3AccountData = (
|
|
328
|
+
const _getAaveV3AccountData = (provider_1, network_1, address_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, extractedState, blockNumber = 'latest') {
|
|
329
329
|
const { selectedMarket: market, assetsData, } = extractedState;
|
|
330
330
|
let payload = Object.assign(Object.assign({}, exports.EMPTY_AAVE_DATA), { lastUpdated: Date.now() });
|
|
331
331
|
if (!address) {
|
|
@@ -337,9 +337,9 @@ const _getAaveV3AccountData = (provider, network, address, extractedState) => __
|
|
|
337
337
|
const _addresses = market.assets.map((a) => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a), network).address);
|
|
338
338
|
const middleAddressIndex = Math.floor(_addresses.length / 2); // split addresses in half to avoid gas limit by multicall
|
|
339
339
|
const [eModeCategory, tokenBalances1, tokenBalances2] = yield Promise.all([
|
|
340
|
-
lendingPoolContract.read.getUserEMode([address]),
|
|
341
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex)]),
|
|
342
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length)]),
|
|
340
|
+
lendingPoolContract.read.getUserEMode([address], (0, viem_1.setViemBlockNumber)(blockNumber)),
|
|
341
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex)], (0, viem_1.setViemBlockNumber)(blockNumber)),
|
|
342
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length)], (0, viem_1.setViemBlockNumber)(blockNumber)),
|
|
343
343
|
]);
|
|
344
344
|
const loanInfo = [...tokenBalances1, ...tokenBalances2];
|
|
345
345
|
const usedAssets = {};
|
|
@@ -398,7 +398,7 @@ const _getAaveV3AccountData = (provider, network, address, extractedState) => __
|
|
|
398
398
|
return payload;
|
|
399
399
|
});
|
|
400
400
|
exports._getAaveV3AccountData = _getAaveV3AccountData;
|
|
401
|
-
const getAaveV3AccountData = (
|
|
401
|
+
const getAaveV3AccountData = (provider_1, network_1, address_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, extractedState, blockNumber = 'latest') { return (0, exports._getAaveV3AccountData)((0, viem_1.getViemProvider)(provider, network), network, address, extractedState, blockNumber); });
|
|
402
402
|
exports.getAaveV3AccountData = getAaveV3AccountData;
|
|
403
403
|
const getAaveV3FullPositionData = (provider, network, address, market) => __awaiter(void 0, void 0, void 0, function* () {
|
|
404
404
|
const marketData = yield getAaveV3MarketData(provider, network, market);
|
|
@@ -10,7 +10,7 @@ exports.aaveV1AssetsDefaultMarket = [
|
|
|
10
10
|
exports.aaveV2AssetsDefaultMarket = ['USDT', 'WBTC', 'ETH', 'YFI', 'ZRX', 'UNI', 'AAVE', 'BAT', 'BUSD', 'DAI', 'ENJ', 'KNCL', 'LINK', 'MANA', 'MKR', 'REN', 'SNX', 'SUSD', 'TUSD', 'USDC', 'CRV', 'GUSD', 'BAL', 'xSUSHI', 'RENFIL', 'RAI', 'AMPL', 'USDP', 'DPI', 'FRAX', 'FEI', 'stETH', 'ENS', 'UST', 'CVX', '1INCH', 'LUSD'];
|
|
11
11
|
exports.aaveV3AssetsDefaultMarketEth = [
|
|
12
12
|
'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
|
|
13
|
-
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
|
|
13
|
+
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
|
|
14
14
|
];
|
|
15
15
|
exports.aaveV3AssetsDefaultMarketOpt = [
|
|
16
16
|
'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
|
package/cjs/staking/staking.js
CHANGED
|
@@ -45,7 +45,7 @@ const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function*
|
|
|
45
45
|
const data = yield res.json();
|
|
46
46
|
return String(data.apy);
|
|
47
47
|
});
|
|
48
|
-
exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
|
|
48
|
+
exports.STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
|
|
49
49
|
exports.getStakingApy = (0, memoizee_1.default)((asset) => __awaiter(void 0, void 0, void 0, function* () {
|
|
50
50
|
try {
|
|
51
51
|
if (asset === 'stETH' || asset === 'wstETH')
|
|
@@ -83,6 +83,8 @@ exports.getStakingApy = (0, memoizee_1.default)((asset) => __awaiter(void 0, voi
|
|
|
83
83
|
return yield getApyFromDfsApi('PT USDe July');
|
|
84
84
|
if (asset === 'PT eUSDe Aug')
|
|
85
85
|
return yield getApyFromDfsApi('PT eUSDe Aug');
|
|
86
|
+
if (asset === 'PT sUSDe Sep')
|
|
87
|
+
return yield getApyFromDfsApi('PT sUSDe Sep');
|
|
86
88
|
if (asset === 'tETH')
|
|
87
89
|
return yield getApyFromDfsApi('tETH');
|
|
88
90
|
}
|
package/esm/aaveV3/index.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { Blockish, EthAddress, EthereumProvider, NetworkNumber, PositionBalances
|
|
|
4
4
|
export declare const aaveV3EmodeCategoriesMapping: (extractedState: any, usedAssets: AaveV3UsedAssets) => {
|
|
5
5
|
[key: number]: EModeCategoryDataMapping;
|
|
6
6
|
};
|
|
7
|
-
export declare function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData>;
|
|
8
|
-
export declare function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData>;
|
|
7
|
+
export declare function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
|
|
8
|
+
export declare function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo, blockNumber?: 'latest' | number): Promise<AaveV3MarketData>;
|
|
9
9
|
export declare const EMPTY_AAVE_DATA: {
|
|
10
10
|
usedAssets: {};
|
|
11
11
|
suppliedUsd: string;
|
|
@@ -29,6 +29,6 @@ export declare const EMPTY_AAVE_DATA: {
|
|
|
29
29
|
};
|
|
30
30
|
export declare const _getAaveV3AccountBalances: (provider: Client, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
31
31
|
export declare const getAaveV3AccountBalances: (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
32
|
-
export declare const _getAaveV3AccountData: (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
|
|
33
|
-
export declare const getAaveV3AccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any) => Promise<AaveV3PositionData>;
|
|
32
|
+
export declare const _getAaveV3AccountData: (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: "latest" | number) => Promise<AaveV3PositionData>;
|
|
33
|
+
export declare const getAaveV3AccountData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber?: "latest" | number) => Promise<AaveV3PositionData>;
|
|
34
34
|
export declare const getAaveV3FullPositionData: (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, market: AaveMarketInfo) => Promise<AaveV3PositionData>;
|
package/esm/aaveV3/index.js
CHANGED
|
@@ -42,8 +42,8 @@ export const aaveV3EmodeCategoriesMapping = (extractedState, usedAssets) => {
|
|
|
42
42
|
});
|
|
43
43
|
return categoriesMapping;
|
|
44
44
|
};
|
|
45
|
-
export function _getAaveV3MarketData(
|
|
46
|
-
return __awaiter(this,
|
|
45
|
+
export function _getAaveV3MarketData(provider_1, network_1, market_1) {
|
|
46
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, market, blockNumber = 'latest') {
|
|
47
47
|
const _addresses = market.assets.map(a => getAssetInfo(ethToWeth(a), network).address);
|
|
48
48
|
const isL2 = isLayer2Network(network);
|
|
49
49
|
const loanInfoContract = AaveV3ViewContractViem(provider, network);
|
|
@@ -52,10 +52,10 @@ export function _getAaveV3MarketData(provider, network, market) {
|
|
|
52
52
|
const networksWithIncentives = [NetworkNumber.Eth, NetworkNumber.Arb, NetworkNumber.Opt];
|
|
53
53
|
// eslint-disable-next-line prefer-const
|
|
54
54
|
let [loanInfo, eModesInfo, isBorrowAllowed, rewardInfo] = yield Promise.all([
|
|
55
|
-
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses]),
|
|
56
|
-
loanInfoContract.read.getAllEmodes([marketAddress]),
|
|
57
|
-
loanInfoContract.read.isBorrowAllowed([marketAddress]), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
58
|
-
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress]) : null,
|
|
55
|
+
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses], setViemBlockNumber(blockNumber)),
|
|
56
|
+
loanInfoContract.read.getAllEmodes([marketAddress], setViemBlockNumber(blockNumber)),
|
|
57
|
+
loanInfoContract.read.isBorrowAllowed([marketAddress], setViemBlockNumber(blockNumber)), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
58
|
+
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress], setViemBlockNumber(blockNumber)) : null,
|
|
59
59
|
]);
|
|
60
60
|
isBorrowAllowed = isLayer2Network(network) ? isBorrowAllowed : true;
|
|
61
61
|
const eModeCategoriesData = {};
|
|
@@ -254,9 +254,9 @@ export function _getAaveV3MarketData(provider, network, market) {
|
|
|
254
254
|
return { assetsData: payload, eModeCategoriesData };
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
|
-
export function getAaveV3MarketData(
|
|
258
|
-
return __awaiter(this,
|
|
259
|
-
return _getAaveV3MarketData(getViemProvider(provider, network), network, market);
|
|
257
|
+
export function getAaveV3MarketData(provider_1, network_1, market_1) {
|
|
258
|
+
return __awaiter(this, arguments, void 0, function* (provider, network, market, blockNumber = 'latest') {
|
|
259
|
+
return _getAaveV3MarketData(getViemProvider(provider, network), network, market, blockNumber);
|
|
260
260
|
});
|
|
261
261
|
}
|
|
262
262
|
export const EMPTY_AAVE_DATA = {
|
|
@@ -314,7 +314,7 @@ export const _getAaveV3AccountBalances = (provider, network, block, addressMappi
|
|
|
314
314
|
return balances;
|
|
315
315
|
});
|
|
316
316
|
export const getAaveV3AccountBalances = (provider, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () { return _getAaveV3AccountBalances(getViemProvider(provider, network), network, block, addressMapping, address); });
|
|
317
|
-
export const _getAaveV3AccountData = (
|
|
317
|
+
export const _getAaveV3AccountData = (provider_1, network_1, address_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, extractedState, blockNumber = 'latest') {
|
|
318
318
|
const { selectedMarket: market, assetsData, } = extractedState;
|
|
319
319
|
let payload = Object.assign(Object.assign({}, EMPTY_AAVE_DATA), { lastUpdated: Date.now() });
|
|
320
320
|
if (!address) {
|
|
@@ -326,9 +326,9 @@ export const _getAaveV3AccountData = (provider, network, address, extractedState
|
|
|
326
326
|
const _addresses = market.assets.map((a) => getAssetInfo(ethToWeth(a), network).address);
|
|
327
327
|
const middleAddressIndex = Math.floor(_addresses.length / 2); // split addresses in half to avoid gas limit by multicall
|
|
328
328
|
const [eModeCategory, tokenBalances1, tokenBalances2] = yield Promise.all([
|
|
329
|
-
lendingPoolContract.read.getUserEMode([address]),
|
|
330
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex)]),
|
|
331
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length)]),
|
|
329
|
+
lendingPoolContract.read.getUserEMode([address], setViemBlockNumber(blockNumber)),
|
|
330
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex)], setViemBlockNumber(blockNumber)),
|
|
331
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length)], setViemBlockNumber(blockNumber)),
|
|
332
332
|
]);
|
|
333
333
|
const loanInfo = [...tokenBalances1, ...tokenBalances2];
|
|
334
334
|
const usedAssets = {};
|
|
@@ -386,7 +386,7 @@ export const _getAaveV3AccountData = (provider, network, address, extractedState
|
|
|
386
386
|
payload.automationResubscribeRequired = false;
|
|
387
387
|
return payload;
|
|
388
388
|
});
|
|
389
|
-
export const getAaveV3AccountData = (
|
|
389
|
+
export const getAaveV3AccountData = (provider_1, network_1, address_1, extractedState_1, ...args_1) => __awaiter(void 0, [provider_1, network_1, address_1, extractedState_1, ...args_1], void 0, function* (provider, network, address, extractedState, blockNumber = 'latest') { return _getAaveV3AccountData(getViemProvider(provider, network), network, address, extractedState, blockNumber); });
|
|
390
390
|
export const getAaveV3FullPositionData = (provider, network, address, market) => __awaiter(void 0, void 0, void 0, function* () {
|
|
391
391
|
const marketData = yield getAaveV3MarketData(provider, network, market);
|
|
392
392
|
const positionData = yield getAaveV3AccountData(provider, network, address, { assetsData: marketData.assetsData, selectedMarket: market, eModeCategoriesData: marketData.eModeCategoriesData });
|
|
@@ -7,7 +7,7 @@ export const aaveV1AssetsDefaultMarket = [
|
|
|
7
7
|
export const aaveV2AssetsDefaultMarket = ['USDT', 'WBTC', 'ETH', 'YFI', 'ZRX', 'UNI', 'AAVE', 'BAT', 'BUSD', 'DAI', 'ENJ', 'KNCL', 'LINK', 'MANA', 'MKR', 'REN', 'SNX', 'SUSD', 'TUSD', 'USDC', 'CRV', 'GUSD', 'BAL', 'xSUSHI', 'RENFIL', 'RAI', 'AMPL', 'USDP', 'DPI', 'FRAX', 'FEI', 'stETH', 'ENS', 'UST', 'CVX', '1INCH', 'LUSD'];
|
|
8
8
|
export const aaveV3AssetsDefaultMarketEth = [
|
|
9
9
|
'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
|
|
10
|
-
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
|
|
10
|
+
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
|
|
11
11
|
];
|
|
12
12
|
export const aaveV3AssetsDefaultMarketOpt = [
|
|
13
13
|
'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
|
package/esm/staking/staking.js
CHANGED
|
@@ -39,7 +39,7 @@ const getApyFromDfsApi = (asset) => __awaiter(void 0, void 0, void 0, function*
|
|
|
39
39
|
const data = yield res.json();
|
|
40
40
|
return String(data.apy);
|
|
41
41
|
});
|
|
42
|
-
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
|
|
42
|
+
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
|
|
43
43
|
export const getStakingApy = memoize((asset) => __awaiter(void 0, void 0, void 0, function* () {
|
|
44
44
|
try {
|
|
45
45
|
if (asset === 'stETH' || asset === 'wstETH')
|
|
@@ -77,6 +77,8 @@ export const getStakingApy = memoize((asset) => __awaiter(void 0, void 0, void 0
|
|
|
77
77
|
return yield getApyFromDfsApi('PT USDe July');
|
|
78
78
|
if (asset === 'PT eUSDe Aug')
|
|
79
79
|
return yield getApyFromDfsApi('PT eUSDe Aug');
|
|
80
|
+
if (asset === 'PT sUSDe Sep')
|
|
81
|
+
return yield getApyFromDfsApi('PT sUSDe Sep');
|
|
80
82
|
if (asset === 'tETH')
|
|
81
83
|
return yield getApyFromDfsApi('tETH');
|
|
82
84
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defisaver/positions-sdk",
|
|
3
|
-
"version": "1.0.26-dev-portfolio-
|
|
3
|
+
"version": "1.0.26-dev-portfolio-16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./cjs/index.js",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
"test": "mocha tests/portfolio.ts",
|
|
16
16
|
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
17
17
|
"test:debugger": "mocha --inspect-brk tests/*",
|
|
18
|
-
"
|
|
18
|
+
"test-single": "mocha ./tests/$npm_config_name.ts",
|
|
19
19
|
"version-bump": "git commit -am \"Version bump to $(npm version patch | cut -c 2-)\""
|
|
20
20
|
},
|
|
21
21
|
"keywords": [],
|
|
22
22
|
"author": "",
|
|
23
23
|
"license": "ISC",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@defisaver/tokens": "^1.6.
|
|
25
|
+
"@defisaver/tokens": "^1.6.16",
|
|
26
26
|
"@types/lodash": "^4.17.15",
|
|
27
27
|
"@types/memoizee": "^0.4.12",
|
|
28
28
|
"decimal.js": "^10.6.0",
|
package/src/aaveV3/index.ts
CHANGED
|
@@ -60,7 +60,7 @@ export const aaveV3EmodeCategoriesMapping = (extractedState: any, usedAssets: Aa
|
|
|
60
60
|
return categoriesMapping;
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
export async function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData> {
|
|
63
|
+
export async function _getAaveV3MarketData(provider: Client, network: NetworkNumber, market: AaveMarketInfo, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3MarketData> {
|
|
64
64
|
const _addresses = market.assets.map(a => getAssetInfo(ethToWeth(a), network).address);
|
|
65
65
|
|
|
66
66
|
const isL2 = isLayer2Network(network);
|
|
@@ -72,10 +72,10 @@ export async function _getAaveV3MarketData(provider: Client, network: NetworkNum
|
|
|
72
72
|
|
|
73
73
|
// eslint-disable-next-line prefer-const
|
|
74
74
|
let [loanInfo, eModesInfo, isBorrowAllowed, rewardInfo] = await Promise.all([
|
|
75
|
-
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses as EthAddress[]]),
|
|
76
|
-
loanInfoContract.read.getAllEmodes([marketAddress]),
|
|
77
|
-
loanInfoContract.read.isBorrowAllowed([marketAddress]), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
78
|
-
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress]) : null,
|
|
75
|
+
loanInfoContract.read.getFullTokensInfo([marketAddress, _addresses as EthAddress[]], setViemBlockNumber(blockNumber)),
|
|
76
|
+
loanInfoContract.read.getAllEmodes([marketAddress], setViemBlockNumber(blockNumber)),
|
|
77
|
+
loanInfoContract.read.isBorrowAllowed([marketAddress], setViemBlockNumber(blockNumber)), // Used on L2s check for PriceOracleSentinel (mainnet will always return true)
|
|
78
|
+
networksWithIncentives.includes(network) ? aaveIncentivesContract.read.getReservesIncentivesData([marketAddress], setViemBlockNumber(blockNumber)) : null,
|
|
79
79
|
]);
|
|
80
80
|
isBorrowAllowed = isLayer2Network(network) ? isBorrowAllowed : true;
|
|
81
81
|
|
|
@@ -283,8 +283,8 @@ export async function _getAaveV3MarketData(provider: Client, network: NetworkNum
|
|
|
283
283
|
return { assetsData: payload, eModeCategoriesData };
|
|
284
284
|
}
|
|
285
285
|
|
|
286
|
-
export async function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo): Promise<AaveV3MarketData> {
|
|
287
|
-
return _getAaveV3MarketData(getViemProvider(provider, network), network, market);
|
|
286
|
+
export async function getAaveV3MarketData(provider: EthereumProvider, network: NetworkNumber, market: AaveMarketInfo, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3MarketData> {
|
|
287
|
+
return _getAaveV3MarketData(getViemProvider(provider, network), network, market, blockNumber);
|
|
288
288
|
}
|
|
289
289
|
|
|
290
290
|
export const EMPTY_AAVE_DATA = {
|
|
@@ -361,7 +361,7 @@ export const _getAaveV3AccountBalances = async (provider: Client, network: Netwo
|
|
|
361
361
|
|
|
362
362
|
export const getAaveV3AccountBalances = async (provider: EthereumProvider, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress): Promise<PositionBalances> => _getAaveV3AccountBalances(getViemProvider(provider, network), network, block, addressMapping, address);
|
|
363
363
|
|
|
364
|
-
export const _getAaveV3AccountData = async (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any): Promise<AaveV3PositionData> => {
|
|
364
|
+
export const _getAaveV3AccountData = async (provider: Client, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3PositionData> => {
|
|
365
365
|
const {
|
|
366
366
|
selectedMarket: market, assetsData,
|
|
367
367
|
} = extractedState;
|
|
@@ -381,9 +381,9 @@ export const _getAaveV3AccountData = async (provider: Client, network: NetworkNu
|
|
|
381
381
|
const middleAddressIndex = Math.floor(_addresses.length / 2); // split addresses in half to avoid gas limit by multicall
|
|
382
382
|
|
|
383
383
|
const [eModeCategory, tokenBalances1, tokenBalances2] = await Promise.all([
|
|
384
|
-
lendingPoolContract.read.getUserEMode([address]),
|
|
385
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex) as EthAddress[]]),
|
|
386
|
-
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length) as EthAddress[]]),
|
|
384
|
+
lendingPoolContract.read.getUserEMode([address], setViemBlockNumber(blockNumber)),
|
|
385
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(0, middleAddressIndex) as EthAddress[]], setViemBlockNumber(blockNumber)),
|
|
386
|
+
loanInfoContract.read.getTokenBalances([marketAddress, address, _addresses.slice(middleAddressIndex, _addresses.length) as EthAddress[]], setViemBlockNumber(blockNumber)),
|
|
387
387
|
]);
|
|
388
388
|
|
|
389
389
|
const loanInfo = [...tokenBalances1, ...tokenBalances2];
|
|
@@ -468,7 +468,7 @@ export const _getAaveV3AccountData = async (provider: Client, network: NetworkNu
|
|
|
468
468
|
return payload;
|
|
469
469
|
};
|
|
470
470
|
|
|
471
|
-
export const getAaveV3AccountData = async (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any): Promise<AaveV3PositionData> => _getAaveV3AccountData(getViemProvider(provider, network), network, address, extractedState);
|
|
471
|
+
export const getAaveV3AccountData = async (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, extractedState: any, blockNumber: 'latest' | number = 'latest'): Promise<AaveV3PositionData> => _getAaveV3AccountData(getViemProvider(provider, network), network, address, extractedState, blockNumber);
|
|
472
472
|
|
|
473
473
|
export const getAaveV3FullPositionData = async (provider: EthereumProvider, network: NetworkNumber, address: EthAddress, market: AaveMarketInfo): Promise<AaveV3PositionData> => {
|
|
474
474
|
const marketData = await getAaveV3MarketData(provider, network, market);
|
|
@@ -10,7 +10,7 @@ export const aaveV2AssetsDefaultMarket = ['USDT', 'WBTC', 'ETH', 'YFI', 'ZRX', '
|
|
|
10
10
|
|
|
11
11
|
export const aaveV3AssetsDefaultMarketEth = [
|
|
12
12
|
'ETH', 'wstETH', 'WBTC', 'USDC', 'DAI', 'LINK', 'AAVE', 'cbETH', 'USDT', 'rETH', 'LUSD', 'CRV', 'MKR', 'SNX', 'BAL', 'UNI', 'LDO', 'ENS', '1INCH', 'FRAX', 'GHO', 'RPL', 'sDAI', 'STG', 'KNC', 'FXS', 'crvUSD', 'PYUSD', 'weETH', 'osETH', 'USDe', 'ETHx', 'sUSDe', 'tBTC', 'cbBTC', 'USDS', 'rsETH', 'LBTC', 'eBTC', 'RLUSD', 'PT eUSDe May', 'PT sUSDe July', 'USDtb',
|
|
13
|
-
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC',
|
|
13
|
+
'eUSDe', 'PT USDe July', 'PT eUSDe Aug', 'EURC', 'FBTC', 'PT sUSDe Sep',
|
|
14
14
|
];
|
|
15
15
|
export const aaveV3AssetsDefaultMarketOpt = [
|
|
16
16
|
'DAI', 'USDC.e', 'USDT', 'SUSD', 'AAVE', 'LINK', 'WBTC', 'ETH', 'OP', 'wstETH', 'LUSD', 'MAI', 'rETH', 'USDC',
|
package/src/staking/staking.ts
CHANGED
|
@@ -35,7 +35,7 @@ const getApyFromDfsApi = async (asset: string) => {
|
|
|
35
35
|
return String(data.apy);
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH'];
|
|
38
|
+
export const STAKING_ASSETS = ['cbETH', 'wstETH', 'cbETH', 'rETH', 'sDAI', 'weETH', 'sUSDe', 'osETH', 'ezETH', 'ETHx', 'rsETH', 'pufETH', 'wrsETH', 'wsuperOETHb', 'sUSDS', 'PT eUSDe May', 'PT sUSDe July', 'PT USDe July', 'PT eUSDe Aug', 'tETH', 'PT sUSDe Sep'];
|
|
39
39
|
|
|
40
40
|
export const getStakingApy = memoize(async (asset: string) => {
|
|
41
41
|
try {
|
|
@@ -57,6 +57,7 @@ export const getStakingApy = memoize(async (asset: string) => {
|
|
|
57
57
|
if (asset === 'PT sUSDe July') return await getApyFromDfsApi('PT sUSDe July');
|
|
58
58
|
if (asset === 'PT USDe July') return await getApyFromDfsApi('PT USDe July');
|
|
59
59
|
if (asset === 'PT eUSDe Aug') return await getApyFromDfsApi('PT eUSDe Aug');
|
|
60
|
+
if (asset === 'PT sUSDe Sep') return await getApyFromDfsApi('PT sUSDe Sep');
|
|
60
61
|
if (asset === 'tETH') return await getApyFromDfsApi('tETH');
|
|
61
62
|
} catch (e) {
|
|
62
63
|
console.error(`Failed to fetch APY for ${asset}`);
|