mirror of
https://github.com/Instadapp/InstaContract.git
synced 2024-07-29 22:47:45 +00:00
Fixed failing build
This commit is contained in:
parent
ed0dea5424
commit
b9b862192e
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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 }))
|
||||
})
|
||||
})
|
||||
|
|
|
@ -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/'
|
||||
|
|
Loading…
Reference in New Issue
Block a user