@@ -15,7 +15,9 @@ import "@pythnetwork/pyth-sdk-solidity/IPyth.sol";
1515/// @notice Morpho Blue oracle using Pyth Price Feeds. 
1616contract  MorphoPythOracle  is  IMorphoPythOracle  {
1717    using Math   for  uint256 ;
18+ 
1819    IPyth public  immutable  pyth;
20+ 
1921    using VaultLib   for  IERC4626 ;
2022
2123    /* IMMUTABLES */ 
@@ -73,18 +75,11 @@ contract MorphoPythOracle is IMorphoPythOracle {
7375            PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE
7476        );
7577        require (
76-             address (quoteVault) !=  address (0 ) || 
77-                 quoteVaultConversionSample ==  1 ,
78+             address (quoteVault) !=  address (0 ) ||  quoteVaultConversionSample ==  1 ,
7879            PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_NOT_ONE
7980        );
80-         require (
81-             baseVaultConversionSample !=  0 ,
82-             PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO
83-         );
84-         require (
85-             quoteVaultConversionSample !=  0 ,
86-             PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO
87-         );
81+         require (baseVaultConversionSample !=  0 , PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO);
82+         require (quoteVaultConversionSample !=  0 , PythErrorsLib.VAULT_CONVERSION_SAMPLE_IS_ZERO);
8883        BASE_VAULT =  baseVault;
8984        BASE_VAULT_CONVERSION_SAMPLE =  baseVaultConversionSample;
9085        QUOTE_VAULT =  quoteVault;
@@ -95,17 +90,14 @@ contract MorphoPythOracle is IMorphoPythOracle {
9590        QUOTE_FEED_2 =  quoteFeed2;
9691
9792        pyth =  IPyth (pyth_);
98-         SCALE_FACTOR = 
99-             (10  ** 
100-                 (36  + 
101-                     quoteTokenDecimals + 
102-                     PythFeedLib.getDecimals (pyth, QUOTE_FEED_1) + 
103-                     PythFeedLib.getDecimals (pyth, QUOTE_FEED_2) - 
104-                     baseTokenDecimals - 
105-                     PythFeedLib.getDecimals (pyth, BASE_FEED_1) - 
106-                     PythFeedLib.getDecimals (pyth, BASE_FEED_2)) * 
107-                 quoteVaultConversionSample) / 
108-             baseVaultConversionSample;
93+         SCALE_FACTOR =  (
94+             10 
95+                 **  (
96+                     36  +  quoteTokenDecimals +  PythFeedLib.getDecimals (pyth, QUOTE_FEED_1)
97+                         +  PythFeedLib.getDecimals (pyth, QUOTE_FEED_2) -  baseTokenDecimals
98+                         -  PythFeedLib.getDecimals (pyth, BASE_FEED_1) -  PythFeedLib.getDecimals (pyth, BASE_FEED_2)
99+                 ) *  quoteVaultConversionSample
100+         ) /  baseVaultConversionSample;
109101
110102        PRICE_FEED_MAX_AGE =  priceFeedMaxAge;
111103    }
@@ -114,22 +106,13 @@ contract MorphoPythOracle is IMorphoPythOracle {
114106
115107    /// @inheritdoc IOracle 
116108    function price  () external  view  returns  (uint256 ) {
117-         return 
118-             SCALE_FACTOR.mulDiv (
119-                 BASE_VAULT.getAssets (BASE_VAULT_CONVERSION_SAMPLE) * 
120-                     PythFeedLib.getPrice (
121-                         pyth,
122-                         BASE_FEED_1,
123-                         PRICE_FEED_MAX_AGE
124-                     ) * 
125-                     PythFeedLib.getPrice (pyth, BASE_FEED_2, PRICE_FEED_MAX_AGE),
126-                 QUOTE_VAULT.getAssets (QUOTE_VAULT_CONVERSION_SAMPLE) * 
127-                     PythFeedLib.getPrice (
128-                         pyth,
129-                         QUOTE_FEED_1,
130-                         PRICE_FEED_MAX_AGE
131-                     ) * 
132-                     PythFeedLib.getPrice (pyth, QUOTE_FEED_2, PRICE_FEED_MAX_AGE)
133-             );
109+         return  SCALE_FACTOR.mulDiv (
110+             BASE_VAULT.getAssets (BASE_VAULT_CONVERSION_SAMPLE)
111+                 *  PythFeedLib.getPrice (pyth, BASE_FEED_1, PRICE_FEED_MAX_AGE)
112+                 *  PythFeedLib.getPrice (pyth, BASE_FEED_2, PRICE_FEED_MAX_AGE),
113+             QUOTE_VAULT.getAssets (QUOTE_VAULT_CONVERSION_SAMPLE)
114+                 *  PythFeedLib.getPrice (pyth, QUOTE_FEED_1, PRICE_FEED_MAX_AGE)
115+                 *  PythFeedLib.getPrice (pyth, QUOTE_FEED_2, PRICE_FEED_MAX_AGE)
116+         );
134117    }
135118}
0 commit comments