From bd3ebe6ea11112d4dc020215922710e0b888d25c Mon Sep 17 00:00:00 2001 From: Mubaris NK Date: Sun, 11 Apr 2021 22:23:42 +0530 Subject: [PATCH] Finish senders --- contracts/senders/aave-v2-migrator/events.sol | 15 ++++++++++----- contracts/senders/aave-v2-migrator/interfaces.sol | 4 ++++ contracts/senders/aave-v2-migrator/main.sol | 8 ++++++-- contracts/senders/aave-v2-migrator/variables.sol | 9 ++++++++- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/contracts/senders/aave-v2-migrator/events.sol b/contracts/senders/aave-v2-migrator/events.sol index b59e0fd..59f2c47 100644 --- a/contracts/senders/aave-v2-migrator/events.sol +++ b/contracts/senders/aave-v2-migrator/events.sol @@ -5,13 +5,18 @@ contract Events { event LogDeposit( address owner, address[] tokens, - uint[] amts + uint256[] amts ); event LogWithdraw( address owner, address[] tokens, - uint[] amts + uint256[] amts + ); + + event LogSettle( + address[] tokens, + uint256[] amts ); event LogAaveV2Migrate( @@ -19,9 +24,9 @@ contract Events { address indexed targetDsa, address[] supplyTokens, address[] borrowTokens, - uint[] supplyAmts, - uint[] variableBorrowAmts, - uint[] stableBorrowAmts + uint256[] supplyAmts, + uint256[] variableBorrowAmts, + uint256[] stableBorrowAmts ); event LogUpdateVariables( diff --git a/contracts/senders/aave-v2-migrator/interfaces.sol b/contracts/senders/aave-v2-migrator/interfaces.sol index a8e40cb..7028509 100644 --- a/contracts/senders/aave-v2-migrator/interfaces.sol +++ b/contracts/senders/aave-v2-migrator/interfaces.sol @@ -107,4 +107,8 @@ interface IndexInterface { interface FlashloanInterface { function initiateFlashLoan(bytes memory data, uint ethAmt) external; +} + +interface RootChainManagerInterface { + function depositFor(address user, address token, bytes calldata depositData) external; } \ No newline at end of file diff --git a/contracts/senders/aave-v2-migrator/main.sol b/contracts/senders/aave-v2-migrator/main.sol index d6319fb..3c81c3e 100644 --- a/contracts/senders/aave-v2-migrator/main.sol +++ b/contracts/senders/aave-v2-migrator/main.sol @@ -173,12 +173,16 @@ contract LiquidityResolver is Helpers, Events { } } for (uint i = 0; i < _tokens.length; i++) { + address _token = _tokens[i] == ethAddr ? wethAddr : _tokens[i]; aave.withdraw(_token, _amts[i], address(this)); - // TODO: transfer to polygon's receiver address "polygonReceiver" + // TODO: Verify this + IERC20(_token).safeApprove(erc20Predicate, _amts[i]); + rootChainManager.depositFor(polygonReceiver, _token, abi.encode(_amts[i])); + isPositionSafe(); } + emit LogSettle(_tokens, _amts); } - // TODO: emit event } contract MigrateResolver is LiquidityResolver { diff --git a/contracts/senders/aave-v2-migrator/variables.sol b/contracts/senders/aave-v2-migrator/variables.sol index 83bdd8c..0668ca4 100644 --- a/contracts/senders/aave-v2-migrator/variables.sol +++ b/contracts/senders/aave-v2-migrator/variables.sol @@ -6,7 +6,8 @@ import { AaveOracleInterface, StateSenderInterface, IndexInterface, - FlashloanInterface + FlashloanInterface, + RootChainManagerInterface } from "./interfaces.sol"; contract Variables { @@ -35,6 +36,7 @@ contract Variables { address constant internal polygonReceiver = address(0); // TODO: Replace this FlashloanInterface constant internal flashloanContract = FlashloanInterface(address(0)); // TODO: Replace this + address constant internal erc20Predicate = 0x40ec5B33f54e0E8A33A975908C5BA1c14e5BbbDf; // This will be used to have debt/collateral ratio always 20% less than liquidation // TODO: Is this number correct for it? @@ -69,4 +71,9 @@ contract Variables { // InstaIndex Address. IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723); + /** + * Polygon deposit bridge + */ + RootChainManagerInterface public constant rootChainManager = RootChainManagerInterface(0xA0c68C638235ee32657e8f720a23ceC1bFc77C77); + } \ No newline at end of file