mirror of
https://github.com/Instadapp/InstaContract.git
synced 2024-07-29 22:47:45 +00:00
Fixed an error associated with create CDP & code cleanup.
This commit is contained in:
parent
db1ba767ad
commit
8d4b5c6f73
|
@ -90,9 +90,7 @@ contract Trade is Registry {
|
||||||
{
|
{
|
||||||
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
||||||
return kyberFunctions.getExpectedRate(
|
return kyberFunctions.getExpectedRate(
|
||||||
src,
|
src, dest, srcAmt
|
||||||
dest,
|
|
||||||
srcAmt
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,10 +113,7 @@ contract Trade is Registry {
|
||||||
|
|
||||||
address eth = getAddress("eth");
|
address eth = getAddress("eth");
|
||||||
uint ethQty = getToken(
|
uint ethQty = getToken(
|
||||||
msg.sender,
|
msg.sender, src, srcAmt, eth
|
||||||
src,
|
|
||||||
srcAmt,
|
|
||||||
eth
|
|
||||||
);
|
);
|
||||||
|
|
||||||
// Interacting with Kyber Proxy Contract
|
// Interacting with Kyber Proxy Contract
|
||||||
|
@ -145,13 +140,7 @@ contract Trade is Registry {
|
||||||
}
|
}
|
||||||
|
|
||||||
emit KyberTrade(
|
emit KyberTrade(
|
||||||
src,
|
src, srcAmt, dest, destAmt, msg.sender, minConversionRate, getAddress("admin")
|
||||||
srcAmt,
|
|
||||||
dest,
|
|
||||||
destAmt,
|
|
||||||
msg.sender,
|
|
||||||
minConversionRate,
|
|
||||||
getAddress("admin")
|
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,7 +103,7 @@ contract GlobalVar is Registry {
|
||||||
|
|
||||||
contract IssueLoan is GlobalVar {
|
contract IssueLoan is GlobalVar {
|
||||||
|
|
||||||
event LockedETH(address borrower, uint lockETH, uint lockPETH);
|
event LockedETH(address borrower, uint lockETH, uint lockPETH, address lockedBy);
|
||||||
event LoanedDAI(address borrower, uint loanDAI);
|
event LoanedDAI(address borrower, uint loanDAI);
|
||||||
event NewCDP(address borrower, bytes32 cdpBytes);
|
event NewCDP(address borrower, bytes32 cdpBytes);
|
||||||
|
|
||||||
|
@ -113,23 +113,24 @@ contract IssueLoan is GlobalVar {
|
||||||
}
|
}
|
||||||
|
|
||||||
function borrow(uint daiDraw) public payable {
|
function borrow(uint daiDraw) public payable {
|
||||||
if (cdps[msg.sender] == blankCDP) {
|
|
||||||
MakerCDP loanMaster = MakerCDP(cdpAddr);
|
|
||||||
cdps[msg.sender] = loanMaster.open();
|
|
||||||
emit NewCDP(msg.sender, cdps[msg.sender]);
|
|
||||||
}
|
|
||||||
if (msg.value > 0) {lockETH();}
|
if (msg.value > 0) {lockETH();}
|
||||||
if (daiDraw > 0) {drawDAI(daiDraw);}
|
if (daiDraw > 0) {drawDAI(daiDraw);}
|
||||||
}
|
}
|
||||||
|
|
||||||
function lockETH() public payable {
|
function lockETH() public payable {
|
||||||
|
MakerCDP loanMaster = MakerCDP(cdpAddr);
|
||||||
|
if (cdps[msg.sender] == blankCDP) {
|
||||||
|
cdps[msg.sender] = loanMaster.open();
|
||||||
|
emit NewCDP(msg.sender, cdps[msg.sender]);
|
||||||
|
}
|
||||||
WETHFace wethTkn = WETHFace(getAddress("weth"));
|
WETHFace wethTkn = WETHFace(getAddress("weth"));
|
||||||
wethTkn.deposit.value(msg.value)(); // ETH to WETH
|
wethTkn.deposit.value(msg.value)(); // ETH to WETH
|
||||||
uint pethToLock = pethPEReth(msg.value);
|
uint pethToLock = pethPEReth(msg.value);
|
||||||
MakerCDP loanMaster = MakerCDP(cdpAddr);
|
|
||||||
loanMaster.join(pethToLock); // WETH to PETH
|
loanMaster.join(pethToLock); // WETH to PETH
|
||||||
loanMaster.lock(cdps[msg.sender], pethToLock); // PETH to CDP
|
loanMaster.lock(cdps[msg.sender], pethToLock); // PETH to CDP
|
||||||
emit LockedETH(msg.sender, msg.value, pethToLock);
|
emit LockedETH(
|
||||||
|
msg.sender, msg.value, pethToLock, msg.sender
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawDAI(uint daiDraw) public {
|
function drawDAI(uint daiDraw) public {
|
||||||
|
@ -149,11 +150,7 @@ contract RepayLoan is IssueLoan {
|
||||||
event WipedDAI(address borrower, uint daiWipe, uint mkrCharged);
|
event WipedDAI(address borrower, uint daiWipe, uint mkrCharged);
|
||||||
event UnlockedETH(address borrower, uint ethFree);
|
event UnlockedETH(address borrower, uint ethFree);
|
||||||
|
|
||||||
function repay(
|
function repay(uint daiWipe, uint ethFree) public payable {
|
||||||
uint daiWipe,
|
|
||||||
uint ethFree
|
|
||||||
) public payable
|
|
||||||
{
|
|
||||||
if (daiWipe > 0) {wipeDAI(daiWipe);}
|
if (daiWipe > 0) {wipeDAI(daiWipe);}
|
||||||
if (ethFree > 0) {unlockETH(ethFree);}
|
if (ethFree > 0) {unlockETH(ethFree);}
|
||||||
}
|
}
|
||||||
|
@ -175,10 +172,7 @@ contract RepayLoan is IssueLoan {
|
||||||
// claiming paid MKR back
|
// claiming paid MKR back
|
||||||
if (msg.value > 0) { // Interacting with Kyber to swap ETH with MKR
|
if (msg.value > 0) { // Interacting with Kyber to swap ETH with MKR
|
||||||
swapETHMKR(
|
swapETHMKR(
|
||||||
eth,
|
eth, mkr, mkrCharged, msg.value
|
||||||
mkr,
|
|
||||||
mkrCharged,
|
|
||||||
msg.value
|
|
||||||
);
|
);
|
||||||
} else { // take MKR directly from address
|
} else { // take MKR directly from address
|
||||||
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
|
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
|
||||||
|
@ -210,11 +204,7 @@ contract RepayLoan is IssueLoan {
|
||||||
uint minRate;
|
uint minRate;
|
||||||
(, minRate) = instak.getExpectedPrice(eth, mkr, ethQty);
|
(, minRate) = instak.getExpectedPrice(eth, mkr, ethQty);
|
||||||
uint mkrBought = instak.executeTrade.value(ethQty)(
|
uint mkrBought = instak.executeTrade.value(ethQty)(
|
||||||
eth,
|
eth, mkr, ethQty, minRate, mkrCharged
|
||||||
mkr,
|
|
||||||
ethQty,
|
|
||||||
minRate,
|
|
||||||
mkrCharged
|
|
||||||
);
|
);
|
||||||
require(mkrCharged == mkrBought, "ETH not sufficient to cover the MKR fees.");
|
require(mkrCharged == mkrBought, "ETH not sufficient to cover the MKR fees.");
|
||||||
if (address(this).balance > 0) {
|
if (address(this).balance > 0) {
|
||||||
|
@ -278,7 +268,7 @@ contract InstaMaker is BorrowTasks {
|
||||||
freezed = stop;
|
freezed = stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MKR fees kept as balance
|
// collecting MKR token kept as balance to pay fees
|
||||||
function collectMKR(uint amount) public onlyAdmin {
|
function collectMKR(uint amount) public onlyAdmin {
|
||||||
IERC20 mkrTkn = IERC20(getAddress("mkr"));
|
IERC20 mkrTkn = IERC20(getAddress("mkr"));
|
||||||
mkrTkn.transfer(msg.sender, amount);
|
mkrTkn.transfer(msg.sender, amount);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user