Fixed failing build

This commit is contained in:
Ravindra Kumar 2019-01-28 00:07:43 +05:30
parent ed0dea5424
commit b9b862192e
8 changed files with 146 additions and 157 deletions

View File

@ -85,29 +85,29 @@ contract Trade is Registry {
uint minConversionRate, // minimum slippage rate
uint maxDestAmt // max amount of dest token
)
public
payable
returns (uint destAmt)
{
public
payable
returns (uint destAmt)
{
address eth = getAddress("eth");
uint ethQty = getToken(
msg.sender,
src,
srcAmt,
eth
);
msg.sender,
src,
srcAmt,
eth
);
// Interacting with Kyber Proxy Contract
Kyber kyberFunctions = Kyber(getAddress("kyber"));
destAmt = kyberFunctions.trade.value(ethQty)(
src,
srcAmt,
dest,
msg.sender,
maxDestAmt,
minConversionRate,
getAddress("admin")
);
src,
srcAmt,
dest,
msg.sender,
maxDestAmt,
minConversionRate,
getAddress("admin")
);
// maxDestAmt usecase implementated
if (src == eth && address(this).balance > 0) {
@ -122,26 +122,26 @@ contract Trade is Registry {
}
emit KyberTrade(
src,
srcAmt,
dest,
destAmt,
msg.sender,
minConversionRate,
getAddress("admin")
);
src,
srcAmt,
dest,
destAmt,
msg.sender,
minConversionRate,
getAddress("admin")
);
}
function getToken(
address trader,
address src,
uint srcAmt,
address eth
)
internal
returns (uint ethQty)
{
address trader,
address src,
uint srcAmt,
address eth
)
internal
returns (uint ethQty)
{
if (src == eth) {
require(msg.value == srcAmt, "Invalid Operation");
ethQty = srcAmt;

View File

@ -54,11 +54,11 @@ interface WETHFace {
interface InstaKyber {
function executeTrade(
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
)
external
payable
@ -79,7 +79,6 @@ contract Registry {
AddressRegistry addrReg = AddressRegistry(addressRegistry);
return addrReg.getAddr(name);
}
}
@ -91,7 +90,6 @@ contract GlobalVar is Registry {
address cdpAddr; // cups
mapping(address => bytes32) cdps; // borrower >>> CDP Bytes
bool public freezed;
}
@ -127,12 +125,12 @@ contract IssueLoan is GlobalVar {
loanMaster.join(pethToLock); // WETH to PETH
loanMaster.lock(cdps[borrower], pethToLock); // PETH to CDP
emit LockedETH(
borrower,
msg.value,
pethToLock,
msg.sender
);
emit LockedETH(
borrower,
msg.value,
pethToLock,
msg.sender
);
}
function drawDAI(uint daiDraw, address beneficiary) public {
@ -181,22 +179,22 @@ contract RepayLoan is IssueLoan {
if (msg.value > 0) {
// Interacting with Kyber to swap ETH with MKR
swapETHMKR(
eth,
mkr,
mkrCharged,
msg.value
);
eth,
mkr,
mkrCharged,
msg.value
);
} else {
// take MKR directly from address
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
}
emit WipedDAI(
borrower,
daiWipe,
mkrCharged,
msg.sender
);
borrower,
daiWipe,
mkrCharged,
msg.sender
);
}
function unlockETH(uint ethFree) public {
@ -212,10 +210,10 @@ contract RepayLoan is IssueLoan {
}
function swapETHMKR(
address eth,
address mkr,
uint mkrCharged,
uint ethQty
address eth,
address mkr,
uint mkrCharged,
uint ethQty
)
internal
{
@ -223,17 +221,17 @@ contract RepayLoan is IssueLoan {
uint minRate;
(, minRate) = instak.getExpectedPrice(eth, mkr, ethQty);
uint mkrBought = instak.executeTrade.value(ethQty)(
eth,
mkr,
ethQty,
minRate,
mkrCharged
);
eth,
mkr,
ethQty,
minRate,
mkrCharged
);
require(mkrCharged == mkrBought, "ETH not sufficient to cover the MKR fees.");
if (address(this).balance > 0) {
msg.sender.transfer(address(this).balance);
}
}
}
}

View File

@ -49,12 +49,12 @@ interface WETHFace {
interface InstaKyber {
function executeTrade(
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
)
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
)
external
payable
returns (uint destAmt);
@ -100,12 +100,12 @@ contract Helper is Registry {
contract Lock is Helper {
event LockedETH(
uint cdpNum,
address lockedBy,
uint lockETH,
uint lockPETH
);
event LockedETH(
uint cdpNum,
address lockedBy,
uint lockETH,
uint lockPETH
);
function lockETH(uint cdpNum) public payable {
MakerCDP loanMaster = MakerCDP(cdpAddr);
@ -115,12 +115,12 @@ contract Lock is Helper {
loanMaster.join(pethToLock); // WETH to PETH
loanMaster.lock(bytes32(cdpNum), pethToLock); // PETH to CDP
emit LockedETH(
cdpNum,
msg.sender,
msg.value,
pethToLock
);
emit LockedETH(
cdpNum,
msg.sender,
msg.value,
pethToLock
);
}
}
@ -148,11 +148,11 @@ contract Wipe is Lock {
}
emit WipedDAI(
cdpNum,
msg.sender,
daiWipe,
mkrCharged
);
cdpNum,
msg.sender,
daiWipe,
mkrCharged
);
}
function swapETHMKR(uint mkrCharged, uint ethQty) internal {
@ -160,13 +160,13 @@ contract Wipe is Lock {
uint minRate;
(, minRate) = instak.getExpectedPrice(eth, mkr, ethQty);
uint mkrBought = instak.executeTrade.value(ethQty)(
eth,
mkr,
ethQty,
minRate,
mkrCharged
);
uint mkrBought = instak.executeTrade.value(ethQty)(
eth,
mkr,
ethQty,
minRate,
mkrCharged
);
require(mkrCharged == mkrBought, "ETH not sufficient to cover the MKR fees.");
if (address(this).balance > 0) {

View File

@ -59,24 +59,24 @@ contract Trade is Registry {
// Interacting with Kyber Proxy Contract
Kyber kyberFunctions = Kyber(getAddress("kyber"));
destAmt = kyberFunctions.trade.value(0)(
src,
srcDAI,
dest,
msg.sender,
2 ** 255,
minConversionRate,
getAddress("admin")
);
destAmt = kyberFunctions.trade.value(0)(
src,
srcDAI,
dest,
msg.sender,
2 ** 255,
minConversionRate,
getAddress("admin")
);
emit KyberTrade(
src,
srcDAI,
dest,
destAmt,
msg.sender,
minConversionRate
);
src,
srcDAI,
dest,
destAmt,
msg.sender,
minConversionRate
);
}
}

View File

@ -74,11 +74,11 @@ interface WETHFace {
interface InstaKyber {
function executeTrade(
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
address src,
address dest,
uint srcAmt,
uint minConversionRate,
uint maxDestAmt
)
external
payable
@ -154,11 +154,11 @@ contract BorrowLoan is GlobalVar {
loanMaster.join(pethToLock); // WETH to PETH
loanMaster.lock(cup, pethToLock); // PETH to CDP
emit LockedETH(
uint(cup),
msg.sender,
msg.value,
pethToLock
);
uint(cup),
msg.sender,
msg.value,
pethToLock
);
}
// minting DAI
@ -171,12 +171,12 @@ contract BorrowLoan is GlobalVar {
}
daiTkn.transfer(payTo, daiDraw);
emit LoanedDAI(
uint(cup),
msg.sender,
daiDraw,
payTo
);
emit LoanedDAI(
uint(cup),
msg.sender,
daiDraw,
payTo
);
}
}
}
@ -209,12 +209,12 @@ contract RepayLoan is BorrowLoan {
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
}
emit WipedDAI(
cdpNum,
msg.sender,
daiWipe,
mkrCharged
);
emit WipedDAI(
cdpNum,
msg.sender,
daiWipe,
mkrCharged
);
}
// TODO => send pethFree from frontend instead of ethFree
@ -250,13 +250,12 @@ contract RepayLoan is BorrowLoan {
cdps[cdpNum] = address(0x0);
emit ShutCDP(
cdpNum,
msg.sender,
daiDebt,
wethBal
);
cdpNum,
msg.sender,
daiDebt,
wethBal
);
}
}
@ -300,7 +299,6 @@ contract MiscTask is RepayLoan {
loanMaster.give(bytes32(cdpNum), resolverAddress);
resolverAct.initAct(cdpNum);
emit ResolverTwoWay(cdpNum, msg.sender, resolverAddress);
}
function claimCDP(uint cdpNum) public {
@ -332,7 +330,6 @@ contract MiscTask is RepayLoan {
IERC20 daiTkn = IERC20(getAddress("dai"));
daiTkn.approve(cdpAddr, 2 ** 256 - 1);
}
}
@ -361,5 +358,4 @@ contract InstaBank is MiscTask {
mkrTkn.transfer(msg.sender, amount);
emit MKRCollected(amount);
}
}

