@defisaver/positions-sdk 0.0.5 → 0.0.6

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.
Files changed (54) hide show
  1. package/cjs/aaveV2/index.d.ts +2 -2
  2. package/cjs/aaveV2/index.js +5 -3
  3. package/cjs/compoundV3/index.d.ts +2 -2
  4. package/cjs/compoundV3/index.js +8 -5
  5. package/cjs/config/contracts.d.ts +144 -0
  6. package/cjs/config/contracts.js +18 -0
  7. package/cjs/contracts.d.ts +3 -0
  8. package/cjs/contracts.js +4 -1
  9. package/cjs/helpers/compoundHelpers/index.d.ts +2 -2
  10. package/cjs/helpers/compoundHelpers/index.js +5 -4
  11. package/cjs/morphoAaveV2/index.d.ts +2 -2
  12. package/cjs/morphoAaveV2/index.js +5 -3
  13. package/cjs/services/priceService.d.ts +4 -0
  14. package/cjs/services/priceService.js +36 -0
  15. package/cjs/types/contracts/generated/COMPPriceFeed.d.ts +135 -0
  16. package/cjs/types/contracts/generated/COMPPriceFeed.js +5 -0
  17. package/cjs/types/contracts/generated/ETHPriceFeed.d.ts +135 -0
  18. package/cjs/types/contracts/generated/ETHPriceFeed.js +5 -0
  19. package/cjs/types/contracts/generated/USDCPriceFeed.d.ts +135 -0
  20. package/cjs/types/contracts/generated/USDCPriceFeed.js +5 -0
  21. package/cjs/types/contracts/generated/index.d.ts +3 -0
  22. package/esm/aaveV2/index.d.ts +2 -2
  23. package/esm/aaveV2/index.js +5 -3
  24. package/esm/compoundV3/index.d.ts +2 -2
  25. package/esm/compoundV3/index.js +8 -5
  26. package/esm/config/contracts.d.ts +144 -0
  27. package/esm/config/contracts.js +18 -0
  28. package/esm/contracts.d.ts +3 -0
  29. package/esm/contracts.js +3 -0
  30. package/esm/helpers/compoundHelpers/index.d.ts +2 -2
  31. package/esm/helpers/compoundHelpers/index.js +5 -4
  32. package/esm/morphoAaveV2/index.d.ts +2 -2
  33. package/esm/morphoAaveV2/index.js +5 -3
  34. package/esm/services/priceService.d.ts +4 -0
  35. package/esm/services/priceService.js +27 -0
  36. package/esm/types/contracts/generated/COMPPriceFeed.d.ts +135 -0
  37. package/esm/types/contracts/generated/COMPPriceFeed.js +4 -0
  38. package/esm/types/contracts/generated/ETHPriceFeed.d.ts +135 -0
  39. package/esm/types/contracts/generated/ETHPriceFeed.js +4 -0
  40. package/esm/types/contracts/generated/USDCPriceFeed.d.ts +135 -0
  41. package/esm/types/contracts/generated/USDCPriceFeed.js +4 -0
  42. package/esm/types/contracts/generated/index.d.ts +3 -0
  43. package/package.json +1 -1
  44. package/src/aaveV2/index.ts +5 -3
  45. package/src/compoundV3/index.ts +8 -5
  46. package/src/config/contracts.js +18 -0
  47. package/src/contracts.ts +5 -1
  48. package/src/helpers/compoundHelpers/index.ts +5 -2
  49. package/src/morphoAaveV2/index.ts +5 -3
  50. package/src/services/priceService.ts +22 -0
  51. package/src/types/contracts/generated/COMPPriceFeed.ts +202 -0
  52. package/src/types/contracts/generated/ETHPriceFeed.ts +202 -0
  53. package/src/types/contracts/generated/USDCPriceFeed.ts +202 -0
  54. package/src/types/contracts/generated/index.ts +3 -0
@@ -1,9 +1,9 @@
1
1
  import Web3 from 'web3';
2
2
  import { Blockish, EthAddress, NetworkNumber, PositionBalances } from '../types/common';
3
3
  import { AaveMarketInfo, AaveV2AssetsData, AaveV2PositionData } from '../types';
