mirror of
https://github.com/Instadapp/dsa-polygon-migration.git
synced 2024-07-29 22:27:58 +00:00
80 lines
2.2 KiB
Solidity
80 lines
2.2 KiB
Solidity
pragma solidity ^0.7.0;
|
|
|
|
import { DSMath } from "../../common/math.sol";
|
|
import { Stores } from "../../common/stores.sol";
|
|
|
|
import {
|
|
AaveLendingPoolProviderInterface,
|
|
AaveDataProviderInterface,
|
|
AaveInterface,
|
|
StateSenderInterface
|
|
} from "./interfaces.sol";
|
|
|
|
abstract contract Helpers is DSMath, Stores {
|
|
/**
|
|
* @dev Aave referal code
|
|
*/
|
|
uint16 constant internal referalCode = 3228;
|
|
|
|
address constant internal polygonReceiver = address(2); // Replace this
|
|
|
|
/**
|
|
* @dev Aave Provider
|
|
*/
|
|
AaveLendingPoolProviderInterface constant internal aaveProvider = AaveLendingPoolProviderInterface(0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5);
|
|
|
|
/**
|
|
* @dev Aave Data Provider
|
|
*/
|
|
AaveDataProviderInterface constant internal aaveData = AaveDataProviderInterface(0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d);
|
|
|
|
/**
|
|
* @dev Polygon State Sync Contract
|
|
*/
|
|
StateSenderInterface constant internal stateSender = StateSenderInterface(0x28e4F3a7f651294B9564800b2D01f35189A5bFbE);
|
|
|
|
function _paybackBehalfOne(AaveInterface aave, address token, uint amt, uint rateMode, address user) private {
|
|
aave.repay(token, amt, rateMode, user);
|
|
}
|
|
|
|
function _PaybackStable(
|
|
uint _length,
|
|
AaveInterface aave,
|
|
address[] memory tokens,
|
|
uint256[] memory amts,
|
|
address user
|
|
) internal {
|
|
for (uint i = 0; i < _length; i++) {
|
|
if (amts[i] > 0) {
|
|
_paybackBehalfOne(aave, tokens[i], amts[i], 1, user);
|
|
}
|
|
}
|
|
}
|
|
|
|
function _PaybackVariable(
|
|
uint _length,
|
|
AaveInterface aave,
|
|
address[] memory tokens,
|
|
uint256[] memory amts,
|
|
address user
|
|
) internal {
|
|
for (uint i = 0; i < _length; i++) {
|
|
if (amts[i] > 0) {
|
|
_paybackBehalfOne(aave, tokens[i], amts[i], 2, user);
|
|
}
|
|
}
|
|
}
|
|
|
|
function _Withdraw(
|
|
uint _length,
|
|
AaveInterface aave,
|
|
address[] memory tokens,
|
|
uint256[] memory amts
|
|
) internal {
|
|
for (uint i = 0; i < _length; i++) {
|
|
if (amts[i] > 0) {
|
|
aave.withdraw(tokens[i], amts[i], address(this));
|
|
}
|
|
}
|
|
}
|
|
} |