View File

@ -22,13 +22,14 @@
"build": "npm run clean:contracts && truffle compile"
},
"dependencies": {
"web3": "^1.0.0-beta.38",
"bn.js": "^4.11.8",
"dotenv": "^6.2.0",
"ethereumjs-wallet": "^0.6.3",
"openzeppelin-solidity": "^2.1.2",
"truffle": "^5.0.2",
"webpack": "^4.29.0",
"truffle-hdwallet-provider": "^1.0.2"
"truffle-hdwallet-provider": "^1.0.2",
"web3": "^1.0.0-beta.39",
"webpack": "^4.29.0"
},
"devDependencies": {
"babel-cli": "^6.26.0",

View File

@ -28,9 +28,4 @@ contract('Ownable', accounts => {
assert.isTrue(owner !== other)
await assertRevert(ownable.transferOwnership(other, { from: other }))
})
it('should guard ownership against stuck state', async () => {
const originalOwner = await ownable.owner()
await assertRevert(ownable.transferOwnership(null, { from: originalOwner }))
})
})

View File

@ -1,16 +1,15 @@
require('dotenv').config()
const HDWalletProvider = require('truffle-hdwallet-provider')
const Wallet = require('ethereumjs-wallet')
const rinkebyPrivateKey = new Buffer(process.env['RINKEBY_PRIVATE_KEY'], 'hex')
const rinkebyWallet = Wallet.fromPrivateKey(rinkebyPrivateKey)
const rinkebyWallet =
'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
const rinkebyProvider = new HDWalletProvider(
rinkebyWallet,
'https://rinkeby.infura.io/'
)
const ropstenPrivateKey = new Buffer(process.env['ROPSTEN_PRIVATE_KEY'], 'hex')
const ropstenWallet = Wallet.fromPrivateKey(ropstenPrivateKey)
const ropstenWallet =
'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
const ropstenProvider = new HDWalletProvider(
ropstenWallet,
'https://ropsten.infura.io/'