mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
chore: clean up
This commit is contained in:
parent
cc7f53860c
commit
9c83fd0924
|
@ -3,6 +3,9 @@ pragma solidity ^0.7.6;
|
|||
import { DSMath } from "../../common/math.sol";
|
||||
import { Basic } from "../../common/basic.sol";
|
||||
|
||||
import { TokenInterface } from "../../common/interfaces.sol";
|
||||
import { ISavingsContractV2, IBoostedSavingsVault } from "./interface.sol";
|
||||
|
||||
abstract contract Helpers is DSMath, Basic {
|
||||
address internal constant mUsdToken =
|
||||
0xe2f2a5C287993345a840Db3B0845fbC70f5935a5;
|
||||
|
@ -10,4 +13,87 @@ abstract contract Helpers is DSMath, Basic {
|
|||
0x30647a72Dc82d7Fbb1123EA74716aB8A317Eac19;
|
||||
address internal constant imUsdVault =
|
||||
0x78BefCa7de27d07DC6e71da295Cc2946681A6c7B;
|
||||
|
||||
/***************************************
|
||||
Internal
|
||||
****************************************/
|
||||
|
||||
/**
|
||||
* @dev Deposit to Save from any asset
|
||||
* @notice Called internally from deposit functions
|
||||
* @param _token Address of token to deposit
|
||||
* @param _amount Amount of token to deposit
|
||||
* @param _path Path to mint mUSD (only needed for Feeder Pool)
|
||||
* @return _eventName Event name
|
||||
* @return _eventParam Event parameters
|
||||
*/
|
||||
|
||||
function _deposit(
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
address _path
|
||||
) internal returns (string memory _eventName, bytes memory _eventParam) {
|
||||
// 1. Deposit mUSD to Save
|
||||
approve(TokenInterface(mUsdToken), imUsdToken, _amount);
|
||||
uint256 credits = ISavingsContractV2(imUsdToken).depositSavings(
|
||||
_amount
|
||||
);
|
||||
|
||||
// 2. Stake imUSD to Vault
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, credits);
|
||||
IBoostedSavingsVault(imUsdVault).stake(credits);
|
||||
|
||||
// 3. Log Events
|
||||
_eventName = "LogDeposit(address,uint256,address)";
|
||||
_eventParam = abi.encode(_token, _amount, _path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Withdraws from Save
|
||||
* @notice Withdraws token supported by mStable from Save
|
||||
* @param _credits Credits to withdraw
|
||||
* @return amountWithdrawn Amount withdrawn in mUSD
|
||||
*/
|
||||
|
||||
function _withdraw(uint256 _credits)
|
||||
internal
|
||||
returns (uint256 amountWithdrawn)
|
||||
{
|
||||
// 1. Withdraw from Vault
|
||||
// approve(TokenInterface(imUsdVault), imUsdToken, _credits);
|
||||
IBoostedSavingsVault(imUsdVault).withdraw(_credits);
|
||||
|
||||
// 2. Withdraw from Save
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, _credits);
|
||||
amountWithdrawn = ISavingsContractV2(imUsdToken).redeemCredits(
|
||||
_credits
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the reward tokens
|
||||
* @notice Gets the reward tokens from the vault contract
|
||||
* @return rewardToken Address of reward token
|
||||
*/
|
||||
|
||||
function _getRewardTokens() internal view returns (address rewardToken) {
|
||||
rewardToken = address(
|
||||
IBoostedSavingsVault(imUsdVault).getRewardToken()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the internal balances of the rewardToken and platformToken
|
||||
* @notice Gets current balances of rewardToken and platformToken, used for calculating rewards accrued
|
||||
* @param _rewardToken Address of reward token
|
||||
* @return a Amount of reward token
|
||||
*/
|
||||
|
||||
function _getRewardInternalBal(address _rewardToken)
|
||||
internal
|
||||
view
|
||||
returns (uint256 a)
|
||||
{
|
||||
a = TokenInterface(_rewardToken).balanceOf(address(this));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,11 +7,11 @@ pragma solidity ^0.7.6;
|
|||
|
||||
import { Helpers } from "./helpers.sol";
|
||||
import { Events } from "./events.sol";
|
||||
import { IMasset, ISavingsContractV2, IBoostedSavingsVault, IFeederPool } from "./interface.sol";
|
||||
|
||||
import { TokenInterface } from "../../common/interfaces.sol";
|
||||
import { IMasset, IBoostedSavingsVault, IFeederPool } from "./interface.sol";
|
||||
|
||||
abstract contract mStableResolver is Events, Helpers {
|
||||
//
|
||||
/***************************************
|
||||
CORE
|
||||
****************************************/
|
||||
|
@ -31,7 +31,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
uint256 _amount,
|
||||
uint256 _minOut
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
uint256 mintedAmount = _amount;
|
||||
address path;
|
||||
|
||||
|
@ -71,7 +70,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
require(_path != address(0), "Path must be set");
|
||||
require(
|
||||
IMasset(mUsdToken).bAssetIndexes(_token) == 0,
|
||||
|
@ -140,7 +138,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
require(_path != address(0), "Path must be set");
|
||||
require(
|
||||
IMasset(mUsdToken).bAssetIndexes(_token) == 0,
|
||||
|
@ -203,7 +200,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
uint256 _amount,
|
||||
uint256 _minOut
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
approve(TokenInterface(_input), mUsdToken, _amount);
|
||||
uint256 amountSwapped;
|
||||
|
||||
|
@ -258,7 +254,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
uint256 amountSwapped;
|
||||
|
||||
approve(TokenInterface(_input), _path, _amount);
|
||||
|
@ -276,90 +271,6 @@ abstract contract mStableResolver is Events, Helpers {
|
|||
_eventName = "LogSwap(address,address,uint256,uint256)";
|
||||
_eventParam = abi.encode(_input, _output, _amount, amountSwapped);
|
||||
}
|
||||
|
||||
/***************************************
|
||||
Internal
|
||||
****************************************/
|
||||
|
||||
/**
|
||||
* @dev Deposit to Save from any asset
|
||||
* @notice Called internally from deposit functions
|
||||
* @param _token Address of token to deposit
|
||||
* @param _amount Amount of token to deposit
|
||||
* @param _path Path to mint mUSD (only needed for Feeder Pool)
|
||||
* @return _eventName Event name
|
||||
* @return _eventParam Event parameters
|
||||
*/
|
||||
|
||||
function _deposit(
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
address _path
|
||||
) internal returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
// 1. Deposit mUSD to Save
|
||||
approve(TokenInterface(mUsdToken), imUsdToken, _amount);
|
||||
uint256 credits = ISavingsContractV2(imUsdToken).depositSavings(
|
||||
_amount
|
||||
);
|
||||
|
||||
// 2. Stake imUSD to Vault
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, credits);
|
||||
IBoostedSavingsVault(imUsdVault).stake(credits);
|
||||
|
||||
// 3. Log Events
|
||||
_eventName = "LogDeposit(address,uint256,address)";
|
||||
_eventParam = abi.encode(_token, _amount, _path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Withdraws from Save
|
||||
* @notice Withdraws token supported by mStable from Save
|
||||
* @param _credits Credits to withdraw
|
||||
* @return amountWithdrawn Amount withdrawn in mUSD
|
||||
*/
|
||||
|
||||
function _withdraw(uint256 _credits)
|
||||
internal
|
||||
returns (uint256 amountWithdrawn)
|
||||
{
|
||||
// 1. Withdraw from Vault
|
||||
// approve(TokenInterface(imUsdVault), imUsdToken, _credits);
|
||||
IBoostedSavingsVault(imUsdVault).withdraw(_credits);
|
||||
|
||||
// 2. Withdraw from Save
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, _credits);
|
||||
amountWithdrawn = ISavingsContractV2(imUsdToken).redeemCredits(
|
||||
_credits
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the reward tokens
|
||||
* @notice Gets the reward tokens from the vault contract
|
||||
* @return rewardToken Address of reward token
|
||||
*/
|
||||
|
||||
function _getRewardTokens() internal view returns (address rewardToken) {
|
||||
rewardToken = address(
|
||||
IBoostedSavingsVault(imUsdVault).getRewardToken()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the internal balances of the rewardToken and platformToken
|
||||
* @notice Gets current balances of rewardToken and platformToken, used for calculating rewards accrued
|
||||
* @param _rewardToken Address of reward token
|
||||
* @return a Amount of reward token
|
||||
*/
|
||||
|
||||
function _getRewardInternalBal(address _rewardToken)
|
||||
internal
|
||||
view
|
||||
returns (uint256 a)
|
||||
{
|
||||
a = TokenInterface(_rewardToken).balanceOf(address(this));
|
||||
}
|
||||
}
|
||||
|
||||
contract ConnectV2mStable is mStableResolver {
|
||||
|
|
|
@ -3,25 +3,104 @@ pragma solidity ^0.7.6;
|
|||
import { DSMath } from "../../common/math.sol";
|
||||
import { Basic } from "../../common/basic.sol";
|
||||
|
||||
// import { SaveWrapper } from "./interface.sol";
|
||||
|
||||
// interfaces here
|
||||
// import { AaveLendingPoolProviderInterface, AaveDataProviderInterface } from "./interface.sol";
|
||||
import { ISavingsContractV2, IStakingRewardsWithPlatformToken } from "./interface.sol";
|
||||
import { TokenInterface } from "../../common/interfaces.sol";
|
||||
|
||||
abstract contract Helpers is DSMath, Basic {
|
||||
// Helpers go here
|
||||
/*
|
||||
* @dev SaveWrapper address
|
||||
*/
|
||||
// SaveWrapper internal constant saveWrapper =
|
||||
// SaveWrapper(0x299081f52738A4204C3D58264ff44f6F333C6c88);
|
||||
|
||||
// Addresses that will be important for the contract
|
||||
|
||||
address internal constant mUsdToken =
|
||||
0xE840B73E5287865EEc17d250bFb1536704B43B21;
|
||||
address internal constant imUsdToken =
|
||||
0x5290Ad3d83476CA6A2b178Cd9727eE1EF72432af;
|
||||
address internal constant imUsdVault =
|
||||
0x32aBa856Dc5fFd5A56Bcd182b13380e5C855aa29;
|
||||
|
||||
/***************************************
|
||||
Internal
|
||||
****************************************/
|
||||
|
||||
/**
|
||||
* @dev Deposit to Save from any asset
|
||||
* @notice Called internally from deposit functions
|
||||
* @param _token Address of token to deposit
|
||||
* @param _amount Amount of token to deposit
|
||||
* @param _path Path to mint mUSD (only needed for Feeder Pool)
|
||||
* @return _eventName Event name
|
||||
* @return _eventParam Event parameters
|
||||
*/
|
||||
|
||||
function _deposit(
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
address _path
|
||||
) internal returns (string memory _eventName, bytes memory _eventParam) {
|
||||
// 1. Deposit mUSD to Save
|
||||
approve(TokenInterface(mUsdToken), imUsdToken, _amount);
|
||||
uint256 credits = ISavingsContractV2(imUsdToken).depositSavings(
|
||||
_amount
|
||||
);
|
||||
|
||||
// 2. Stake imUSD to Vault
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, credits);
|
||||
IStakingRewardsWithPlatformToken(imUsdVault).stake(credits);
|
||||
|
||||
// 3. Log Events
|
||||
_eventName = "LogDeposit(address,uint256,address)";
|
||||
_eventParam = abi.encode(_token, _amount, _path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Withdraws from Save
|
||||
* @notice Withdraws token supported by mStable from Save
|
||||
* @param _credits Credits to withdraw
|
||||
* @return amountWithdrawn Amount withdrawn in mUSD
|
||||
*/
|
||||
|
||||
function _withdraw(uint256 _credits)
|
||||
internal
|
||||
returns (uint256 amountWithdrawn)
|
||||
{
|
||||
// 1. Withdraw from Vault
|
||||
IStakingRewardsWithPlatformToken(imUsdVault).withdraw(_credits);
|
||||
|
||||
// 2. Withdraw from Save
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, _credits);
|
||||
amountWithdrawn = ISavingsContractV2(imUsdToken).redeemCredits(
|
||||
_credits
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the reward tokens
|
||||
* @notice Gets the reward tokens from the vault contract
|
||||
* @return rewardToken Address of reward token
|
||||
* @return platformToken Address of platform token
|
||||
*/
|
||||
|
||||
function _getRewardTokens()
|
||||
internal
|
||||
returns (address rewardToken, address platformToken)
|
||||
{
|
||||
rewardToken = IStakingRewardsWithPlatformToken(imUsdVault)
|
||||
.getRewardToken();
|
||||
platformToken = IStakingRewardsWithPlatformToken(imUsdVault)
|
||||
.getPlatformToken();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the internal balances of the rewardToken and platformToken
|
||||
* @notice Gets current balances of rewardToken and platformToken, used for calculating rewards accrued
|
||||
* @param _rewardToken Address of reward token
|
||||
* @param _platformToken Address of platform token
|
||||
* @return a Amount of reward token
|
||||
* @return b Amount of platform token
|
||||
*/
|
||||
|
||||
function _getRewardInternalBal(address _rewardToken, address _platformToken)
|
||||
internal
|
||||
view
|
||||
returns (uint256 a, uint256 b)
|
||||
{
|
||||
a = TokenInterface(_rewardToken).balanceOf(address(this));
|
||||
b = TokenInterface(_platformToken).balanceOf(address(this));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,11 +7,10 @@ pragma solidity ^0.7.6;
|
|||
|
||||
import { Helpers } from "./helpers.sol";
|
||||
import { Events } from "./events.sol";
|
||||
import { IMasset, ISavingsContractV2, IStakingRewardsWithPlatformToken, IFeederPool } from "./interface.sol";
|
||||
import { IMasset, IStakingRewardsWithPlatformToken, IFeederPool } from "./interface.sol";
|
||||
import { TokenInterface } from "../../common/interfaces.sol";
|
||||
|
||||
abstract contract PmStableResolver is Events, Helpers {
|
||||
//
|
||||
/***************************************
|
||||
CORE
|
||||
****************************************/
|
||||
|
@ -31,7 +30,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
uint256 _amount,
|
||||
uint256 _minOut
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
uint256 mintedAmount = _amount;
|
||||
address path;
|
||||
|
||||
|
@ -71,7 +69,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
require(_path != address(0), "Path must be set");
|
||||
require(
|
||||
IMasset(mUsdToken).bAssetIndexes(_token) == 0,
|
||||
|
@ -140,7 +137,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
require(_path != address(0), "Path must be set");
|
||||
require(
|
||||
IMasset(mUsdToken).bAssetIndexes(_token) == 0,
|
||||
|
@ -219,7 +215,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
uint256 _amount,
|
||||
uint256 _minOut
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
approve(TokenInterface(_input), mUsdToken, _amount);
|
||||
uint256 amountSwapped;
|
||||
|
||||
|
@ -274,7 +269,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
uint256 _minOut,
|
||||
address _path
|
||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
uint256 amountSwapped;
|
||||
|
||||
approve(TokenInterface(_input), _path, _amount);
|
||||
|
@ -292,97 +286,6 @@ abstract contract PmStableResolver is Events, Helpers {
|
|||
_eventName = "LogSwap(address,address,uint256,uint256)";
|
||||
_eventParam = abi.encode(_input, _output, _amount, amountSwapped);
|
||||
}
|
||||
|
||||
/***************************************
|
||||
Internal
|
||||
****************************************/
|
||||
|
||||
/**
|
||||
* @dev Deposit to Save from any asset
|
||||
* @notice Called internally from deposit functions
|
||||
* @param _token Address of token to deposit
|
||||
* @param _amount Amount of token to deposit
|
||||
* @param _path Path to mint mUSD (only needed for Feeder Pool)
|
||||
* @return _eventName Event name
|
||||
* @return _eventParam Event parameters
|
||||
*/
|
||||
|
||||
function _deposit(
|
||||
address _token,
|
||||
uint256 _amount,
|
||||
address _path
|
||||
) internal returns (string memory _eventName, bytes memory _eventParam) {
|
||||
//
|
||||
// 1. Deposit mUSD to Save
|
||||
approve(TokenInterface(mUsdToken), imUsdToken, _amount);
|
||||
uint256 credits = ISavingsContractV2(imUsdToken).depositSavings(
|
||||
_amount
|
||||
);
|
||||
|
||||
// 2. Stake imUSD to Vault
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, credits);
|
||||
IStakingRewardsWithPlatformToken(imUsdVault).stake(credits);
|
||||
|
||||
// 3. Log Events
|
||||
_eventName = "LogDeposit(address,uint256,address)";
|
||||
_eventParam = abi.encode(_token, _amount, _path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Withdraws from Save
|
||||
* @notice Withdraws token supported by mStable from Save
|
||||
* @param _credits Credits to withdraw
|
||||
* @return amountWithdrawn Amount withdrawn in mUSD
|
||||
*/
|
||||
|
||||
function _withdraw(uint256 _credits)
|
||||
internal
|
||||
returns (uint256 amountWithdrawn)
|
||||
{
|
||||
// 1. Withdraw from Vault
|
||||
IStakingRewardsWithPlatformToken(imUsdVault).withdraw(_credits);
|
||||
|
||||
// 2. Withdraw from Save
|
||||
approve(TokenInterface(imUsdToken), imUsdVault, _credits);
|
||||
amountWithdrawn = ISavingsContractV2(imUsdToken).redeemCredits(
|
||||
_credits
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the reward tokens
|
||||
* @notice Gets the reward tokens from the vault contract
|
||||
* @return rewardToken Address of reward token
|
||||
* @return platformToken Address of platform token
|
||||
*/
|
||||
|
||||
function _getRewardTokens()
|
||||
internal
|
||||
returns (address rewardToken, address platformToken)
|
||||
{
|
||||
rewardToken = IStakingRewardsWithPlatformToken(imUsdVault)
|
||||
.getRewardToken();
|
||||
platformToken = IStakingRewardsWithPlatformToken(imUsdVault)
|
||||
.getPlatformToken();
|
||||
}
|
||||
|
||||
/**
|
||||
* @dev Returns the internal balances of the rewardToken and platformToken
|
||||
* @notice Gets current balances of rewardToken and platformToken, used for calculating rewards accrued
|
||||
* @param _rewardToken Address of reward token
|
||||
* @param _platformToken Address of platform token
|
||||
* @return a Amount of reward token
|
||||
* @return b Amount of platform token
|
||||
*/
|
||||
|
||||
function _getRewardInternalBal(address _rewardToken, address _platformToken)
|
||||
internal
|
||||
view
|
||||
returns (uint256 a, uint256 b)
|
||||
{
|
||||
a = TokenInterface(_rewardToken).balanceOf(address(this));
|
||||
b = TokenInterface(_platformToken).balanceOf(address(this));
|
||||
}
|
||||
}
|
||||
|
||||
contract ConnectV2PmStable is PmStableResolver {
|
||||
|
|
|
@ -3,7 +3,7 @@ import { IERC20Minimal__factory } from "../../../typechain";
|
|||
import { BigNumber as BN } from "ethers";
|
||||
|
||||
export const DEAD_ADDRESS = "0x0000000000000000000000000000000000000001";
|
||||
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
||||
export const ZERO_ADDRESS = ethers.constants.AddressZero;
|
||||
|
||||
export const DEFAULT_DECIMALS = 18;
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ import { IERC20Minimal__factory } from "../../../typechain";
|
|||
import { BigNumber as BN } from "ethers";
|
||||
|
||||
export const DEAD_ADDRESS = "0x0000000000000000000000000000000000000001";
|
||||
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
||||
export const ZERO_ADDRESS = ethers.constants.AddressZero;
|
||||
|
||||
export const DEFAULT_DECIMALS = 18;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user