mirror of
				https://github.com/Instadapp/dsa-polygon-migration.git
				synced 2024-07-29 22:27:58 +00:00 
			
		
		
		
	updates, fixes & refactoring
This commit is contained in:
		
							parent
							
								
									ac0217de32
								
							
						
					
					
						commit
						9779cd4241
					
				|  | @ -15,6 +15,10 @@ import { | |||
| abstract contract Helpers is DSMath { | ||||
|     using SafeERC20 for IERC20; | ||||
| 
 | ||||
|     // This will be used to have debt/collateral ratio always 20% less than liquidation | ||||
|     // TODO: Is this number correct for it? | ||||
|     uint public safeRatioGap = 200000000000000000; // 20%? 2e17 | ||||
| 
 | ||||
|     // TODO: Add function for flash deposits and withdraw | ||||
|     mapping(address => mapping(address => uint)) flashDeposits; // Flash deposits of particular token | ||||
|     mapping(address => uint) flashAmts; // token amount for flashloan usage (these token will always stay raw in this contract) | ||||
|  | @ -36,6 +40,11 @@ abstract contract Helpers is DSMath { | |||
|         return data; | ||||
|     } | ||||
| 
 | ||||
|     function isPositionSafe() internal returns (bool isOk) { | ||||
|         // TODO: Check the final position health | ||||
|         require(isOk, "position-at-risk"); | ||||
|     } | ||||
| 
 | ||||
|     function transferAtokens(address dsa, address[] memory supplyTokens, uint[] memory supplyAmts) internal { | ||||
|         AaveInterface aave = AaveInterface(aaveProvider.getLendingPool()); | ||||
|         for (uint i = 0; i < supplyTokens.length; i++) { | ||||
|  |  | |||
|  | @ -11,13 +11,9 @@ import { Helpers } from "./helpers.sol"; | |||
| contract MigrateResolver is Helpers, Events { | ||||
|     using SafeERC20 for IERC20; | ||||
| 
 | ||||
|     // This will be used to have debt/collateral ratio always 20% less than liquidation | ||||
|     // TODO: Is this number correct for it? | ||||
|     uint public safeRatioGap = 200000000000000000; // 20%? 2e17 | ||||
| 
 | ||||
|     // dsa => position | ||||
|     mapping(uint => bytes) public positions; | ||||
|     mapping(address => mapping(address => uint)) deposits; | ||||
|     mapping(address => mapping(address => uint)) public deposits; | ||||
| 
 | ||||
|     // InstaIndex Address. | ||||
|     IndexInterface public constant instaIndex = IndexInterface(0x2971AdFa57b20E5a416aE5a708A8655A9c74f723); | ||||
|  | @ -82,8 +78,19 @@ contract MigrateResolver is Helpers, Events { | |||
|             _amts[i] = _amt; | ||||
|         } | ||||
| 
 | ||||
|         isPositionSafe(); | ||||
| 
 | ||||
|         emit LogWithdraw(msg.sender, tokens, _amts); | ||||
|     } | ||||
| 
 | ||||
|     // TODO: Things to factor | ||||
|     // If there is same token supply and borrow, then close the smaller one | ||||
|     // If there is ideal token then payback or deposit according to the position | ||||
|     // Object is the decrease the ratio and pay as less interest | ||||
|     function settle() external { | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| contract AaveV2Migrator is MigrateResolver { | ||||
|  | @ -105,7 +112,7 @@ contract AaveV2Migrator is MigrateResolver { | |||
|         // Have to borrow from user's account | ||||
|         borrowAndTransferSpells(dsa, borrowTokens, borrowAmts); | ||||
| 
 | ||||
|         // TODO: Final position should be 20% less than liquidation (use 'safeRatioGap', Also should we check this at start?) | ||||
|         isPositionSafe(); | ||||
|     } | ||||
| 
 | ||||
|     // function getPosition(address owner) public view returns (AaveData memory data) { | ||||
|  |  | |||
|  | @ -106,11 +106,14 @@ contract LiquidityResolver is Helpers, Events { | |||
|         emit LogWithdraw(msg.sender, tokens, _amts); | ||||
|     } | ||||
| 
 | ||||
|     // TODO: payback if debt else deposit | ||||
|     // TODO: if ratio is safe then transfer excess collateral to L2 migration contract | ||||
|     // TODO: Things to factor | ||||
|     // If there is same token supply and borrow, then close the smaller one | ||||
|     // If there is ideal token then payback or deposit according to the position | ||||
|     // Object is the decrease the ratio and pay as less interest | ||||
|     // If ratio is safe then transfer excess collateral to L2 migration contract | ||||
|     // Always, keep 1000 wei WETH ideal for flashloan | ||||
|     function settle(address[] calldata tokens) external { | ||||
|          | ||||
|     function settle() external { | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Samyak Jain
						Samyak Jain