@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
@@ -597,5 +597,23 @@ module.exports = {
597
597
  "networks": {
598
598
  "1": { "address": "0x57619FE9C539f890b19c61812226F9703ce37137" }
599
599
  }
600
+ },
601
+ "COMPPriceFeed": {
602
+ "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"}],
603
+ "networks": {
604
+ "1": { "address": "0xdbd020CAeF83eFd542f4De03e3cF0C28A4428bd5" }
605
+ }
606
+ },
607
+ "ETHPriceFeed": {
608
+ "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"}],
609
+ "networks": {
610
+ "1": { "address": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419" }
611
+ },
612
+ },
613
+ "USDCPriceFeed": {
614
+ "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"}],
615
+ "networks": {
616
+ "1": { "address": "0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6" }
617
+ }
600
618
  }
601
619
  }
package/src/contracts.ts CHANGED
@@ -94,4 +94,8 @@ export const McdJugContract = createContractFromConfigFunc<ContractTypes.McdJug>
94
94
  export const McdVatContract = createContractFromConfigFunc<ContractTypes.McdVat>('McdVat');
95
95
 
96
96
  export const ChickenBondsViewContract = createContractFromConfigFunc<ContractTypes.ChickenBondsView>('ChickenBondsView');
97
- export const ChickenBondsManagerContract = createContractFromConfigFunc<ContractTypes.ChickenBondsManager>('ChickenBondsManager');
97
+ export const ChickenBondsManagerContract = createContractFromConfigFunc<ContractTypes.ChickenBondsManager>('ChickenBondsManager');
98
+
99
+ export const ETHPriceFeedContract = createContractFromConfigFunc<ContractTypes.ETHPriceFeed>('ETHPriceFeed');
100
+ export const COMPPriceFeedContract = createContractFromConfigFunc<ContractTypes.COMPPriceFeed>('COMPPriceFeed');
101
+ export const USDCPriceFeedContract = createContractFromConfigFunc<ContractTypes.USDCPriceFeed>('USDCPriceFeed');
@@ -11,12 +11,14 @@ import {
11
11
  import { calculateNetApy } from '../../staking';
12
12
  import { NetworkNumber } from '../../types/common';
13
13
 
14
- export const formatMarketData = (data: any, network: NetworkNumber): CompoundV3AssetData => {
14
+ export const formatMarketData = (data: any, network: NetworkNumber, baseAssetPrice: string): CompoundV3AssetData => {
15
15
  const assetInfo = getAssetInfoByAddress(data.tokenAddr, network);
16
16
  const isWETH = assetInfo.symbol === 'WETH';
17
+ const price = getEthAmountForDecimals(data.price, 8);
17
18
  return ({
18
19
  ...data,
19
20
  price: getEthAmountForDecimals(data.price, 8),
21
+ priceUSD: new Dec(price).mul(baseAssetPrice).toString(),
20
22
  collateralFactor: getEthAmountForDecimals(data.borrowCollateralFactor, 18),
21
23
  liquidationRatio: getEthAmountForDecimals(data.liquidateCollateralFactor, 18),
22
24
  supplyCap: getEthAmountForDecimals(data.supplyCap, assetInfo.decimals),
@@ -30,7 +32,7 @@ export const formatMarketData = (data: any, network: NetworkNumber): CompoundV3A
30
32
  };
31
33
 
32
34
  // TODO: maybe not hardcode decimals
33
- export const formatBaseData = (data: any, network: NetworkNumber): CompoundV3AssetData & BaseAdditionalAssetData => {
35
+ export const formatBaseData = (data: any, network: NetworkNumber, baseAssetPrice: string): CompoundV3AssetData & BaseAdditionalAssetData => {
34
36
  const assetInfo = getAssetInfoByAddress(data.tokenAddr, network);
35
37
  const totalSupply = getEthAmountForDecimals(new Dec(data.totalSupply).mul(data.supplyIndex).toString(), 15 + assetInfo.decimals);
36
38
  const totalBorrow = getEthAmountForDecimals(new Dec(data.totalBorrow).mul(data.borrowIndex).toString(), 15 + assetInfo.decimals);
@@ -46,6 +48,7 @@ export const formatBaseData = (data: any, network: NetworkNumber): CompoundV3Ass
46
48
  marketLiquidity: new Dec(totalSupply).minus(totalBorrow).toString(),
47
49
  symbol: wethToEth(assetInfo.symbol),
48
50
  price: getEthAmountForDecimals(data.price, 8),
51
+ priceUSD: baseAssetPrice,
49
52
  collateralFactor: '0',
50
53
  liquidationRatio: '0',
51
54
  canBeBorrowed: true,
@@ -14,8 +14,10 @@ import {
14
14
  import { calculateBorrowingAssetLimit } from '../moneymarket';
15
15
  import { EMPTY_AAVE_DATA } from '../aaveV3';
16
16
  import { aaveAnyGetAggregatedPositionData } from '../helpers/aaveHelpers';
17
+ import { getEthPrice } from '../services/priceService';
17
18
 
18
- export const getMorphoAaveV2MarketsData = async (web3: Web3, network: NetworkNumber, ethPrice: string, mainnetWeb3: Web3): Promise<MorphoAaveV2MarketData> => {
19
+ export const getMorphoAaveV2MarketsData = async (web3: Web3, network: NetworkNumber, mainnetWeb3: Web3): Promise<MorphoAaveV2MarketData> => {
20
+ const ethPrice = await getEthPrice(mainnetWeb3);
19
21
  const morphoAaveV2ViewContract = MorphoAaveV2ViewContract(web3, network);
20
22
 
21
23
  const [contractData, morphoRewardsRes] = await Promise.allSettled([
@@ -246,8 +248,8 @@ export const getMorphoAaveV2AccountData = async (web3: Web3, network: NetworkNum
246
248
  return payload;
247
249
  };
248
250
 
249
- export const getMorphoAaveV2FullPositionData = async (web3: Web3, network: NetworkNumber, address: string, ethPrice: string, mainnetWeb3: Web3): Promise<MorphoAaveV2PositionData> => {
250
- const marketData = await getMorphoAaveV2MarketsData(web3, network, ethPrice, mainnetWeb3);
251
+ export const getMorphoAaveV2FullPositionData = async (web3: Web3, network: NetworkNumber, address: string, mainnetWeb3: Web3): Promise<MorphoAaveV2PositionData> => {
252
+ const marketData = await getMorphoAaveV2MarketsData(web3, network, mainnetWeb3);
251
253
  const positionData = await getMorphoAaveV2AccountData(web3, network, address, marketData.assetsData);
252
254
  return positionData;
253
255
  };
@@ -0,0 +1,22 @@
1
+ import Web3 from 'web3';
2
+ import Dec from 'decimal.js';
3
+ import { COMPPriceFeedContract, ETHPriceFeedContract, USDCPriceFeedContract } from '../contracts';
4
+ import { NetworkNumber } from '../types/common';
5
+
6
+ export const getEthPrice = async (web3: Web3) => {
7
+ const contract = ETHPriceFeedContract(web3, NetworkNumber.Eth);
8
+ const price = await contract.methods.latestAnswer().call();
9
+ return new Dec(price).div(1e8).toString();
10
+ };
11
+
12
+ export const getUSDCPrice = async (web3: Web3) => {
13
+ const contract = USDCPriceFeedContract(web3, NetworkNumber.Eth);
14
+ const price = await contract.methods.latestAnswer().call();
15
+ return new Dec(price).div(1e8).toString();
16
+ };
17
+
18
+ export const getCompPrice = async (web3: Web3) => {
19
+ const contract = COMPPriceFeedContract(web3, NetworkNumber.Eth);
20
+ const price = await contract.methods.latestAnswer().call();
21
+ return new Dec(price).div(1e8).toString();
22
+ };
@@ -0,0 +1,202 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import type BN from "bn.js";
6
+ import type { ContractOptions } from "web3-eth-contract";
7
+ import type { EventLog } from "web3-core";
8
+ import type { EventEmitter } from "events";
9
+ import type {
10
+ Callback,
11
+ PayableTransactionObject,
12
+ NonPayableTransactionObject,
13
+ BlockType,
14
+ ContractEventLog,
15
+ BaseContract,
16
+ } from "./types";
17
+
18
+ export interface EventOptions {
19
+ filter?: object;
20
+ fromBlock?: BlockType;
21
+ topics?: string[];
22
+ }
23
+
24
+ export type AnswerUpdated = ContractEventLog<{
25
+ current: string;
26
+ roundId: string;
27
+ updatedAt: string;
28
+ 0: string;
29
+ 1: string;
30
+ 2: string;
31
+ }>;
32
+ export type NewRound = ContractEventLog<{
33
+ roundId: string;
34
+ startedBy: string;
35
+ startedAt: string;
36
+ 0: string;
37
+ 1: string;
38
+ 2: string;
39
+ }>;
40
+ export type OwnershipTransferRequested = ContractEventLog<{
41
+ from: string;
42
+ to: string;
43
+ 0: string;
44
+ 1: string;
45
+ }>;
46
+ export type OwnershipTransferred = ContractEventLog<{
47
+ from: string;
48
+ to: string;
49
+ 0: string;
50
+ 1: string;
51
+ }>;
52
+
53
+ export interface COMPPriceFeed extends BaseContract {
54
+ constructor(
55
+ jsonInterface: any[],
56
+ address?: string,
57
+ options?: ContractOptions
58
+ ): COMPPriceFeed;
59
+ clone(): COMPPriceFeed;
60
+ methods: {
61
+ acceptOwnership(): NonPayableTransactionObject<void>;
62
+
63
+ accessController(): NonPayableTransactionObject<string>;
64
+
65
+ aggregator(): NonPayableTransactionObject<string>;
66
+
67
+ confirmAggregator(_aggregator: string): NonPayableTransactionObject<void>;
68
+
69
+ decimals(): NonPayableTransactionObject<string>;
70
+
71
+ description(): NonPayableTransactionObject<string>;
72
+
73
+ getAnswer(
74
+ _roundId: number | string | BN
75
+ ): NonPayableTransactionObject<string>;
76
+
77
+ getRoundData(
78
+ _roundId: number | string | BN
79
+ ): NonPayableTransactionObject<
80
+ [string, string, string, string, string] & {
81
+ roundId: string;
82
+ answer: string;
83
+ startedAt: string;
84
+ updatedAt: string;
85
+ answeredInRound: string;
86
+ }
87
+ >;
88
+
89
+ getTimestamp(
90
+ _roundId: number | string | BN
91
+ ): NonPayableTransactionObject<string>;
92
+
93
+ latestAnswer(): NonPayableTransactionObject<string>;
94
+
95
+ latestRound(): NonPayableTransactionObject<string>;
96
+
97
+ latestRoundData(): NonPayableTransactionObject<
98
+ [string, string, string, string, string] & {
99
+ roundId: string;
100
+ answer: string;
101
+ startedAt: string;
102
+ updatedAt: string;
103
+ answeredInRound: string;
104
+ }
105
+ >;
106
+
107
+ latestTimestamp(): NonPayableTransactionObject<string>;
108
+
109
+ owner(): NonPayableTransactionObject<string>;
110
+
111
+ phaseAggregators(
112
+ arg0: number | string | BN
113
+ ): NonPayableTransactionObject<string>;
114
+
115
+ phaseId(): NonPayableTransactionObject<string>;
116
+
117
+ proposeAggregator(_aggregator: string): NonPayableTransactionObject<void>;
118
+
119
+ proposedAggregator(): NonPayableTransactionObject<string>;
120
+
121
+ proposedGetRoundData(
122
+ _roundId: number | string | BN
123
+ ): NonPayableTransactionObject<
124
+ [string, string, string, string, string] & {
125
+ roundId: string;
126
+ answer: string;
127
+ startedAt: string;
128
+ updatedAt: string;
129
+ answeredInRound: string;
130
+ }
131
+ >;
132
+
133
+ proposedLatestRoundData(): NonPayableTransactionObject<
134
+ [string, string, string, string, string] & {
135
+ roundId: string;
136
+ answer: string;
137
+ startedAt: string;
138
+ updatedAt: string;
139
+ answeredInRound: string;
140
+ }
141
+ >;
142
+
143
+ setController(_accessController: string): NonPayableTransactionObject<void>;
144
+
145
+ transferOwnership(_to: string): NonPayableTransactionObject<void>;
146
+
147
+ version(): NonPayableTransactionObject<string>;
148
+ };
149
+ events: {
150
+ AnswerUpdated(cb?: Callback<AnswerUpdated>): EventEmitter;
151
+ AnswerUpdated(
152
+ options?: EventOptions,
153
+ cb?: Callback<AnswerUpdated>
154
+ ): EventEmitter;
155
+
156
+ NewRound(cb?: Callback<NewRound>): EventEmitter;
157
+ NewRound(options?: EventOptions, cb?: Callback<NewRound>): EventEmitter;
158
+
159
+ OwnershipTransferRequested(
160
+ cb?: Callback<OwnershipTransferRequested>
161
+ ): EventEmitter;
162
+ OwnershipTransferRequested(
163
+ options?: EventOptions,
164
+ cb?: Callback<OwnershipTransferRequested>
165
+ ): EventEmitter;
166
+
167
+ OwnershipTransferred(cb?: Callback<OwnershipTransferred>): EventEmitter;
168
+ OwnershipTransferred(
169
+ options?: EventOptions,
170
+ cb?: Callback<OwnershipTransferred>
171
+ ): EventEmitter;
172
+
173
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
174
+ };
175
+
176
+ once(event: "AnswerUpdated", cb: Callback<AnswerUpdated>): void;
177
+ once(
178
+ event: "AnswerUpdated",
179
+ options: EventOptions,
180
+ cb: Callback<AnswerUpdated>
181
+ ): void;
182
+
183
+ once(event: "NewRound", cb: Callback<NewRound>): void;
184
+ once(event: "NewRound", options: EventOptions, cb: Callback<NewRound>): void;
185
+
186
+ once(
187
+ event: "OwnershipTransferRequested",
188
+ cb: Callback<OwnershipTransferRequested>
189
+ ): void;
190
+ once(
191
+ event: "OwnershipTransferRequested",
192
+ options: EventOptions,
193
+ cb: Callback<OwnershipTransferRequested>
194
+ ): void;
195
+
196
+ once(event: "OwnershipTransferred", cb: Callback<OwnershipTransferred>): void;
197
+ once(
198
+ event: "OwnershipTransferred",
199
+ options: EventOptions,
200
+ cb: Callback<OwnershipTransferred>
201
+ ): void;
202
+ }
@@ -0,0 +1,202 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import type BN from "bn.js";
6
+ import type { ContractOptions } from "web3-eth-contract";
7
+ import type { EventLog } from "web3-core";
8
+ import type { EventEmitter } from "events";
9
+ import type {
10
+ Callback,
11
+ PayableTransactionObject,
12
+ NonPayableTransactionObject,
13
+ BlockType,
14
+ ContractEventLog,
15
+ BaseContract,
16
+ } from "./types";
17
+
18
+ export interface EventOptions {
19
+ filter?: object;
20
+ fromBlock?: BlockType;
21
+ topics?: string[];
22
+ }
23
+
24
+ export type AnswerUpdated = ContractEventLog<{
25
+ current: string;
26
+ roundId: string;
27
+ updatedAt: string;
28
+ 0: string;
29
+ 1: string;
30
+ 2: string;
31
+ }>;
32
+ export type NewRound = ContractEventLog<{
33
+ roundId: string;
34
+ startedBy: string;
35
+ startedAt: string;
36
+ 0: string;
37
+ 1: string;
38
+ 2: string;
39
+ }>;
40
+ export type OwnershipTransferRequested = ContractEventLog<{
41
+ from: string;
42
+ to: string;
43
+ 0: string;
44
+ 1: string;
45
+ }>;
46
+ export type OwnershipTransferred = ContractEventLog<{
47
+ from: string;
48
+ to: string;
49
+ 0: string;
50
+ 1: string;
51
+ }>;
52
+
53
+ export interface ETHPriceFeed extends BaseContract {
54
+ constructor(
55
+ jsonInterface: any[],
56
+ address?: string,
57
+ options?: ContractOptions
58
+ ): ETHPriceFeed;
59
+ clone(): ETHPriceFeed;
60
+ methods: {
61
+ acceptOwnership(): NonPayableTransactionObject<void>;
62
+
63
+ accessController(): NonPayableTransactionObject<string>;
64
+
65
+ aggregator(): NonPayableTransactionObject<string>;
66
+
67
+ confirmAggregator(_aggregator: string): NonPayableTransactionObject<void>;
68
+
69
+ decimals(): NonPayableTransactionObject<string>;
70
+
71
+ description(): NonPayableTransactionObject<string>;
72
+
73
+ getAnswer(
74
+ _roundId: number | string | BN
75
+ ): NonPayableTransactionObject<string>;
76
+
77
+ getRoundData(
78
+ _roundId: number | string | BN
79
+ ): NonPayableTransactionObject<
80
+ [string, string, string, string, string] & {
81
+ roundId: string;
82
+ answer: string;
83
+ startedAt: string;
84
+ updatedAt: string;
85
+ answeredInRound: string;
86
+ }
87
+ >;
88
+
89
+ getTimestamp(
90
+ _roundId: number | string | BN
91
+ ): NonPayableTransactionObject<string>;
92
+
93
+ latestAnswer(): NonPayableTransactionObject<string>;
94
+
95
+ latestRound(): NonPayableTransactionObject<string>;
96
+
97
+ latestRoundData(): NonPayableTransactionObject<
98
+ [string, string, string, string, string] & {
99
+ roundId: string;
100
+ answer: string;
101
+ startedAt: string;
102
+ updatedAt: string;
103
+ answeredInRound: string;
104
+ }
105
+ >;
106
+
107
+ latestTimestamp(): NonPayableTransactionObject<string>;
108
+
109
+ owner(): NonPayableTransactionObject<string>;
110
+
111
+ phaseAggregators(
112
+ arg0: number | string | BN
113
+ ): NonPayableTransactionObject<string>;
114
+
115
+ phaseId(): NonPayableTransactionObject<string>;
116
+
117
+ proposeAggregator(_aggregator: string): NonPayableTransactionObject<void>;
118
+
119
+ proposedAggregator(): NonPayableTransactionObject<string>;
120
+
121
+ proposedGetRoundData(
122
+ _roundId: number | string | BN
123
+ ): NonPayableTransactionObject<
124
+ [string, string, string, string, string] & {
125
+ roundId: string;
126
+ answer: string;
127
+ startedAt: string;
128
+ updatedAt: string;
129
+ answeredInRound: string;
130
+ }
131
+ >;
132
+
133
+ proposedLatestRoundData(): NonPayableTransactionObject<
134
+ [string, string, string, string, string] & {
135
+ roundId: string;
136
+ answer: string;
137
+ startedAt: string;
138
+ updatedAt: string;
139
+ answeredInRound: string;
140
+ }
141
+ >;
142
+
143
+ setController(_accessController: string): NonPayableTransactionObject<void>;
144
+
145
+ transferOwnership(_to: string): NonPayableTransactionObject<void>;
146
+
147
+ version(): NonPayableTransactionObject<string>;
148
+ };
149
+ events: {
150
+ AnswerUpdated(cb?: Callback<AnswerUpdated>): EventEmitter;
151
+ AnswerUpdated(
152
+ options?: EventOptions,
153
+ cb?: Callback<AnswerUpdated>
154
+ ): EventEmitter;
155
+
156
+ NewRound(cb?: Callback<NewRound>): EventEmitter;
157
+ NewRound(options?: EventOptions, cb?: Callback<NewRound>): EventEmitter;
158
+
159
+ OwnershipTransferRequested(
160
+ cb?: Callback<OwnershipTransferRequested>
161
+ ): EventEmitter;
162
+ OwnershipTransferRequested(
163
+ options?: EventOptions,
164
+ cb?: Callback<OwnershipTransferRequested>
165
+ ): EventEmitter;
166
+
167
+ OwnershipTransferred(cb?: Callback<OwnershipTransferred>): EventEmitter;
168
+ OwnershipTransferred(
169
+ options?: EventOptions,
170
+ cb?: Callback<OwnershipTransferred>
171
+ ): EventEmitter;
172
+
173
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
174
+ };
175
+
176
+ once(event: "AnswerUpdated", cb: Callback<AnswerUpdated>): void;
177
+ once(
178
+ event: "AnswerUpdated",
179
+ options: EventOptions,
180
+ cb: Callback<AnswerUpdated>
181
+ ): void;
182
+
183
+ once(event: "NewRound", cb: Callback<NewRound>): void;
184
+ once(event: "NewRound", options: EventOptions, cb: Callback<NewRound>): void;
185
+
186
+ once(
187
+ event: "OwnershipTransferRequested",
188
+ cb: Callback<OwnershipTransferRequested>
189
+ ): void;
190
+ once(
191
+ event: "OwnershipTransferRequested",
192
+ options: EventOptions,
193
+ cb: Callback<OwnershipTransferRequested>
194
+ ): void;
195
+
196
+ once(event: "OwnershipTransferred", cb: Callback<OwnershipTransferred>): void;
197
+ once(
198
+ event: "OwnershipTransferred",
199
+ options: EventOptions,
200
+ cb: Callback<OwnershipTransferred>
201
+ ): void;
202
+ }