@defisaver/positions-sdk 0.0.19 → 0.0.21
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/README.md +63 -0
- package/cjs/aaveV2/index.js +11 -4
- package/cjs/aaveV3/index.js +22 -15
- package/cjs/compoundV2/index.d.ts +1 -0
- package/cjs/compoundV2/index.js +15 -8
- package/cjs/compoundV3/index.js +5 -0
- package/cjs/config/contracts.d.ts +373 -201
- package/cjs/config/contracts.js +22 -0
- package/cjs/helpers/aaveHelpers/index.js +0 -5
- package/cjs/helpers/compoundHelpers/index.js +2 -2
- package/cjs/markets/compound/index.d.ts +2 -0
- package/cjs/markets/compound/index.js +60 -13
- package/cjs/markets/compound/marketsAssets.d.ts +8 -2
- package/cjs/markets/compound/marketsAssets.js +13 -3
- package/cjs/morphoAaveV2/index.js +4 -3
- package/cjs/morphoAaveV3/index.js +11 -4
- package/cjs/spark/index.js +11 -4
- package/cjs/types/aave.d.ts +0 -5
- package/cjs/types/compound.d.ts +6 -4
- package/cjs/types/compound.js +1 -0
- package/cjs/types/contracts/generated/CUSDCev3.d.ts +441 -0
- package/cjs/types/contracts/generated/CUSDCev3.js +5 -0
- package/cjs/types/contracts/generated/CompV3USDCBulkerArb.d.ts +41 -0
- package/cjs/types/contracts/generated/CompV3USDCBulkerArb.js +5 -0
- package/cjs/types/contracts/generated/index.d.ts +2 -0
- package/esm/aaveV2/index.js +12 -5
- package/esm/aaveV3/index.js +12 -5
- package/esm/compoundV2/index.d.ts +1 -0
- package/esm/compoundV2/index.js +13 -7
- package/esm/compoundV3/index.js +6 -1
- package/esm/config/contracts.d.ts +373 -201
- package/esm/config/contracts.js +22 -0
- package/esm/helpers/aaveHelpers/index.js +0 -5
- package/esm/helpers/compoundHelpers/index.js +2 -2
- package/esm/markets/compound/index.d.ts +2 -0
- package/esm/markets/compound/index.js +59 -13
- package/esm/markets/compound/marketsAssets.d.ts +8 -2
- package/esm/markets/compound/marketsAssets.js +12 -2
- package/esm/morphoAaveV2/index.js +4 -3
- package/esm/morphoAaveV3/index.js +11 -4
- package/esm/spark/index.js +12 -5
- package/esm/types/aave.d.ts +0 -5
- package/esm/types/compound.d.ts +6 -4
- package/esm/types/compound.js +1 -0
- package/esm/types/contracts/generated/CUSDCev3.d.ts +441 -0
- package/esm/types/contracts/generated/CUSDCev3.js +4 -0
- package/esm/types/contracts/generated/CompV3USDCBulkerArb.d.ts +41 -0
- package/esm/types/contracts/generated/CompV3USDCBulkerArb.js +4 -0
- package/esm/types/contracts/generated/index.d.ts +2 -0
- package/package.json +1 -1
- package/src/aaveV2/index.ts +16 -5
- package/src/aaveV3/index.ts +16 -5
- package/src/compoundV2/index.ts +20 -7
- package/src/compoundV3/index.ts +6 -1
- package/src/config/contracts.js +22 -0
- package/src/helpers/aaveHelpers/index.ts +0 -7
- package/src/helpers/compoundHelpers/index.ts +2 -2
- package/src/markets/compound/index.ts +71 -15
- package/src/markets/compound/marketsAssets.ts +13 -2
- package/src/morpho/markets.ts +5 -5
- package/src/morphoAaveV2/index.ts +4 -3
- package/src/morphoAaveV3/index.ts +14 -4
- package/src/spark/index.ts +17 -5
- package/src/types/aave.ts +0 -5
- package/src/types/compound.ts +7 -1
- package/src/types/contracts/generated/CUSDCev3.ts +685 -0
- package/src/types/contracts/generated/CompV3USDCBulkerArb.ts +85 -0
- package/src/types/contracts/generated/index.ts +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# DeFi Saver Positions SDK
|
|
2
|
+
|
|
3
|
+
Supported protocols:
|
|
4
|
+
- [Maker](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/maker)
|
|
5
|
+
- [Spark](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/spark)
|
|
6
|
+
- [CrvUSD](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/curveUsd)
|
|
7
|
+
- [Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV2)
|
|
8
|
+
- [Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/aaveV3)
|
|
9
|
+
- [Morpho Aave V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV2)
|
|
10
|
+
- [Morpho Aave V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/morphoAaveV3)
|
|
11
|
+
- [Compound V2](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV2)
|
|
12
|
+
- [Compound V3](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/compoundV3)
|
|
13
|
+
- [Liquity](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/liquity)
|
|
14
|
+
- [Chicken Bonds](https://github.com/defisaver/defisaver-positions-sdk/tree/main/src/chickenBonds)
|
|
15
|
+
|
|
16
|
+
## Setup
|
|
17
|
+
Supported Node version is v10.
|
|
18
|
+
|
|
19
|
+
- run `npm install` (first time)
|
|
20
|
+
- run `npm run build`
|
|
21
|
+
|
|
22
|
+
`build` command will generate contracts and build ejs and esm folders
|
|
23
|
+
|
|
24
|
+
## How to use
|
|
25
|
+
[All available imports](https://github.com/defisaver/defisaver-positions-sdk/blob/main/src/index.ts)
|
|
26
|
+
|
|
27
|
+
This is a Compound V3 example, and every other protocol is similar
|
|
28
|
+
```js
|
|
29
|
+
import Web3 from 'web3';
|
|
30
|
+
import { compoundV3 } from '@defisaver/positions-sdk';
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
// every protocol has market data and user data getters
|
|
34
|
+
const {
|
|
35
|
+
getCompoundV3MarketsData,
|
|
36
|
+
getCompoundV3AccountData,
|
|
37
|
+
} = compoundV3;
|
|
38
|
+
|
|
39
|
+
const provider = 'Your RPC provider';
|
|
40
|
+
const web3 = new Web3(provider);
|
|
41
|
+
|
|
42
|
+
const user = '0x123...';
|
|
43
|
+
|
|
44
|
+
const { assetsData } = await getCompoundV3MarketsData(
|
|
45
|
+
web3, // rpc for the network you are using (note: can be tenderly or any other testnet rpc)
|
|
46
|
+
1, // network
|
|
47
|
+
selectedMarket, // market object like in /src/markets/compound/index.ts
|
|
48
|
+
web3, // this must be mainnet rpc - used for getting prices onchain and calculating apys
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
const userData = await getCompoundV3AccountData(
|
|
52
|
+
web3,
|
|
53
|
+
1, // network
|
|
54
|
+
userAddress, // EOA or DSProxy
|
|
55
|
+
'', // proxy address of the user, or just empty string if checking for EOA
|
|
56
|
+
{
|
|
57
|
+
selectedMarket, // market object as in /src/markets/compound/index.ts
|
|
58
|
+
assetsData,
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
More examples found [here](https://github.com/defisaver/defisaver-positions-sdk/tree/main/tests)
|
package/cjs/aaveV2/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const aaveV3_1 = require("../aaveV3");
|
|
|
23
23
|
const aave_1 = require("../markets/aave");
|
|
24
24
|
const aaveHelpers_1 = require("../helpers/aaveHelpers");
|
|
25
25
|
const priceService_1 = require("../services/priceService");
|
|
26
|
+
const contracts_2 = __importDefault(require("../config/contracts"));
|
|
26
27
|
const getAaveV2MarketsData = (web3, network, selectedMarket, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
|
|
27
28
|
const ethPrice = yield (0, priceService_1.getEthPrice)(mainnetWeb3);
|
|
28
29
|
const _addresses = selectedMarket.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a)).address);
|
|
@@ -94,18 +95,24 @@ const getAaveV2AccountBalances = (web3, network, block, addressMapping, address)
|
|
|
94
95
|
const market = aave_1.AAVE_V2;
|
|
95
96
|
const loanInfoContract = (0, contracts_1.AaveLoanInfoV2Contract)(web3, network, block);
|
|
96
97
|
const marketAddress = market.providerAddress;
|
|
97
|
-
const
|
|
98
|
+
const protocolDataProviderContract = new web3.eth.Contract(
|
|
99
|
+
// @ts-ignore
|
|
100
|
+
contracts_2.default[market.protocolData].abi, market.protocolDataAddress);
|
|
101
|
+
const reserveTokens = yield protocolDataProviderContract.methods.getAllReservesTokens().call({}, block);
|
|
102
|
+
const symbols = reserveTokens.map(({ symbol }) => symbol);
|
|
103
|
+
const _addresses = reserveTokens.map(({ tokenAddress }) => tokenAddress);
|
|
98
104
|
const loanInfo = yield loanInfoContract.methods.getTokenBalances(marketAddress, address, _addresses).call({}, block);
|
|
99
105
|
loanInfo.forEach((_tokenInfo, i) => {
|
|
100
|
-
const asset = (0, utils_1.wethToEth)(
|
|
106
|
+
const asset = (0, utils_1.wethToEth)(symbols[i]);
|
|
107
|
+
const assetAddr = (0, utils_1.wethToEthByAddress)(_addresses[i], network).toLowerCase();
|
|
101
108
|
const tokenInfo = Object.assign({}, _tokenInfo);
|
|
102
109
|
// known bug: stETH leaves 1 wei on every transfer
|
|
103
110
|
if (asset === 'stETH' && tokenInfo.balance.toString() === '1') {
|
|
104
111
|
tokenInfo.balance = '0';
|
|
105
112
|
}
|
|
106
113
|
balances = {
|
|
107
|
-
collateral: Object.assign(Object.assign({}, balances.collateral), { [addressMapping ?
|
|
108
|
-
debt: Object.assign(Object.assign({}, balances.debt), { [addressMapping ?
|
|
114
|
+
collateral: Object.assign(Object.assign({}, balances.collateral), { [addressMapping ? assetAddr : asset]: tokenInfo.balance.toString() }),
|
|
115
|
+
debt: Object.assign(Object.assign({}, balances.debt), { [addressMapping ? assetAddr : asset]: new decimal_js_1.default(tokenInfo.borrowsStable.toString()).add(tokenInfo.borrowsVariable.toString()).toString() }),
|
|
109
116
|
};
|
|
110
117
|
});
|
|
111
118
|
return balances;
|
package/cjs/aaveV3/index.js
CHANGED
|
@@ -15,7 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.getAaveV3FullPositionData = exports.getAaveV3AccountData = exports.getAaveV3AccountBalances = exports.EMPTY_AAVE_DATA = exports.getAaveV3MarketData = exports.aaveV3EmodeCategoriesMapping = exports.aaveV3CalculateDiscountRate = exports.test = void 0;
|
|
16
16
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
17
17
|
const tokens_1 = require("@defisaver/tokens");
|
|
18
|
-
const contracts_1 = require("../contracts");
|
|
18
|
+
const contracts_1 = __importDefault(require("../config/contracts"));
|
|
19
|
+
const contracts_2 = require("../contracts");
|
|
19
20
|
const utils_1 = require("../services/utils");
|
|
20
21
|
const common_1 = require("../types/common");
|
|
21
22
|
const staking_1 = require("../staking");
|
|
@@ -25,7 +26,7 @@ const moneymarket_1 = require("../moneymarket");
|
|
|
25
26
|
const aaveHelpers_1 = require("../helpers/aaveHelpers");
|
|
26
27
|
const aave_1 = require("../markets/aave");
|
|
27
28
|
const test = (web3, network) => {
|
|
28
|
-
const contract = (0,
|
|
29
|
+
const contract = (0, contracts_2.AaveV3ViewContract)(web3, 1);
|
|
29
30
|
return contract.methods.AAVE_REFERRAL_CODE().call();
|
|
30
31
|
};
|
|
31
32
|
exports.test = test;
|
|
@@ -79,12 +80,12 @@ function getAaveV3MarketData(web3, network, market, defaultWeb3) {
|
|
|
79
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
80
81
|
const _addresses = market.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a), network).address);
|
|
81
82
|
const isL2 = (0, utils_1.isLayer2Network)(network);
|
|
82
|
-
const loanInfoContract = (0,
|
|
83
|
-
const aaveIncentivesContract = (0,
|
|
83
|
+
const loanInfoContract = (0, contracts_2.AaveV3ViewContract)(web3, network);
|
|
84
|
+
const aaveIncentivesContract = (0, contracts_2.AaveIncentiveDataProviderV3Contract)(web3, network);
|
|
84
85
|
const marketAddress = market.providerAddress;
|
|
85
|
-
const GhoDiscountRateStrategyAddress = (0,
|
|
86
|
-
const GhoDiscountRateStrategyAbi = (0,
|
|
87
|
-
const GhoTokenAbi = (0,
|
|
86
|
+
const GhoDiscountRateStrategyAddress = (0, contracts_2.getConfigContractAddress)('GhoDiscountRateStrategy', common_1.NetworkNumber.Eth);
|
|
87
|
+
const GhoDiscountRateStrategyAbi = (0, contracts_2.getConfigContractAbi)('GhoDiscountRateStrategy');
|
|
88
|
+
const GhoTokenAbi = (0, contracts_2.getConfigContractAbi)('GHO');
|
|
88
89
|
const multicallCallsObject = [
|
|
89
90
|
{
|
|
90
91
|
target: GhoDiscountRateStrategyAddress,
|
|
@@ -112,7 +113,7 @@ function getAaveV3MarketData(web3, network, market, defaultWeb3) {
|
|
|
112
113
|
params: [],
|
|
113
114
|
},
|
|
114
115
|
];
|
|
115
|
-
const ghoContract = (0,
|
|
116
|
+
const ghoContract = (0, contracts_2.GhoTokenContract)(web3, network);
|
|
116
117
|
// eslint-disable-next-line prefer-const
|
|
117
118
|
let [loanInfo, isBorrowAllowed, multiRes] = yield Promise.all([
|
|
118
119
|
loanInfoContract.methods.getFullTokensInfo(marketAddress, _addresses).call(),
|
|
@@ -258,10 +259,15 @@ const getAaveV3AccountBalances = (web3, network, block, addressMapping, address)
|
|
|
258
259
|
if (!address) {
|
|
259
260
|
return balances;
|
|
260
261
|
}
|
|
261
|
-
const loanInfoContract = (0,
|
|
262
|
+
const loanInfoContract = (0, contracts_2.AaveV3ViewContract)(web3, network, block);
|
|
262
263
|
const market = (0, aave_1.AAVE_V3)(network);
|
|
263
264
|
const marketAddress = market.providerAddress;
|
|
264
|
-
const
|
|
265
|
+
const protocolDataProviderContract = new web3.eth.Contract(
|
|
266
|
+
// @ts-ignore
|
|
267
|
+
contracts_1.default[market.protocolData].abi, market.protocolDataAddress);
|
|
268
|
+
const reserveTokens = yield protocolDataProviderContract.methods.getAllReservesTokens().call({}, block);
|
|
269
|
+
const symbols = reserveTokens.map(({ symbol }) => symbol);
|
|
270
|
+
const _addresses = reserveTokens.map(({ tokenAddress }) => tokenAddress);
|
|
265
271
|
// split addresses in half to avoid gas limit by multicall
|
|
266
272
|
const middleAddressIndex = Math.floor(_addresses.length / 2);
|
|
267
273
|
const multicallData = [
|
|
@@ -279,10 +285,11 @@ const getAaveV3AccountBalances = (web3, network, block, addressMapping, address)
|
|
|
279
285
|
const multicallRes = yield (0, multicall_1.multicall)(multicallData, web3, network, block);
|
|
280
286
|
const loanInfo = [...multicallRes[0][0], ...multicallRes[1][0]];
|
|
281
287
|
loanInfo.forEach((tokenInfo, i) => {
|
|
282
|
-
const asset = (0, utils_1.wethToEth)(
|
|
288
|
+
const asset = (0, utils_1.wethToEth)(symbols[i]);
|
|
289
|
+
const assetAddr = (0, utils_1.wethToEthByAddress)(_addresses[i], network).toLowerCase();
|
|
283
290
|
balances = {
|
|
284
|
-
collateral: Object.assign(Object.assign({}, balances.collateral), { [addressMapping ?
|
|
285
|
-
debt: Object.assign(Object.assign({}, balances.debt), { [addressMapping ?
|
|
291
|
+
collateral: Object.assign(Object.assign({}, balances.collateral), { [addressMapping ? assetAddr : asset]: tokenInfo.balance.toString() }),
|
|
292
|
+
debt: Object.assign(Object.assign({}, balances.debt), { [addressMapping ? assetAddr : asset]: new decimal_js_1.default(tokenInfo.borrowsStable.toString()).add(tokenInfo.borrowsVariable.toString()).toString() }),
|
|
286
293
|
};
|
|
287
294
|
});
|
|
288
295
|
return balances;
|
|
@@ -299,11 +306,11 @@ const getAaveV3AccountData = (web3, network, address, extractedState) => __await
|
|
|
299
306
|
return payload;
|
|
300
307
|
}
|
|
301
308
|
const isL2 = (0, utils_1.isLayer2Network)(network);
|
|
302
|
-
const loanInfoContract = (0,
|
|
309
|
+
const loanInfoContract = (0, contracts_2.AaveV3ViewContract)(web3, network);
|
|
303
310
|
const marketAddress = market.providerAddress;
|
|
304
311
|
const _addresses = market.assets.map((a) => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a), network).address);
|
|
305
312
|
const middleAddressIndex = Math.floor(_addresses.length / 2); // split addresses in half to avoid gas limit by multicall
|
|
306
|
-
const LendingPoolAbi = (0,
|
|
313
|
+
const LendingPoolAbi = (0, contracts_2.getConfigContractAbi)(market.lendingPool);
|
|
307
314
|
const multicallData = [
|
|
308
315
|
{
|
|
309
316
|
target: market.lendingPoolAddress,
|
|
@@ -16,6 +16,7 @@ export declare const EMPTY_COMPOUND_DATA: {
|
|
|
16
16
|
borrowStableSupplyUnstable: boolean;
|
|
17
17
|
};
|
|
18
18
|
export declare const getCollateralAssetsAddresses: (web3: Web3, network: NetworkNumber, account: string) => Promise<string[]>;
|
|
19
|
+
export declare const getAllMarketAddresses: (web3: Web3, network: NetworkNumber, block: Blockish) => Promise<string[]>;
|
|
19
20
|
export declare const getCompoundV2AccountBalances: (web3: Web3, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
|
|
20
21
|
export declare const getCompoundV2AccountData: (web3: Web3, network: NetworkNumber, address: string, assetsData: CompoundV2AssetsData) => Promise<CompoundV2PositionData>;
|
|
21
22
|
export declare const getCompoundV2FullPositionData: (web3: Web3, network: NetworkNumber, address: string) => Promise<CompoundV2PositionData>;
|
package/cjs/compoundV2/index.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.getCompoundV2FullPositionData = exports.getCompoundV2AccountData = exports.getCompoundV2AccountBalances = exports.getCollateralAssetsAddresses = exports.EMPTY_COMPOUND_DATA = exports.getCompoundV2MarketsData = void 0;
|
|
15
|
+
exports.getCompoundV2FullPositionData = exports.getCompoundV2AccountData = exports.getCompoundV2AccountBalances = exports.getAllMarketAddresses = exports.getCollateralAssetsAddresses = exports.EMPTY_COMPOUND_DATA = exports.getCompoundV2MarketsData = void 0;
|
|
16
16
|
const tokens_1 = require("@defisaver/tokens");
|
|
17
17
|
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
18
18
|
const constants_1 = require("../constants");
|
|
@@ -96,6 +96,11 @@ const getCollateralAssetsAddresses = (web3, network, account) => __awaiter(void
|
|
|
96
96
|
return contract.methods.getAssetsIn(account).call();
|
|
97
97
|
});
|
|
98
98
|
exports.getCollateralAssetsAddresses = getCollateralAssetsAddresses;
|
|
99
|
+
const getAllMarketAddresses = (web3, network, block) => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
|
+
const contract = (0, contracts_1.ComptrollerContract)(web3, network);
|
|
101
|
+
return contract.methods.getAllMarkets().call({}, block);
|
|
102
|
+
});
|
|
103
|
+
exports.getAllMarketAddresses = getAllMarketAddresses;
|
|
99
104
|
const getCompoundV2AccountBalances = (web3, network, block, addressMapping, address) => __awaiter(void 0, void 0, void 0, function* () {
|
|
100
105
|
let balances = {
|
|
101
106
|
collateral: {},
|
|
@@ -104,20 +109,22 @@ const getCompoundV2AccountBalances = (web3, network, block, addressMapping, addr
|
|
|
104
109
|
if (!address) {
|
|
105
110
|
return balances;
|
|
106
111
|
}
|
|
112
|
+
const assets = yield (0, exports.getAllMarketAddresses)(web3, network, block);
|
|
113
|
+
const assetInfo = assets.map(a => (0, tokens_1.getAssetInfoByAddress)(a, network));
|
|
107
114
|
const loanInfoContract = (0, contracts_1.CompoundLoanInfoContract)(web3, network, block);
|
|
108
|
-
const loanInfo = yield loanInfoContract.methods.getTokenBalances(address,
|
|
115
|
+
const loanInfo = yield loanInfoContract.methods.getTokenBalances(address, assets).call({}, block);
|
|
109
116
|
loanInfo.balances.forEach((weiAmount, i) => {
|
|
110
|
-
const asset = (0, utils_1.wethToEth)(
|
|
111
|
-
? `${
|
|
112
|
-
:
|
|
117
|
+
const asset = (0, utils_1.wethToEth)(assetInfo[i].symbol === 'cWBTC Legacy'
|
|
118
|
+
? `${assetInfo[i].underlyingAsset} Legacy`
|
|
119
|
+
: assetInfo[i].underlyingAsset);
|
|
113
120
|
balances = {
|
|
114
121
|
collateral: Object.assign(Object.assign({}, balances.collateral), { [addressMapping ? (0, tokens_1.getAssetInfo)(asset, network).address.toLowerCase() : asset]: weiAmount.toString() }),
|
|
115
122
|
};
|
|
116
123
|
});
|
|
117
124
|
loanInfo.borrows.forEach((weiAmount, i) => {
|
|
118
|
-
const asset = (0, utils_1.wethToEth)(
|
|
119
|
-
? `${
|
|
120
|
-
:
|
|
125
|
+
const asset = (0, utils_1.wethToEth)(assetInfo[i].symbol === 'cWBTC Legacy'
|
|
126
|
+
? `${assetInfo[i].underlyingAsset} Legacy`
|
|
127
|
+
: assetInfo[i].underlyingAsset);
|
|
121
128
|
balances = Object.assign(Object.assign({}, balances), { debt: Object.assign(Object.assign({}, balances.debt), { [addressMapping ? (0, tokens_1.getAssetInfo)(asset, network).address.toLowerCase() : asset]: weiAmount.toString() }) });
|
|
122
129
|
});
|
|
123
130
|
return balances;
|
package/cjs/compoundV3/index.js
CHANGED
|
@@ -68,6 +68,11 @@ const getCompoundV3MarketsData = (web3, network, selectedMarket, defaultWeb3) =>
|
|
|
68
68
|
coll.incentiveSupplyApy = yield (0, staking_1.getCbETHApr)(defaultWeb3);
|
|
69
69
|
coll.incentiveSupplyToken = 'cbETH';
|
|
70
70
|
}
|
|
71
|
+
if (coll.symbol === 'rETH') {
|
|
72
|
+
// eslint-disable-next-line no-await-in-loop
|
|
73
|
+
coll.incentiveSupplyApy = yield (0, staking_1.getREthApr)(defaultWeb3);
|
|
74
|
+
coll.incentiveSupplyToken = 'rETH';
|
|
75
|
+
}
|
|
71
76
|
}
|
|
72
77
|
}
|
|
73
78
|
const base = (0, compoundHelpers_1.formatBaseData)(data[0].baseToken, network, baseAssetPrice);
|