Added feature - lock ETH in CDP without being the owner.

This commit is contained in:
Sowmayjain 2018-11-28 01:26:22 +05:30
parent 8d4b5c6f73
commit 69ff3e1146

View File

@ -113,13 +113,14 @@ contract IssueLoan is GlobalVar {
} }
function borrow(uint daiDraw) public payable { function borrow(uint daiDraw) public payable {
if (msg.value > 0) {lockETH();} if (msg.value > 0) {lockETH(msg.sender);}
if (daiDraw > 0) {drawDAI(daiDraw);} if (daiDraw > 0) {drawDAI(daiDraw);}
} }
function lockETH() public payable { function lockETH(address borrower) public payable {
MakerCDP loanMaster = MakerCDP(cdpAddr); MakerCDP loanMaster = MakerCDP(cdpAddr);
if (cdps[msg.sender] == blankCDP) { if (cdps[borrower] == blankCDP) {
require(msg.sender == borrower, "Creating CDP for others is not permitted at the moment.");
cdps[msg.sender] = loanMaster.open(); cdps[msg.sender] = loanMaster.open();
emit NewCDP(msg.sender, cdps[msg.sender]); emit NewCDP(msg.sender, cdps[msg.sender]);
} }
@ -127,9 +128,9 @@ contract IssueLoan is GlobalVar {
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);
loanMaster.join(pethToLock); // WETH to PETH loanMaster.join(pethToLock); // WETH to PETH
loanMaster.lock(cdps[msg.sender], pethToLock); // PETH to CDP loanMaster.lock(cdps[borrower], pethToLock); // PETH to CDP
emit LockedETH( emit LockedETH(
msg.sender, msg.value, pethToLock, msg.sender borrower, msg.value, pethToLock, msg.sender
); );
} }