update get controller function

This commit is contained in:
q1q0 2023-09-07 16:29:30 -04:00
parent 4980c0c9a0
commit 12d86342ba
3 changed files with 34 additions and 22 deletions

View File

@ -17,7 +17,7 @@ abstract contract Helpers is DSMath, Basic {
/**
* @dev Get controller address by given collateral asset
*/
function getController(address collateral) internal view returns(IController controller) {
controller = IController(ctrFactory.get_controller(collateral, 0));
function getController(address collateral, uint256 i) internal view returns(IController controller) {
controller = IController(ctrFactory.get_controller(collateral, i));
}
}

View File

@ -15,18 +15,20 @@ abstract contract MakerResolver is Helpers, Events {
/**
* @dev Create loan
* @param collateral collateral token address
* @param version controller version
* @param amt Amount of collateral to use
* @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)
*/
function createLoan(
address collateral,
address collateral,
uint256 version,
uint256 amt,
uint256 debt,
uint256 N
) external returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
uint256 _amt = amt;
uint256 ethAmt;
@ -50,18 +52,20 @@ abstract contract MakerResolver is Helpers, Events {
* @dev Add collateral
* @notice Add extra collateral to avoid bad liqidations
* @param collateral collateral asset address
* @param version controller version
* @param amt Amount of collateral to add
* @param getId ID to retrieve amt.
* @param setId ID stores the collateral amount of tokens added.
*/
function addCollateral(
address collateral,
uint256 version,
uint256 amt,
uint256 getId,
uint256 setId
) external returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
uint _amt = getUint(getId, amt);
uint ethAmt;
@ -85,18 +89,20 @@ abstract contract MakerResolver is Helpers, Events {
* @dev Remove ETH/ERC20_Token Collateral.
* @notice Remove some collateral without repaying the debt
* @param collateral collateral asset address
* @param version controller version
* @param amt Amount of collateral to add
* @param getId ID to retrieve amt.
* @param setId ID stores the amount of tokens deposited.
*/
function removeCollateral(
address collateral,
uint256 version,
uint256 amt,
uint256 getId,
uint256 setId
) external returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
uint _amt = getUint(getId, amt);
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)
* @param collateral collateral token address
* @param version controller version
* @param amt Amount of collateral to add
* @param debt Amount of stablecoin debt to take
*/
function borrowMore(
address collateral,
uint256 version,
uint256 amt,
uint256 debt
) external returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
uint _amt = amt;
uint ethAmt;
@ -145,18 +153,20 @@ abstract contract MakerResolver is Helpers, Events {
* @dev Borrow DAI.
* @notice Borrow DAI using a MakerDAO vault
* @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 getId ID to retrieve amt.
* @param setId ID stores the amount of DAI borrowed.
*/
function repay(
address collateral,
uint256 version,
uint256 amt,
uint256 getId,
uint256 setId
) external payable returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
uint _amt = amt;
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
* @param collateral collateral token address
* @param version controller version
* @param min_x Minimal amount of stablecoin to receive (to avoid liquidators being sandwiched)
*/
function liquidate(
address collateral,
uint256 version,
uint256 min_x
) external payable returns (string memory _eventName, bytes memory _eventParam) {
address _collateral = collateral == ethAddr ? wethAddr : collateral;
IController controller = getController(_collateral);
IController controller = getController(_collateral, version);
controller.liquidate(address(this), min_x, collateral == ethAddr);

View File

@ -174,7 +174,7 @@ describe("CRV USD", function () {
{
connector: connectorName,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
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,
method: "borrowMore",
args: [tokens.eth.address, '0', dsaMaxValue]
args: [tokens.eth.address, "0", '0', dsaMaxValue]
}
];