@@ -26,6 +26,7 @@ import { ReentrancyGuard } from "@openzeppelin/contracts/utils/ReentrancyGuard.s
26
26
27
27
import { ISwapRouter} from "../interfaces/external/ISwapRouter.sol " ;
28
28
import { IAToken } from "../interfaces/IAToken.sol " ;
29
+ import { IAaveLeverageModule } from "../interfaces/IAaveLeverageModule.sol " ;
29
30
import { IDebtIssuanceModule } from "../interfaces/IDebtIssuanceModule.sol " ;
30
31
import { IController } from "../interfaces/IController.sol " ;
31
32
import { ISetToken } from "../interfaces/ISetToken.sol " ;
@@ -93,6 +94,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
93
94
address immutable public WETH;
94
95
IController public immutable setController;
95
96
IDebtIssuanceModule public immutable debtIssuanceModule;
97
+ IAaveLeverageModule public immutable aaveLeverageModule;
96
98
97
99
/* ============ Events ============ */
98
100
@@ -135,6 +137,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
135
137
* @param _uniV3Router Address of uniswap v3 router
136
138
* @param _setController SetToken controller used to verify a given token is a set
137
139
* @param _debtIssuanceModule DebtIssuanceModule used to issue and redeem tokens
140
+ * @param _aaveLeverageModule AaveLeverageModule to sync before every issuance / redemption
138
141
* @param _addressProvider Address of DebtIssuanceModule used to issue and redeem tokens
139
142
*/
140
143
constructor (
@@ -144,6 +147,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
144
147
ISwapRouter _uniV3Router ,
145
148
IController _setController ,
146
149
IDebtIssuanceModule _debtIssuanceModule ,
150
+ IAaveLeverageModule _aaveLeverageModule ,
147
151
address _addressProvider
148
152
)
149
153
public
@@ -152,6 +156,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
152
156
{
153
157
setController = _setController;
154
158
debtIssuanceModule = _debtIssuanceModule;
159
+ aaveLeverageModule = _aaveLeverageModule;
155
160
156
161
WETH = _weth;
157
162
}
@@ -571,6 +576,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
571
576
isSetToken (_setToken)
572
577
internal
573
578
{
579
+ aaveLeverageModule.sync (_setToken);
574
580
LeveragedTokenData memory leveragedTokenData = _getLeveragedTokenData (_setToken, _setAmount, true );
575
581
576
582
address [] memory assets = new address [](1 );
@@ -620,6 +626,7 @@ contract ExchangeIssuanceLeveraged is ReentrancyGuard, FlashLoanReceiverBaseV2,
620
626
isSetToken (_setToken)
621
627
internal
622
628
{
629
+ aaveLeverageModule.sync (_setToken);
623
630
LeveragedTokenData memory leveragedTokenData = _getLeveragedTokenData (_setToken, _setAmount, false );
624
631
625
632
address [] memory assets = new address [](1 );
0 commit comments