@@ -91,7 +91,13 @@ contract IonicFlywheelLensRouter {
91
91
market,
92
92
rewardTokenDecimals[j]
93
93
);
94
- uint256 apr = getApr (rewardSpeedPerSecondPerToken, rewardTokenPrices[j], price, market.exchangeRateCurrent ());
94
+ uint256 apr = getApr (
95
+ rewardSpeedPerSecondPerToken,
96
+ rewardTokenPrices[j],
97
+ price,
98
+ market.exchangeRateCurrent (),
99
+ flywheel.flywheelBooster.address != address (0 )
100
+ );
95
101
96
102
rewardsInfo[j] = RewardsInfo ({
97
103
rewardSpeedPerSecondPerToken: rewardSpeedPerSecondPerToken, // scaled in 1e18
@@ -132,14 +138,21 @@ contract IonicFlywheelLensRouter {
132
138
uint256 rewardSpeedPerSecondPerToken ,
133
139
uint256 rewardTokenPrice ,
134
140
uint256 underlyingPrice ,
135
- uint256 exchangeRate
141
+ uint256 exchangeRate ,
142
+ bool isBorrow
136
143
) internal pure returns (uint256 ) {
137
144
if (rewardSpeedPerSecondPerToken == 0 ) return 0 ;
138
145
uint256 nativeSpeedPerSecondPerCToken = rewardSpeedPerSecondPerToken * rewardTokenPrice; // scaled to 1e36
139
146
uint256 nativeSpeedPerYearPerCToken = nativeSpeedPerSecondPerCToken * 365.25 days ; // scaled to 1e36
140
147
uint256 assetSpeedPerYearPerCToken = nativeSpeedPerYearPerCToken / underlyingPrice; // scaled to 1e18
141
148
uint256 assetSpeedPerYearPerCTokenScaled = assetSpeedPerYearPerCToken * 1e18 ; // scaled to 1e36
142
- uint256 apr = assetSpeedPerYearPerCTokenScaled / exchangeRate; // scaled to 1e18
149
+ uint256 apr = assetSpeedPerYearPerCTokenScaled;
150
+ if (! isBorrow) {
151
+ // if not borrowing, use exchange rate to scale
152
+ apr = assetSpeedPerYearPerCTokenScaled / exchangeRate; // scaled to 1e18
153
+ } else {
154
+ apr = assetSpeedPerYearPerCTokenScaled / 1e18 ; // scaled to 1e18
155
+ }
143
156
return apr;
144
157
}
145
158
@@ -163,7 +176,8 @@ contract IonicFlywheelLensRouter {
163
176
rewardSpeedPerSecondPerToken,
164
177
oracle.price (address (rewardToken)),
165
178
underlyingPrice,
166
- market.exchangeRateCurrent ()
179
+ market.exchangeRateCurrent (),
180
+ flywheel.flywheelBooster.address != address (0 )
167
181
);
168
182
169
183
totalMarketRewardsApr += int256 (marketApr);
0 commit comments