4
- export declare const getAaveV2MarketsData: (web3: Web3, network: NetworkNumber, selectedMarket: AaveMarketInfo, ethPrice: string, mainnetWeb3: Web3) => Promise<{
4
+ export declare const getAaveV2MarketsData: (web3: Web3, network: NetworkNumber, selectedMarket: AaveMarketInfo, mainnetWeb3: Web3) => Promise<{
5
5
  assetsData: AaveV2AssetsData;
6
6
  }>;
7
7
  export declare const getAaveV2AccountBalances: (web3: Web3, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
8
8
  export declare const getAaveV2AccountData: (web3: Web3, network: NetworkNumber, address: string, assetsData: AaveV2AssetsData, market: AaveMarketInfo) => Promise<AaveV2PositionData>;
9
- export declare const getAaveV2FullPositionData: (web3: Web3, network: NetworkNumber, address: string, market: AaveMarketInfo, ethPrice: string, mainnetWeb3: Web3) => Promise<AaveV2PositionData>;
9
+ export declare const getAaveV2FullPositionData: (web3: Web3, network: NetworkNumber, address: string, market: AaveMarketInfo, mainnetWeb3: Web3) => Promise<AaveV2PositionData>;
@@ -22,7 +22,9 @@ const moneymarket_1 = require("../moneymarket");
22
22
  const aaveV3_1 = require("../aaveV3");
23
23
  const aave_1 = require("../markets/aave");
24
24
  const aaveHelpers_1 = require("../helpers/aaveHelpers");
25
- const getAaveV2MarketsData = (web3, network, selectedMarket, ethPrice, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
25
+ const priceService_1 = require("../services/priceService");
26
+ const getAaveV2MarketsData = (web3, network, selectedMarket, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
27
+ const ethPrice = yield (0, priceService_1.getEthPrice)(mainnetWeb3);
26
28
  const _addresses = selectedMarket.assets.map(a => (0, tokens_1.getAssetInfo)((0, utils_1.ethToWeth)(a)).address);
27
29
  const loanInfoContract = (0, contracts_1.AaveLoanInfoV2Contract)(web3, network);
28
30
  const marketAddress = selectedMarket.providerAddress;
@@ -176,8 +178,8 @@ const getAaveV2AccountData = (web3, network, address, assetsData, market) => __a
176
178
  return payload;
177
179
  });
178
180
  exports.getAaveV2AccountData = getAaveV2AccountData;
179
- const getAaveV2FullPositionData = (web3, network, address, market, ethPrice, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
180
- const marketData = yield (0, exports.getAaveV2MarketsData)(web3, network, market, ethPrice, mainnetWeb3);
181
+ const getAaveV2FullPositionData = (web3, network, address, market, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
182
+ const marketData = yield (0, exports.getAaveV2MarketsData)(web3, network, market, mainnetWeb3);
181
183
  const positionData = yield (0, exports.getAaveV2AccountData)(web3, network, address, marketData.assetsData, market);
182
184
  return positionData;
183
185
  });
@@ -1,7 +1,7 @@
1
1
  import Web3 from 'web3';
2
2
  import { CompoundMarketData, CompoundV3AssetsData, CompoundV3MarketsData, CompoundV3PositionData } from '../types/compound';
3
3
  import { Blockish, EthAddress, NetworkNumber, PositionBalances } from '../types/common';
4
- export declare const getCompoundV3MarketsData: (web3: Web3, network: NetworkNumber, selectedMarket: CompoundMarketData, compPrice: string, defaultWeb3: Web3) => Promise<CompoundV3MarketsData>;
4
+ export declare const getCompoundV3MarketsData: (web3: Web3, network: NetworkNumber, selectedMarket: CompoundMarketData, defaultWeb3: Web3) => Promise<CompoundV3MarketsData>;
5
5
  export declare const EMPTY_COMPOUND_V3_DATA: {
6
6
  usedAssets: {};
7
7
  suppliedUsd: string;
@@ -34,4 +34,4 @@ export declare const getCompoundV3AccountData: (web3: Web3, network: NetworkNumb
34
34
  selectedMarket: CompoundMarketData;
35
35
  assetsData: CompoundV3AssetsData;
36
36
  })) => Promise<CompoundV3PositionData>;
37
- export declare const getCompoundV3FullPositionData: (web3: Web3, network: NetworkNumber, address: string, proxyAddress: string, selectedMarket: CompoundMarketData, compPrice: string, mainnetWeb3: Web3) => Promise<CompoundV3PositionData>;
37
+ export declare const getCompoundV3FullPositionData: (web3: Web3, network: NetworkNumber, address: string, proxyAddress: string, selectedMarket: CompoundMarketData, mainnetWeb3: Web3) => Promise<CompoundV3PositionData>;
@@ -24,7 +24,10 @@ const constants_1 = require("../constants");
24
24
  const moneymarket_1 = require("../moneymarket");
25
25
  const compoundHelpers_1 = require("../helpers/compoundHelpers");
26
26
  const compound_2 = require("../markets/compound");
27
- const getCompoundV3MarketsData = (web3, network, selectedMarket, compPrice, defaultWeb3) => __awaiter(void 0, void 0, void 0, function* () {
27
+ const priceService_1 = require("../services/priceService");
28
+ const getCompoundV3MarketsData = (web3, network, selectedMarket, defaultWeb3) => __awaiter(void 0, void 0, void 0, function* () {
29
+ const baseAssetPrice = selectedMarket.baseAsset === 'ETH' ? yield (0, priceService_1.getEthPrice)(defaultWeb3) : yield (0, priceService_1.getUSDCPrice)(defaultWeb3);
30
+ const compPrice = yield (0, priceService_1.getCompPrice)(defaultWeb3);
28
31
  const contract = (0, contracts_1.CompV3ViewContract)(web3, network);
29
32
  const CompV3ViewAddress = contract.options.address;
30
33
  const calls = [
@@ -40,7 +43,7 @@ const getCompoundV3MarketsData = (web3, network, selectedMarket, compPrice, defa
40
43
  },
41
44
  ];
42
45
  const data = yield (0, multicall_1.multicall)(calls, web3, network);
43
- const colls = data[1].colls.map((coll) => (0, compoundHelpers_1.formatMarketData)(coll, network));
46
+ const colls = data[1].colls.map((coll) => (0, compoundHelpers_1.formatMarketData)(coll, network, baseAssetPrice));
44
47
  if (selectedMarket.value === compound_1.CompoundVersions.CompoundV3ETH) {
45
48
  for (const coll of colls) {
46
49
  if (coll.symbol === 'wstETH') {
@@ -67,7 +70,7 @@ const getCompoundV3MarketsData = (web3, network, selectedMarket, compPrice, defa
67
70
  }
68
71
  }
69
72
  }
70
- const base = (0, compoundHelpers_1.formatBaseData)(data[0].baseToken, network);
73
+ const base = (0, compoundHelpers_1.formatBaseData)(data[0].baseToken, network, baseAssetPrice);
71
74
  const payload = {};
72
75
  const baseObj = Object.assign(Object.assign({}, base), (0, compoundHelpers_1.getIncentiveApys)(base, compPrice));
73
76
  const allAssets = [baseObj, ...colls];
@@ -200,8 +203,8 @@ const getCompoundV3AccountData = (web3, network, address, proxyAddress, extracte
200
203
  return payload;
201
204
  });
202
205
  exports.getCompoundV3AccountData = getCompoundV3AccountData;
203
- const getCompoundV3FullPositionData = (web3, network, address, proxyAddress, selectedMarket, compPrice, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
204
- const marketData = yield (0, exports.getCompoundV3MarketsData)(web3, network, selectedMarket, compPrice, mainnetWeb3);
206
+ const getCompoundV3FullPositionData = (web3, network, address, proxyAddress, selectedMarket, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
207
+ const marketData = yield (0, exports.getCompoundV3MarketsData)(web3, network, selectedMarket, mainnetWeb3);
205
208
  const positionData = yield (0, exports.getCompoundV3AccountData)(web3, network, address, proxyAddress, { selectedMarket, assetsData: marketData.assetsData });
206
209
  return positionData;
207
210
  });
@@ -3060,3 +3060,147 @@ export namespace ChickenBondsManager {
3060
3060
  };
3061
3061
  export { networks_57 as networks };
3062
3062
  }
3063
+ export namespace COMPPriceFeed {
3064
+ let abi_58: ({
3065
+ inputs: {
3066
+ internalType: string;
3067
+ name: string;
3068
+ type: string;
3069
+ }[];
3070
+ stateMutability: string;
3071
+ type: string;
3072
+ anonymous?: undefined;
3073
+ name?: undefined;
3074
+ outputs?: undefined;
3075
+ } | {
3076
+ anonymous: boolean;
3077
+ inputs: {
3078
+ indexed: boolean;
3079
+ internalType: string;
3080
+ name: string;
3081
+ type: string;
3082
+ }[];
3083
+ name: string;
3084
+ type: string;
3085
+ stateMutability?: undefined;
3086
+ outputs?: undefined;
3087
+ } | {
3088
+ inputs: {
3089
+ internalType: string;
3090
+ name: string;
3091
+ type: string;
3092
+ }[];
3093
+ name: string;
3094
+ outputs: {
3095
+ internalType: string;
3096
+ name: string;
3097
+ type: string;
3098
+ }[];
3099
+ stateMutability: string;
3100
+ type: string;
3101
+ anonymous?: undefined;
3102
+ })[];
3103
+ export { abi_58 as abi };
3104
+ let networks_58: {
3105
+ "1": {
3106
+ address: string;
3107
+ };
3108
+ };
3109
+ export { networks_58 as networks };
3110
+ }
3111
+ export namespace ETHPriceFeed {
3112
+ let abi_59: ({
3113
+ inputs: {
3114
+ internalType: string;
3115
+ name: string;
3116
+ type: string;
3117
+ }[];
3118
+ stateMutability: string;
3119
+ type: string;
3120
+ anonymous?: undefined;
3121
+ name?: undefined;
3122
+ outputs?: undefined;
3123
+ } | {
3124
+ anonymous: boolean;
3125
+ inputs: {
3126
+ indexed: boolean;
3127
+ internalType: string;
3128
+ name: string;
3129
+ type: string;
3130
+ }[];
3131
+ name: string;
3132
+ type: string;
3133
+ stateMutability?: undefined;
3134
+ outputs?: undefined;
3135
+ } | {
3136
+ inputs: {
3137
+ internalType: string;
3138
+ name: string;
3139
+ type: string;
3140
+ }[];
3141
+ name: string;
3142
+ outputs: {
3143
+ internalType: string;
3144
+ name: string;
3145
+ type: string;
3146
+ }[];
3147
+ stateMutability: string;
3148
+ type: string;
3149
+ anonymous?: undefined;
3150
+ })[];
3151
+ export { abi_59 as abi };
3152
+ let networks_59: {
3153
+ "1": {
3154
+ address: string;
3155
+ };
3156
+ };
3157
+ export { networks_59 as networks };
3158
+ }
3159
+ export namespace USDCPriceFeed {
3160
+ let abi_60: ({
3161
+ inputs: {
3162
+ internalType: string;
3163
+ name: string;
3164
+ type: string;
3165
+ }[];
3166
+ stateMutability: string;
3167
+ type: string;
3168
+ anonymous?: undefined;
3169
+ name?: undefined;
3170
+ outputs?: undefined;
3171
+ } | {
3172
+ anonymous: boolean;
3173
+ inputs: {
3174
+ indexed: boolean;
3175
+ internalType: string;
3176
+ name: string;
3177
+ type: string;
3178
+ }[];
3179
+ name: string;
3180
+ type: string;
3181
+ stateMutability?: undefined;
3182
+ outputs?: undefined;
3183
+ } | {
3184
+ inputs: {
3185
+ internalType: string;
3186
+ name: string;
3187
+ type: string;
3188
+ }[];
3189
+ name: string;
3190
+ outputs: {
3191
+ internalType: string;
3192
+ name: string;
3193
+ type: string;
3194
+ }[];
3195
+ stateMutability: string;
3196
+ type: string;
3197
+ anonymous?: undefined;
3198
+ })[];
3199
+ export { abi_60 as abi };
3200
+ let networks_60: {
3201
+ "1": {
3202
+ address: string;
3203
+ };
3204
+ };
3205
+ export { networks_60 as networks };
3206
+ }
@@ -598,5 +598,23 @@ module.exports = {
598
598
  "networks": {
599
599
  "1": { "address": "0x57619FE9C539f890b19c61812226F9703ce37137" }
600
600
  }
601
+ },
602
+ "COMPPriceFeed": {
603
+ "abi": [{ "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }, { "internalType": "address", "name": "_accessController", "type": "address" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "int256", "name": "current", "type": "int256" }, { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "updatedAt", "type": "uint256" }], "name": "AnswerUpdated", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "startedBy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startedAt", "type": "uint256" }], "name": "NewRound", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferRequested", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "accessController", "outputs": [{ "internalType": "contract AccessControllerInterface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "aggregator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "confirmAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "getRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRound", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address payable", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "name": "phaseAggregators", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phaseId", "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "proposeAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proposedAggregator", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "proposedGetRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposedLatestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_accessController", "type": "address" }], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_to", "type": "address" }], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }],
604
+ "networks": {
605
+ "1": { "address": "0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5" }
606
+ }
607
+ },
608
+ "ETHPriceFeed": {
609
+ "abi": [{ "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }, { "internalType": "address", "name": "_accessController", "type": "address" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "int256", "name": "current", "type": "int256" }, { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "updatedAt", "type": "uint256" }], "name": "AnswerUpdated", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "startedBy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startedAt", "type": "uint256" }], "name": "NewRound", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferRequested", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "accessController", "outputs": [{ "internalType": "contract AccessControllerInterface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "aggregator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "confirmAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "getRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRound", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address payable", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "name": "phaseAggregators", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phaseId", "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "proposeAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proposedAggregator", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "proposedGetRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposedLatestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_accessController", "type": "address" }], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_to", "type": "address" }], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }],
610
+ "networks": {
611
+ "1": { "address": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" }
612
+ },
613
+ },
614
+ "USDCPriceFeed": {
615
+ "abi": [{ "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }, { "internalType": "address", "name": "_accessController", "type": "address" }], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "int256", "name": "current", "type": "int256" }, { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "updatedAt", "type": "uint256" }], "name": "AnswerUpdated", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "startedBy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startedAt", "type": "uint256" }], "name": "NewRound", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferRequested", "type": "event" }, { "anonymous": false, "inputs": [{ "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }], "name": "OwnershipTransferred", "type": "event" }, { "inputs": [], "name": "acceptOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "accessController", "outputs": [{ "internalType": "contract AccessControllerInterface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "aggregator", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "confirmAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [{ "internalType": "string", "name": "", "type": "string" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "getRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint256", "name": "_roundId", "type": "uint256" }], "name": "getTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestAnswer", "outputs": [{ "internalType": "int256", "name": "", "type": "int256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRound", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestTimestamp", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [{ "internalType": "address", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "name": "phaseAggregators", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "phaseId", "outputs": [{ "internalType": "uint16", "name": "", "type": "uint16" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_aggregator", "type": "address" }], "name": "proposeAggregator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proposedAggregator", "outputs": [{ "internalType": "contract AggregatorV2V3Interface", "name": "", "type": "address" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "uint80", "name": "_roundId", "type": "uint80" }], "name": "proposedGetRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposedLatestRoundData", "outputs": [{ "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" }], "stateMutability": "view", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_accessController", "type": "address" }], "name": "setController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [{ "internalType": "address", "name": "_to", "type": "address" }], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], "stateMutability": "view", "type": "function" }],
616
+ "networks": {
617
+ "1": { "address": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6" }
618
+ }
601
619
  }
602
620
  };
@@ -39,3 +39,6 @@ export declare const McdJugContract: (web3: Web3, network: NetworkNumber, block?
39
39
  export declare const McdVatContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.McdVat;
40
40
  export declare const ChickenBondsViewContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.ChickenBondsView;
41
41
  export declare const ChickenBondsManagerContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.ChickenBondsManager;
42
+ export declare const ETHPriceFeedContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.ETHPriceFeed;
43
+ export declare const COMPPriceFeedContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.COMPPriceFeed;
44
+ export declare const USDCPriceFeedContract: (web3: Web3, network: NetworkNumber, block?: Blockish) => ContractTypes.USDCPriceFeed;
package/cjs/contracts.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChickenBondsManagerContract = exports.ChickenBondsViewContract = exports.McdVatContract = exports.McdJugContract = exports.McdDogContract = exports.McdSpotterContract = exports.McdViewContract = exports.LiquityActivePoolContract = exports.LiquityPriceFeedContract = exports.LiquityTroveManagerContract = exports.LiquityCollSurplusPoolContract = exports.LiquityViewContract = exports.CrvUSDFactoryContract = exports.CrvUSDViewContract = exports.SparkViewContract = exports.SparkIncentiveDataProviderContract = exports.MorphoAaveV2ViewContract = exports.PotContract = exports.ComptrollerContract = exports.CompoundLoanInfoContract = exports.AaveLoanInfoV2Contract = exports.wstETHContract = exports.CompV3ViewContract = exports.BalanceScannerContract = exports.REthContract = exports.CbEthContract = exports.LidoContract = exports.GhoTokenContract = exports.AaveIncentiveDataProviderV3Contract = exports.AaveV3ViewContract = exports.UniMulticallContract = exports.createContractWrapper = exports.getErc20Contract = exports.getConfigContractAbi = exports.getConfigContractAddress = void 0;
6
+ exports.USDCPriceFeedContract = exports.COMPPriceFeedContract = exports.ETHPriceFeedContract = exports.ChickenBondsManagerContract = exports.ChickenBondsViewContract = exports.McdVatContract = exports.McdJugContract = exports.McdDogContract = exports.McdSpotterContract = exports.McdViewContract = exports.LiquityActivePoolContract = exports.LiquityPriceFeedContract = exports.LiquityTroveManagerContract = exports.LiquityCollSurplusPoolContract = exports.LiquityViewContract = exports.CrvUSDFactoryContract = exports.CrvUSDViewContract = exports.SparkViewContract = exports.SparkIncentiveDataProviderContract = exports.MorphoAaveV2ViewContract = exports.PotContract = exports.ComptrollerContract = exports.CompoundLoanInfoContract = exports.AaveLoanInfoV2Contract = exports.wstETHContract = exports.CompV3ViewContract = exports.BalanceScannerContract = exports.REthContract = exports.CbEthContract = exports.LidoContract = exports.GhoTokenContract = exports.AaveIncentiveDataProviderV3Contract = exports.AaveV3ViewContract = exports.UniMulticallContract = exports.createContractWrapper = exports.getErc20Contract = exports.getConfigContractAbi = exports.getConfigContractAddress = void 0;
7
7
  const contracts_1 = __importDefault(require("./config/contracts"));
8
8
  const contractConfig = contracts_1.default;
9
9
  const getConfigContractAddress = (name, network, block) => {
@@ -64,3 +64,6 @@ exports.McdJugContract = createContractFromConfigFunc('McdJug');
64
64
  exports.McdVatContract = createContractFromConfigFunc('McdVat');
65
65
  exports.ChickenBondsViewContract = createContractFromConfigFunc('ChickenBondsView');
66
66
  exports.ChickenBondsManagerContract = createContractFromConfigFunc('ChickenBondsManager');
67
+ exports.ETHPriceFeedContract = createContractFromConfigFunc('ETHPriceFeed');
68
+ exports.COMPPriceFeedContract = createContractFromConfigFunc('COMPPriceFeed');
69
+ exports.USDCPriceFeedContract = createContractFromConfigFunc('USDCPriceFeed');
@@ -1,7 +1,7 @@
1
1
  import { BaseAdditionalAssetData, CompoundAggregatedPositionData, CompoundMarketData, CompoundV2AssetsData, CompoundV2UsedAssets, CompoundV3AssetData, CompoundV3AssetsData, CompoundV3UsedAssets } from '../../types';
2
2
  import { NetworkNumber } from '../../types/common';
3
- export declare const formatMarketData: (data: any, network: NetworkNumber) => CompoundV3AssetData;
4
- export declare const formatBaseData: (data: any, network: NetworkNumber) => CompoundV3AssetData & BaseAdditionalAssetData;
3
+ export declare const formatMarketData: (data: any, network: NetworkNumber, baseAssetPrice: string) => CompoundV3AssetData;
4
+ export declare const formatBaseData: (data: any, network: NetworkNumber, baseAssetPrice: string) => CompoundV3AssetData & BaseAdditionalAssetData;
5
5
  export declare const getIncentiveApys: (baseData: CompoundV3AssetData & BaseAdditionalAssetData, compPrice: string) => {
6
6
  incentiveSupplyApy: string;
7
7
  incentiveBorrowApy: string;
@@ -22,14 +22,15 @@ const utils_1 = require("../../services/utils");
22
22
  const constants_1 = require("../../constants");
23
23
  const moneymarket_1 = require("../../moneymarket");
24
24
  const staking_1 = require("../../staking");
25
- const formatMarketData = (data, network) => {
25
+ const formatMarketData = (data, network, baseAssetPrice) => {
26
26
  const assetInfo = (0, tokens_1.getAssetInfoByAddress)(data.tokenAddr, network);
27
27
  const isWETH = assetInfo.symbol === 'WETH';
28
- return (Object.assign(Object.assign({}, data), { price: (0, utils_1.getEthAmountForDecimals)(data.price, 8), collateralFactor: (0, utils_1.getEthAmountForDecimals)(data.borrowCollateralFactor, 18), liquidationRatio: (0, utils_1.getEthAmountForDecimals)(data.liquidateCollateralFactor, 18), supplyCap: (0, utils_1.getEthAmountForDecimals)(data.supplyCap, assetInfo.decimals), totalSupply: (0, utils_1.getEthAmountForDecimals)(data.totalSupply, assetInfo.decimals), symbol: isWETH ? 'ETH' : assetInfo.symbol, supplyRate: '0', borrowRate: '0', canBeBorrowed: false, canBeSupplied: true }));
28
+ const price = (0, utils_1.getEthAmountForDecimals)(data.price, 8);
29
+ return (Object.assign(Object.assign({}, data), { price: (0, utils_1.getEthAmountForDecimals)(data.price, 8), priceUSD: new decimal_js_1.default(price).mul(baseAssetPrice).toString(), collateralFactor: (0, utils_1.getEthAmountForDecimals)(data.borrowCollateralFactor, 18), liquidationRatio: (0, utils_1.getEthAmountForDecimals)(data.liquidateCollateralFactor, 18), supplyCap: (0, utils_1.getEthAmountForDecimals)(data.supplyCap, assetInfo.decimals), totalSupply: (0, utils_1.getEthAmountForDecimals)(data.totalSupply, assetInfo.decimals), symbol: isWETH ? 'ETH' : assetInfo.symbol, supplyRate: '0', borrowRate: '0', canBeBorrowed: false, canBeSupplied: true }));
29
30
  };
30
31
  exports.formatMarketData = formatMarketData;
31
32
  // TODO: maybe not hardcode decimals
32
- const formatBaseData = (data, network) => {
33
+ const formatBaseData = (data, network, baseAssetPrice) => {
33
34
  const assetInfo = (0, tokens_1.getAssetInfoByAddress)(data.tokenAddr, network);
34
35
  const totalSupply = (0, utils_1.getEthAmountForDecimals)(new decimal_js_1.default(data.totalSupply).mul(data.supplyIndex).toString(), 15 + assetInfo.decimals);
35
36
  const totalBorrow = (0, utils_1.getEthAmountForDecimals)(new decimal_js_1.default(data.totalBorrow).mul(data.borrowIndex).toString(), 15 + assetInfo.decimals);
@@ -37,7 +38,7 @@ const formatBaseData = (data, network) => {
37
38
  .toString()), borrowRate: (0, moneymarket_1.aprToApy)(new decimal_js_1.default(data.borrowRate).div(1e18).mul(constants_1.SECONDS_PER_YEAR).mul(100)
38
39
  .toString()), utilization: (0, utils_1.getEthAmountForDecimals)(data.utilization, 16), // utilization is totalSupply/totalBorrow in 1e18, but we need % so when we mul with 100 it's 16 decimals
39
40
  totalSupply,
40
- totalBorrow, marketLiquidity: new decimal_js_1.default(totalSupply).minus(totalBorrow).toString(), symbol: (0, utils_1.wethToEth)(assetInfo.symbol), price: (0, utils_1.getEthAmountForDecimals)(data.price, 8), collateralFactor: '0', liquidationRatio: '0', canBeBorrowed: true, canBeSupplied: true, supplyCap: '0', rewardSupplySpeed: (0, utils_1.getEthAmountForDecimals)(data.baseTrackingSupplyRewardsSpeed, 15), rewardBorrowSpeed: (0, utils_1.getEthAmountForDecimals)(data.baseTrackingBorrowRewardsSpeed, 15), minDebt: (0, utils_1.getEthAmountForDecimals)(data.baseBorrowMin, assetInfo.decimals), isBase: true }));
41
+ totalBorrow, marketLiquidity: new decimal_js_1.default(totalSupply).minus(totalBorrow).toString(), symbol: (0, utils_1.wethToEth)(assetInfo.symbol), price: (0, utils_1.getEthAmountForDecimals)(data.price, 8), priceUSD: baseAssetPrice, collateralFactor: '0', liquidationRatio: '0', canBeBorrowed: true, canBeSupplied: true, supplyCap: '0', rewardSupplySpeed: (0, utils_1.getEthAmountForDecimals)(data.baseTrackingSupplyRewardsSpeed, 15), rewardBorrowSpeed: (0, utils_1.getEthAmountForDecimals)(data.baseTrackingBorrowRewardsSpeed, 15), minDebt: (0, utils_1.getEthAmountForDecimals)(data.baseBorrowMin, assetInfo.decimals), isBase: true }));
41
42
  };
42
43
  exports.formatBaseData = formatBaseData;
43
44
  const getIncentiveApys = (baseData, compPrice) => {
@@ -1,7 +1,7 @@
1
1
  import Web3 from 'web3';
2
2
  import { Blockish, EthAddress, NetworkNumber, PositionBalances } from '../types/common';
3
3
  import { MorphoAaveV2AssetsData, MorphoAaveV2MarketData, MorphoAaveV2PositionData } from '../types';
4
- export declare const getMorphoAaveV2MarketsData: (web3: Web3, network: NetworkNumber, ethPrice: string, mainnetWeb3: Web3) => Promise<MorphoAaveV2MarketData>;
4
+ export declare const getMorphoAaveV2MarketsData: (web3: Web3, network: NetworkNumber, mainnetWeb3: Web3) => Promise<MorphoAaveV2MarketData>;
5
5
  export declare const getMorphoAaveV2AccountBalances: (web3: Web3, network: NetworkNumber, block: Blockish, addressMapping: boolean, address: EthAddress) => Promise<PositionBalances>;
6
6
  export declare const getMorphoAaveV2AccountData: (web3: Web3, network: NetworkNumber, address: string, assetsData: MorphoAaveV2AssetsData) => Promise<MorphoAaveV2PositionData>;
7
- export declare const getMorphoAaveV2FullPositionData: (web3: Web3, network: NetworkNumber, address: string, ethPrice: string, mainnetWeb3: Web3) => Promise<MorphoAaveV2PositionData>;
7
+ export declare const getMorphoAaveV2FullPositionData: (web3: Web3, network: NetworkNumber, address: string, mainnetWeb3: Web3) => Promise<MorphoAaveV2PositionData>;
@@ -22,7 +22,9 @@ const types_1 = require("../types");
22
22
  const moneymarket_1 = require("../moneymarket");
23
23
  const aaveV3_1 = require("../aaveV3");
24
24
  const aaveHelpers_1 = require("../helpers/aaveHelpers");
25
- const getMorphoAaveV2MarketsData = (web3, network, ethPrice, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
25
+ const priceService_1 = require("../services/priceService");
26
+ const getMorphoAaveV2MarketsData = (web3, network, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
27
+ const ethPrice = yield (0, priceService_1.getEthPrice)(mainnetWeb3);
26
28
  const morphoAaveV2ViewContract = (0, contracts_1.MorphoAaveV2ViewContract)(web3, network);
27
29
  const [contractData, morphoRewardsRes] = yield Promise.allSettled([
28
30
  morphoAaveV2ViewContract.methods.getAllMarketsInfo().call(),
@@ -201,8 +203,8 @@ const getMorphoAaveV2AccountData = (web3, network, address, assetsData) => __awa
201
203
  return payload;
202
204
  });
203
205
  exports.getMorphoAaveV2AccountData = getMorphoAaveV2AccountData;
204
- const getMorphoAaveV2FullPositionData = (web3, network, address, ethPrice, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
205
- const marketData = yield (0, exports.getMorphoAaveV2MarketsData)(web3, network, ethPrice, mainnetWeb3);
206
+ const getMorphoAaveV2FullPositionData = (web3, network, address, mainnetWeb3) => __awaiter(void 0, void 0, void 0, function* () {
207
+ const marketData = yield (0, exports.getMorphoAaveV2MarketsData)(web3, network, mainnetWeb3);
206
208
  const positionData = yield (0, exports.getMorphoAaveV2AccountData)(web3, network, address, marketData.assetsData);
207
209
  return positionData;
208
210
  });
@@ -0,0 +1,4 @@
1
+ import Web3 from 'web3';
2
+ export declare const getEthPrice: (web3: Web3) => Promise<string>;
3
+ export declare const getUSDCPrice: (web3: Web3) => Promise<string>;
4
+ export declare const getCompPrice: (web3: Web3) => Promise<string>;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.getCompPrice = exports.getUSDCPrice = exports.getEthPrice = void 0;
16
+ const decimal_js_1 = __importDefault(require("decimal.js"));
17
+ const contracts_1 = require("../contracts");
18
+ const common_1 = require("../types/common");
19
+ const getEthPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
20
+ const contract = (0, contracts_1.ETHPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
21
+ const price = yield contract.methods.latestAnswer().call();
22
+ return new decimal_js_1.default(price).div(1e8).toString();
23
+ });
24
+ exports.getEthPrice = getEthPrice;
25
+ const getUSDCPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
26
+ const contract = (0, contracts_1.USDCPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
27
+ const price = yield contract.methods.latestAnswer().call();
28
+ return new decimal_js_1.default(price).div(1e8).toString();
29
+ });
30
+ exports.getUSDCPrice = getUSDCPrice;
31
+ const getCompPrice = (web3) => __awaiter(void 0, void 0, void 0, function* () {
32
+ const contract = (0, contracts_1.COMPPriceFeedContract)(web3, common_1.NetworkNumber.Eth);
33
+ const price = yield contract.methods.latestAnswer().call();
34
+ return new decimal_js_1.default(price).div(1e8).toString();
35
+ });
36
+ exports.getCompPrice = getCompPrice;
@@ -0,0 +1,135 @@
1
+ /// <reference types="node" />
2
+ import type BN from "bn.js";
3
+ import type { ContractOptions } from "web3-eth-contract";
4
+ import type { EventLog } from "web3-core";
5
+ import type { EventEmitter } from "events";
6
+ import type { Callback, NonPayableTransactionObject, BlockType, ContractEventLog, BaseContract } from "./types";
7
+ export interface EventOptions {
8
+ filter?: object;
9
+ fromBlock?: BlockType;
10
+ topics?: string[];
11
+ }
12
+ export type AnswerUpdated = ContractEventLog<{
13
+ current: string;
14
+ roundId: string;
15
+ updatedAt: string;
16
+ 0: string;
17
+ 1: string;
18
+ 2: string;
19
+ }>;
20
+ export type NewRound = ContractEventLog<{
21
+ roundId: string;
22
+ startedBy: string;
23
+ startedAt: string;
24
+ 0: string;
25
+ 1: string;
26
+ 2: string;
27
+ }>;
28
+ export type OwnershipTransferRequested = ContractEventLog<{
29
+ from: string;
30
+ to: string;
31
+ 0: string;
32
+ 1: string;
33
+ }>;
34
+ export type OwnershipTransferred = ContractEventLog<{
35
+ from: string;
36
+ to: string;
37
+ 0: string;
38
+ 1: string;
39
+ }>;
40
+ export interface COMPPriceFeed extends BaseContract {
41
+ constructor(jsonInterface: any[], address?: string, options?: ContractOptions): COMPPriceFeed;
42
+ clone(): COMPPriceFeed;
43
+ methods: {
44
+ acceptOwnership(): NonPayableTransactionObject<void>;
45
+ accessController(): NonPayableTransactionObject<string>;
46
+ aggregator(): NonPayableTransactionObject<string>;
47
+ confirmAggregator(_aggregator: string): NonPayableTransactionObject<void>;
48
+ decimals(): NonPayableTransactionObject<string>;
49
+ description(): NonPayableTransactionObject<string>;
50
+ getAnswer(_roundId: number | string | BN): NonPayableTransactionObject<string>;
51
+ getRoundData(_roundId: number | string | BN): NonPayableTransactionObject<[
52
+ string,
53
+ string,
54
+ string,
55
+ string,
56
+ string
57
+ ] & {
58
+ roundId: string;
59
+ answer: string;
60
+ startedAt: string;
61
+ updatedAt: string;
62
+ answeredInRound: string;
63
+ }>;
64
+ getTimestamp(_roundId: number | string | BN): NonPayableTransactionObject<string>;
65
+ latestAnswer(): NonPayableTransactionObject<string>;
66
+ latestRound(): NonPayableTransactionObject<string>;
67
+ latestRoundData(): NonPayableTransactionObject<[
68
+ string,
69
+ string,
70
+ string,
71
+ string,
72
+ string
73
+ ] & {
74
+ roundId: string;
75
+ answer: string;
76
+ startedAt: string;
77
+ updatedAt: string;
78
+ answeredInRound: string;
79
+ }>;
80
+ latestTimestamp(): NonPayableTransactionObject<string>;
81
+ owner(): NonPayableTransactionObject<string>;
82
+ phaseAggregators(arg0: number | string | BN): NonPayableTransactionObject<string>;
83
+ phaseId(): NonPayableTransactionObject<string>;
84
+ proposeAggregator(_aggregator: string): NonPayableTransactionObject<void>;
85
+ proposedAggregator(): NonPayableTransactionObject<string>;
86
+ proposedGetRoundData(_roundId: number | string | BN): NonPayableTransactionObject<[
87
+ string,
88
+ string,
89
+ string,
90
+ string,
91
+ string
92
+ ] & {
93
+ roundId: string;
94
+ answer: string;
95
+ startedAt: string;
96
+ updatedAt: string;
97
+ answeredInRound: string;
98
+ }>;
99
+ proposedLatestRoundData(): NonPayableTransactionObject<[
100
+ string,
101
+ string,
102
+ string,
103
+ string,
104
+ string
105
+ ] & {
106
+ roundId: string;
107
+ answer: string;
108
+ startedAt: string;
109
+ updatedAt: string;
110
+ answeredInRound: string;
111
+ }>;
112
+ setController(_accessController: string): NonPayableTransactionObject<void>;
113
+ transferOwnership(_to: string): NonPayableTransactionObject<void>;
114
+ version(): NonPayableTransactionObject<string>;
115
+ };
116
+ events: {
117
+ AnswerUpdated(cb?: Callback<AnswerUpdated>): EventEmitter;
118
+ AnswerUpdated(options?: EventOptions, cb?: Callback<AnswerUpdated>): EventEmitter;
119
+ NewRound(cb?: Callback<NewRound>): EventEmitter;
120
+ NewRound(options?: EventOptions, cb?: Callback<NewRound>): EventEmitter;
121
+ OwnershipTransferRequested(cb?: Callback<OwnershipTransferRequested>): EventEmitter;
122
+ OwnershipTransferRequested(options?: EventOptions, cb?: Callback<OwnershipTransferRequested>): EventEmitter;
123
+ OwnershipTransferred(cb?: Callback<OwnershipTransferred>): EventEmitter;
124
+ OwnershipTransferred(options?: EventOptions, cb?: Callback<OwnershipTransferred>): EventEmitter;
125
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
126
+ };
127
+ once(event: "AnswerUpdated", cb: Callback<AnswerUpdated>): void;
128
+ once(event: "AnswerUpdated", options: EventOptions, cb: Callback<AnswerUpdated>): void;
129
+ once(event: "NewRound", cb: Callback<NewRound>): void;
130
+ once(event: "NewRound", options: EventOptions, cb: Callback<NewRound>): void;
131
+ once(event: "OwnershipTransferRequested", cb: Callback<OwnershipTransferRequested>): void;
132
+ once(event: "OwnershipTransferRequested", options: EventOptions, cb: Callback<OwnershipTransferRequested>): void;
133
+ once(event: "OwnershipTransferred", cb: Callback<OwnershipTransferred>): void;
134
+ once(event: "OwnershipTransferred", options: EventOptions, cb: Callback<OwnershipTransferred>): void;
135
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });