mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Cached the aWETH address
This commit is contained in:
parent
f70754263d
commit
e8028416d6
|
@ -17,6 +17,7 @@ contract WETHGateway is IWETHGateway {
|
||||||
|
|
||||||
IWETH public immutable WETH;
|
IWETH public immutable WETH;
|
||||||
ILendingPool public immutable POOL;
|
ILendingPool public immutable POOL;
|
||||||
|
IAToken public immutable aWETH;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @dev Sets the WETH address and the LendingPoolAddressesProvider address. Infinite approves lending pool.
|
* @dev Sets the WETH address and the LendingPoolAddressesProvider address. Infinite approves lending pool.
|
||||||
|
@ -24,8 +25,10 @@ contract WETHGateway is IWETHGateway {
|
||||||
* @param pool Address of the LendingPool contract
|
* @param pool Address of the LendingPool contract
|
||||||
**/
|
**/
|
||||||
constructor(address weth, address pool) public {
|
constructor(address weth, address pool) public {
|
||||||
|
ILendingPool poolInstance = ILendingPool(pool);
|
||||||
WETH = IWETH(weth);
|
WETH = IWETH(weth);
|
||||||
POOL = ILendingPool(pool);
|
POOL = poolInstance;
|
||||||
|
aWETH = IAToken(poolInstance.getReserveData(weth).aTokenAddress);
|
||||||
IWETH(weth).approve(pool, uint256(-1));
|
IWETH(weth).approve(pool, uint256(-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,20 +49,14 @@ contract WETHGateway is IWETHGateway {
|
||||||
* @param to address of the user who will receive native ETH
|
* @param to address of the user who will receive native ETH
|
||||||
*/
|
*/
|
||||||
function withdrawETH(uint256 amount, address to) external override {
|
function withdrawETH(uint256 amount, address to) external override {
|
||||||
uint256 userBalance = IAToken(POOL.getReserveData(address(WETH)).aTokenAddress).balanceOf(
|
uint256 userBalance = aWETH.balanceOf(msg.sender);
|
||||||
msg.sender
|
|
||||||
);
|
|
||||||
uint256 amountToWithdraw = amount;
|
uint256 amountToWithdraw = amount;
|
||||||
|
|
||||||
// if amount is equal to uint(-1), the user wants to redeem everything
|
// if amount is equal to uint(-1), the user wants to redeem everything
|
||||||
if (amount == type(uint256).max) {
|
if (amount == type(uint256).max) {
|
||||||
amountToWithdraw = userBalance;
|
amountToWithdraw = userBalance;
|
||||||
}
|
}
|
||||||
IAToken(POOL.getReserveData(address(WETH)).aTokenAddress).transferFrom(
|
aWETH.transferFrom(msg.sender, address(this), amountToWithdraw);
|
||||||
msg.sender,
|
|
||||||
address(this),
|
|
||||||
amountToWithdraw
|
|
||||||
);
|
|
||||||
POOL.withdraw(address(WETH), amountToWithdraw, address(this));
|
POOL.withdraw(address(WETH), amountToWithdraw, address(this));
|
||||||
WETH.withdraw(amountToWithdraw);
|
WETH.withdraw(amountToWithdraw);
|
||||||
safeTransferETH(to, amountToWithdraw);
|
safeTransferETH(to, amountToWithdraw);
|
||||||
|
|
|
@ -171,7 +171,7 @@
|
||||||
},
|
},
|
||||||
"ReserveLogic": {
|
"ReserveLogic": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xFAe0fd738dAbc8a0426F47437322b6d026A9FD95",
|
"address": "0x920d847fE49E54C19047ba8bc236C45A8068Bca7",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
},
|
},
|
||||||
"kovan": {
|
"kovan": {
|
||||||
|
@ -181,19 +181,20 @@
|
||||||
},
|
},
|
||||||
"GenericLogic": {
|
"GenericLogic": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x6082731fdAba4761277Fb31299ebC782AD3bCf24",
|
"address": "0xA4765Ff72A9F3CfE73089bb2c3a41B838DF71574",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ValidationLogic": {
|
"ValidationLogic": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x8456161947DFc1fC159A0B26c025cD2b4bba0c3e",
|
"address": "0x35c1419Da7cf0Ff885B8Ef8EA9242FEF6800c99b",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"LendingPool": {
|
"LendingPool": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xD9273d497eDBC967F39d419461CfcF382a0A822e"
|
"address": "0xe2607EabC87fd0A4856840bF23da8458cDF0434F",
|
||||||
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"LendingPoolConfigurator": {
|
"LendingPoolConfigurator": {
|
||||||
|
@ -209,7 +210,7 @@
|
||||||
},
|
},
|
||||||
"ATokensAndRatesHelper": {
|
"ATokensAndRatesHelper": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x06bA8d8af0dF898D0712DffFb0f862cC51AF45c2",
|
"address": "0xA4765Ff72A9F3CfE73089bb2c3a41B838DF71574",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -301,4 +302,4 @@
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user