mirror of
https://github.com/Instadapp/dsa-connectors-old.git
synced 2024-07-29 22:47:46 +00:00
Code Refactoring
This commit is contained in:
parent
9d8714a163
commit
c7e0bcf99a
|
@ -125,16 +125,16 @@ contract Helpers is DSMath {
|
||||||
(_type, _id) = (1, 8);
|
(_type, _id) = (1, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _transfer(address payable to, address token, uint _amt) internal {
|
function _transfer(address payable to, IERC20 token, uint _amt) internal {
|
||||||
token == getAddressETH() ?
|
address(token) == getAddressETH() ?
|
||||||
to.transfer(_amt) :
|
to.transfer(_amt) :
|
||||||
IERC20(token).safeTransfer(to, _amt);
|
token.safeTransfer(to, _amt);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _getBalance(address token) internal view returns (uint256) {
|
function _getBalance(IERC20 token) internal view returns (uint256) {
|
||||||
return token == getAddressETH() ?
|
return address(token) == getAddressETH() ?
|
||||||
address(this).balance :
|
address(this).balance :
|
||||||
TokenInterface(token).balanceOf(address(this));
|
token.balanceOf(address(this));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -154,9 +154,9 @@ contract LiquidityHelpers is Helpers {
|
||||||
return 0x06cB7C24990cBE6b9F99982f975f9147c000fec6; // TODO - change
|
return 0x06cB7C24990cBE6b9F99982f975f9147c000fec6; // TODO - change
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateTotalFeeAmt(address token, uint amt) internal view returns (uint totalAmt) {
|
function calculateTotalFeeAmt(IERC20 token, uint amt) internal view returns (uint totalAmt) {
|
||||||
uint fee = InstaPoolFeeInterface(getInstaPoolFeeAddr()).fee();
|
uint fee = InstaPoolFeeInterface(getInstaPoolFeeAddr()).fee();
|
||||||
uint flashAmt = LiqudityInterface(getLiquidityAddress()).borrowedToken(token);
|
uint flashAmt = LiqudityInterface(getLiquidityAddress()).borrowedToken(address(token));
|
||||||
if (fee == 0) {
|
if (fee == 0) {
|
||||||
totalAmt = amt;
|
totalAmt = amt;
|
||||||
} else {
|
} else {
|
||||||
|
@ -165,7 +165,7 @@ contract LiquidityHelpers is Helpers {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateFeeAmt(address token, uint amt) internal view returns (address feeCollector, uint feeAmt) {
|
function calculateFeeAmt(IERC20 token, uint amt) internal view returns (address feeCollector, uint feeAmt) {
|
||||||
InstaPoolFeeInterface feeContract = InstaPoolFeeInterface(getInstaPoolFeeAddr());
|
InstaPoolFeeInterface feeContract = InstaPoolFeeInterface(getInstaPoolFeeAddr());
|
||||||
uint fee = feeContract.fee();
|
uint fee = feeContract.fee();
|
||||||
feeCollector = feeContract.feeCollector();
|
feeCollector = feeContract.feeCollector();
|
||||||
|
@ -181,7 +181,7 @@ contract LiquidityHelpers is Helpers {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function calculateFeeAmtOrigin(address token, uint amt)
|
function calculateFeeAmtOrigin(IERC20 token, uint amt)
|
||||||
internal
|
internal
|
||||||
view
|
view
|
||||||
returns (
|
returns (
|
||||||
|
@ -223,8 +223,9 @@ contract LiquidityManage is LiquidityHelpers {
|
||||||
_amt = _amt == uint(-1) ? address(this).balance : _amt;
|
_amt = _amt == uint(-1) ? address(this).balance : _amt;
|
||||||
ethAmt = _amt;
|
ethAmt = _amt;
|
||||||
} else {
|
} else {
|
||||||
_amt = _amt == uint(-1) ? TokenInterface(token).balanceOf(address(this)) : _amt;
|
TokenInterface tokenContract = TokenInterface(token);
|
||||||
TokenInterface(token).approve(getLiquidityAddress(), _amt);
|
_amt = _amt == uint(-1) ? tokenContract.balanceOf(address(this)) : _amt;
|
||||||
|
tokenContract.approve(getLiquidityAddress(), _amt);
|
||||||
}
|
}
|
||||||
|
|
||||||
LiqudityInterface(getLiquidityAddress()).deposit.value(ethAmt)(token, _amt);
|
LiqudityInterface(getLiquidityAddress()).deposit.value(ethAmt)(token, _amt);
|
||||||
|
@ -316,7 +317,7 @@ contract LiquidityAccessHelper is EventHelpers {
|
||||||
function addFeeAmount(address token, uint amt, uint getId, uint setId) external payable {
|
function addFeeAmount(address token, uint amt, uint getId, uint setId) external payable {
|
||||||
uint _amt = getUint(getId, amt);
|
uint _amt = getUint(getId, amt);
|
||||||
require(_amt != 0, "amt-is-0");
|
require(_amt != 0, "amt-is-0");
|
||||||
uint totalFee = calculateTotalFeeAmt(token, _amt);
|
uint totalFee = calculateTotalFeeAmt(IERC20(token), _amt);
|
||||||
|
|
||||||
setUint(setId, totalFee);
|
setUint(setId, totalFee);
|
||||||
}
|
}
|
||||||
|
@ -354,16 +355,17 @@ contract LiquidityAccess is LiquidityAccessHelper {
|
||||||
function flashPayback(address token, uint getId, uint setId) external payable {
|
function flashPayback(address token, uint getId, uint setId) external payable {
|
||||||
LiqudityInterface liquidityContract = LiqudityInterface(getLiquidityAddress());
|
LiqudityInterface liquidityContract = LiqudityInterface(getLiquidityAddress());
|
||||||
uint _amt = liquidityContract.borrowedToken(token);
|
uint _amt = liquidityContract.borrowedToken(token);
|
||||||
|
IERC20 tokenContract = IERC20(token);
|
||||||
|
|
||||||
(address feeCollector, uint feeAmt) = calculateFeeAmt(token, _amt);
|
(address feeCollector, uint feeAmt) = calculateFeeAmt(tokenContract, _amt);
|
||||||
|
|
||||||
address[] memory _tknAddrs = new address[](1);
|
address[] memory _tknAddrs = new address[](1);
|
||||||
_tknAddrs[0] = token;
|
_tknAddrs[0] = token;
|
||||||
|
|
||||||
_transfer(payable(address(liquidityContract)), token, _amt);
|
_transfer(payable(address(liquidityContract)), tokenContract, _amt);
|
||||||
liquidityContract.returnLiquidity(_tknAddrs);
|
liquidityContract.returnLiquidity(_tknAddrs);
|
||||||
|
|
||||||
if (feeAmt > 0) _transfer(payable(feeCollector), token, feeAmt);
|
if (feeAmt > 0) _transfer(payable(feeCollector), tokenContract, feeAmt);
|
||||||
|
|
||||||
setUint(setId, _amt);
|
setUint(setId, _amt);
|
||||||
emitFlashPayback(token, _amt, feeAmt, getId, setId);
|
emitFlashPayback(token, _amt, feeAmt, getId, setId);
|
||||||
|
@ -380,18 +382,19 @@ contract LiquidityAccess is LiquidityAccessHelper {
|
||||||
require(origin != address(0), "origin-is-address(0)");
|
require(origin != address(0), "origin-is-address(0)");
|
||||||
LiqudityInterface liquidityContract = LiqudityInterface(getLiquidityAddress());
|
LiqudityInterface liquidityContract = LiqudityInterface(getLiquidityAddress());
|
||||||
uint _amt = liquidityContract.borrowedToken(token);
|
uint _amt = liquidityContract.borrowedToken(token);
|
||||||
|
IERC20 tokenContract = IERC20(token);
|
||||||
|
|
||||||
(address feeCollector, uint poolFeeAmt, uint originFeeAmt) = calculateFeeAmtOrigin(token, _amt);
|
(address feeCollector, uint poolFeeAmt, uint originFeeAmt) = calculateFeeAmtOrigin(tokenContract, _amt);
|
||||||
|
|
||||||
address[] memory _tknAddrs = new address[](1);
|
address[] memory _tknAddrs = new address[](1);
|
||||||
_tknAddrs[0] = token;
|
_tknAddrs[0] = token;
|
||||||
|
|
||||||
_transfer(payable(address(liquidityContract)), token, _amt);
|
_transfer(payable(address(liquidityContract)), tokenContract, _amt);
|
||||||
liquidityContract.returnLiquidity(_tknAddrs);
|
liquidityContract.returnLiquidity(_tknAddrs);
|
||||||
|
|
||||||
if (poolFeeAmt > 0) {
|
if (poolFeeAmt > 0) {
|
||||||
_transfer(payable(feeCollector), token, poolFeeAmt);
|
_transfer(payable(feeCollector), tokenContract, poolFeeAmt);
|
||||||
_transfer(payable(origin), token, originFeeAmt);
|
_transfer(payable(origin), tokenContract, originFeeAmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
setUint(setId, _amt);
|
setUint(setId, _amt);
|
||||||
|
@ -442,11 +445,12 @@ contract LiquidityAccessMulti is LiquidityAccess {
|
||||||
|
|
||||||
for (uint i = 0; i < _length; i++) {
|
for (uint i = 0; i < _length; i++) {
|
||||||
uint _amt = liquidityContract.borrowedToken(tokens[i]);
|
uint _amt = liquidityContract.borrowedToken(tokens[i]);
|
||||||
(address feeCollector, uint feeAmt) = calculateFeeAmt(tokens[i], _amt);
|
IERC20 tokenContract = IERC20(tokens[i]);
|
||||||
|
(address feeCollector, uint feeAmt) = calculateFeeAmt(tokenContract, _amt);
|
||||||
|
|
||||||
_transfer(payable(address(liquidityContract)), tokens[i], _amt);
|
_transfer(payable(address(liquidityContract)), tokenContract, _amt);
|
||||||
|
|
||||||
if (feeAmt > 0) _transfer(payable(feeCollector), tokens[i], feeAmt);
|
if (feeAmt > 0) _transfer(payable(feeCollector), tokenContract, feeAmt);
|
||||||
|
|
||||||
setUint(setId[i], _amt);
|
setUint(setId[i], _amt);
|
||||||
|
|
||||||
|
@ -469,13 +473,15 @@ contract LiquidityAccessMulti is LiquidityAccess {
|
||||||
|
|
||||||
for (uint i = 0; i < _length; i++) {
|
for (uint i = 0; i < _length; i++) {
|
||||||
uint _amt = liquidityContract.borrowedToken(tokens[i]);
|
uint _amt = liquidityContract.borrowedToken(tokens[i]);
|
||||||
(address feeCollector, uint poolFeeAmt, uint originFeeAmt) = calculateFeeAmtOrigin(tokens[i], _amt);
|
IERC20 tokenContract = IERC20(tokens[i]);
|
||||||
|
|
||||||
_transfer(payable(address(liquidityContract)), tokens[i], _amt);
|
(address feeCollector, uint poolFeeAmt, uint originFeeAmt) = calculateFeeAmtOrigin(tokenContract, _amt);
|
||||||
|
|
||||||
|
_transfer(payable(address(liquidityContract)), tokenContract, _amt);
|
||||||
|
|
||||||
if (poolFeeAmt > 0) {
|
if (poolFeeAmt > 0) {
|
||||||
_transfer(payable(feeCollector), tokens[i], poolFeeAmt);
|
_transfer(payable(feeCollector), tokenContract, poolFeeAmt);
|
||||||
_transfer(payable(origin), tokens[i], originFeeAmt);
|
_transfer(payable(origin), tokenContract, originFeeAmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
setUint(setId[i], _amt);
|
setUint(setId[i], _amt);
|
||||||
|
@ -483,7 +489,6 @@ contract LiquidityAccessMulti is LiquidityAccess {
|
||||||
emitFlashPayback(tokens[i], _amt, poolFeeAmt, getId[i], setId[i]);
|
emitFlashPayback(tokens[i], _amt, poolFeeAmt, getId[i], setId[i]);
|
||||||
emitOriginFeeCollected(origin, tokens[i], _amt, originFeeAmt);
|
emitOriginFeeCollected(origin, tokens[i], _amt, originFeeAmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
liquidityContract.returnLiquidity(tokens);
|
liquidityContract.returnLiquidity(tokens);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user