mirror of
https://github.com/Instadapp/dsa-connectors.git
synced 2024-07-29 22:37:00 +00:00
update get controller function
This commit is contained in:
parent
4980c0c9a0
commit
12d86342ba
|
@ -17,7 +17,7 @@ abstract contract Helpers is DSMath, Basic {
|
||||||
/**
|
/**
|
||||||
* @dev Get controller address by given collateral asset
|
* @dev Get controller address by given collateral asset
|
||||||
*/
|
*/
|
||||||
function getController(address collateral) internal view returns(IController controller) {
|
function getController(address collateral, uint256 i) internal view returns(IController controller) {
|
||||||
controller = IController(ctrFactory.get_controller(collateral, 0));
|
controller = IController(ctrFactory.get_controller(collateral, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -15,18 +15,20 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
/**
|
/**
|
||||||
* @dev Create loan
|
* @dev Create loan
|
||||||
* @param collateral collateral token address
|
* @param collateral collateral token address
|
||||||
|
* @param version controller version
|
||||||
* @param amt Amount of collateral to use
|
* @param amt Amount of collateral to use
|
||||||
* @param debt Stablecoin debt to take
|
* @param debt Stablecoin debt to take
|
||||||
* @param N Number of bands to deposit into (to do autoliquidation-deliquidation), can be from MIN_TICKS(4) to MAX_TICKS(50)
|
* @param N Number of bands to deposit into (to do autoliquidation-deliquidation), can be from MIN_TICKS(4) to MAX_TICKS(50)
|
||||||
*/
|
*/
|
||||||
function createLoan(
|
function createLoan(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 amt,
|
uint256 amt,
|
||||||
uint256 debt,
|
uint256 debt,
|
||||||
uint256 N
|
uint256 N
|
||||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
uint256 _amt = amt;
|
uint256 _amt = amt;
|
||||||
|
|
||||||
uint256 ethAmt;
|
uint256 ethAmt;
|
||||||
|
@ -50,18 +52,20 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
* @dev Add collateral
|
* @dev Add collateral
|
||||||
* @notice Add extra collateral to avoid bad liqidations
|
* @notice Add extra collateral to avoid bad liqidations
|
||||||
* @param collateral collateral asset address
|
* @param collateral collateral asset address
|
||||||
|
* @param version controller version
|
||||||
* @param amt Amount of collateral to add
|
* @param amt Amount of collateral to add
|
||||||
* @param getId ID to retrieve amt.
|
* @param getId ID to retrieve amt.
|
||||||
* @param setId ID stores the collateral amount of tokens added.
|
* @param setId ID stores the collateral amount of tokens added.
|
||||||
*/
|
*/
|
||||||
function addCollateral(
|
function addCollateral(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 amt,
|
uint256 amt,
|
||||||
uint256 getId,
|
uint256 getId,
|
||||||
uint256 setId
|
uint256 setId
|
||||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
uint _amt = getUint(getId, amt);
|
uint _amt = getUint(getId, amt);
|
||||||
|
|
||||||
uint ethAmt;
|
uint ethAmt;
|
||||||
|
@ -85,18 +89,20 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
* @dev Remove ETH/ERC20_Token Collateral.
|
* @dev Remove ETH/ERC20_Token Collateral.
|
||||||
* @notice Remove some collateral without repaying the debt
|
* @notice Remove some collateral without repaying the debt
|
||||||
* @param collateral collateral asset address
|
* @param collateral collateral asset address
|
||||||
|
* @param version controller version
|
||||||
* @param amt Amount of collateral to add
|
* @param amt Amount of collateral to add
|
||||||
* @param getId ID to retrieve amt.
|
* @param getId ID to retrieve amt.
|
||||||
* @param setId ID stores the amount of tokens deposited.
|
* @param setId ID stores the amount of tokens deposited.
|
||||||
*/
|
*/
|
||||||
function removeCollateral(
|
function removeCollateral(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 amt,
|
uint256 amt,
|
||||||
uint256 getId,
|
uint256 getId,
|
||||||
uint256 setId
|
uint256 setId
|
||||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
uint _amt = getUint(getId, amt);
|
uint _amt = getUint(getId, amt);
|
||||||
|
|
||||||
controller.remove_collateral(_amt, collateral == ethAddr);
|
controller.remove_collateral(_amt, collateral == ethAddr);
|
||||||
|
@ -110,16 +116,18 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
/**
|
/**
|
||||||
* @dev Borrow more stablecoins while adding more collateral (not necessary)
|
* @dev Borrow more stablecoins while adding more collateral (not necessary)
|
||||||
* @param collateral collateral token address
|
* @param collateral collateral token address
|
||||||
|
* @param version controller version
|
||||||
* @param amt Amount of collateral to add
|
* @param amt Amount of collateral to add
|
||||||
* @param debt Amount of stablecoin debt to take
|
* @param debt Amount of stablecoin debt to take
|
||||||
*/
|
*/
|
||||||
function borrowMore(
|
function borrowMore(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 amt,
|
uint256 amt,
|
||||||
uint256 debt
|
uint256 debt
|
||||||
) external returns (string memory _eventName, bytes memory _eventParam) {
|
) external returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
uint _amt = amt;
|
uint _amt = amt;
|
||||||
|
|
||||||
uint ethAmt;
|
uint ethAmt;
|
||||||
|
@ -145,18 +153,20 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
* @dev Borrow DAI.
|
* @dev Borrow DAI.
|
||||||
* @notice Borrow DAI using a MakerDAO vault
|
* @notice Borrow DAI using a MakerDAO vault
|
||||||
* @param collateral collateral token address
|
* @param collateral collateral token address
|
||||||
|
* @param version controller version
|
||||||
* @param amt The amount of debt to repay. If higher than the current debt - will do full repayment
|
* @param amt The amount of debt to repay. If higher than the current debt - will do full repayment
|
||||||
* @param getId ID to retrieve amt.
|
* @param getId ID to retrieve amt.
|
||||||
* @param setId ID stores the amount of DAI borrowed.
|
* @param setId ID stores the amount of DAI borrowed.
|
||||||
*/
|
*/
|
||||||
function repay(
|
function repay(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 amt,
|
uint256 amt,
|
||||||
uint256 getId,
|
uint256 getId,
|
||||||
uint256 setId
|
uint256 setId
|
||||||
) external payable returns (string memory _eventName, bytes memory _eventParam) {
|
) external payable returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
uint _amt = amt;
|
uint _amt = amt;
|
||||||
|
|
||||||
TokenInterface stableCoin = TokenInterface(CRV_USD);
|
TokenInterface stableCoin = TokenInterface(CRV_USD);
|
||||||
|
@ -173,14 +183,16 @@ abstract contract MakerResolver is Helpers, Events {
|
||||||
/**
|
/**
|
||||||
* @dev Peform a bad liquidation (or self-liquidation) of user if health is not good
|
* @dev Peform a bad liquidation (or self-liquidation) of user if health is not good
|
||||||
* @param collateral collateral token address
|
* @param collateral collateral token address
|
||||||
|
* @param version controller version
|
||||||
* @param min_x Minimal amount of stablecoin to receive (to avoid liquidators being sandwiched)
|
* @param min_x Minimal amount of stablecoin to receive (to avoid liquidators being sandwiched)
|
||||||
*/
|
*/
|
||||||
function liquidate(
|
function liquidate(
|
||||||
address collateral,
|
address collateral,
|
||||||
|
uint256 version,
|
||||||
uint256 min_x
|
uint256 min_x
|
||||||
) external payable returns (string memory _eventName, bytes memory _eventParam) {
|
) external payable returns (string memory _eventName, bytes memory _eventParam) {
|
||||||
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
address _collateral = collateral == ethAddr ? wethAddr : collateral;
|
||||||
IController controller = getController(_collateral);
|
IController controller = getController(_collateral, version);
|
||||||
|
|
||||||
controller.liquidate(address(this), min_x, collateral == ethAddr);
|
controller.liquidate(address(this), min_x, collateral == ethAddr);
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "createLoan",
|
method: "createLoan",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('1').toString(), ethers.utils.parseEther('1000'), 10]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('1').toString(), ethers.utils.parseEther('1000'), 10]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "addCollateral",
|
method: "addCollateral",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('1').toString(), 0, 0]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('1').toString(), 0, 0]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "removeCollateral",
|
method: "removeCollateral",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('1').toString(), 0, 0]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('1').toString(), 0, 0]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "borrowMore",
|
method: "borrowMore",
|
||||||
args: [tokens.sfrxeth.address, '0', ethers.utils.parseEther('50')]
|
args: [tokens.sfrxeth.address, "0", '0', ethers.utils.parseEther('50')]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "borrowMore",
|
method: "borrowMore",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('2'), dsaMaxValue]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('2'), dsaMaxValue]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -263,7 +263,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "createLoan",
|
method: "createLoan",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('1').toString(), dsaMaxValue, 10]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('1').toString(), dsaMaxValue, 10]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "createLoan",
|
method: "createLoan",
|
||||||
args: [tokens.sfrxeth.address, ethers.utils.parseEther('1').toString(), dsaMaxValue, 10]
|
args: [tokens.sfrxeth.address, "0", ethers.utils.parseEther('1').toString(), dsaMaxValue, 10]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -294,7 +294,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "createLoan",
|
method: "createLoan",
|
||||||
args: [tokens.sfrxeth.address, dsaMaxValue, dsaMaxValue, 10]
|
args: [tokens.sfrxeth.address, "0", dsaMaxValue, dsaMaxValue, 10]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -316,7 +316,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "createLoan",
|
method: "createLoan",
|
||||||
args: [tokens.eth.address, ethers.utils.parseEther('2').toString(), dsaMaxValue, 10]
|
args: [tokens.eth.address, "0", ethers.utils.parseEther('2').toString(), dsaMaxValue, 10]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "addCollateral",
|
method: "addCollateral",
|
||||||
args: [tokens.eth.address, ethers.utils.parseEther('3').toString(), 0, 0]
|
args: [tokens.eth.address, "0", ethers.utils.parseEther('3').toString(), 0, 0]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -353,7 +353,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "removeCollateral",
|
method: "removeCollateral",
|
||||||
args: [tokens.eth.address, ethers.utils.parseEther('1').toString(), 0, 0]
|
args: [tokens.eth.address, "0", ethers.utils.parseEther('1').toString(), 0, 0]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -371,7 +371,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "borrowMore",
|
method: "borrowMore",
|
||||||
args: [tokens.eth.address, '0', ethers.utils.parseEther('10')]
|
args: [tokens.eth.address, "0", '0', ethers.utils.parseEther('10')]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -389,7 +389,7 @@ describe("CRV USD", function () {
|
||||||
{
|
{
|
||||||
connector: connectorName,
|
connector: connectorName,
|
||||||
method: "borrowMore",
|
method: "borrowMore",
|
||||||
args: [tokens.eth.address, '0', dsaMaxValue]
|
args: [tokens.eth.address, "0", '0', dsaMaxValue]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user