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 minConversionRate, // minimum slippage rate
|
||||||
uint maxDestAmt // max amount of dest token
|
uint maxDestAmt // max amount of dest token
|
||||||
)
|
)
|
||||||
public
|
public
|
||||||
payable
|
payable
|
||||||
returns (uint destAmt)
|
returns (uint destAmt)
|
||||||
{
|
{
|
||||||
address eth = getAddress("eth");
|
address eth = getAddress("eth");
|
||||||
uint ethQty = getToken(
|
uint ethQty = getToken(
|
||||||
msg.sender,
|
msg.sender,
|
||||||
src,
|
src,
|
||||||
srcAmt,
|
srcAmt,
|
||||||
eth
|
eth
|
||||||
);
|
);
|
||||||
|
|
||||||
// Interacting with Kyber Proxy Contract
|
// Interacting with Kyber Proxy Contract
|
||||||
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
||||||
destAmt = kyberFunctions.trade.value(ethQty)(
|
destAmt = kyberFunctions.trade.value(ethQty)(
|
||||||
src,
|
src,
|
||||||
srcAmt,
|
srcAmt,
|
||||||
dest,
|
dest,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
maxDestAmt,
|
maxDestAmt,
|
||||||
minConversionRate,
|
minConversionRate,
|
||||||
getAddress("admin")
|
getAddress("admin")
|
||||||
);
|
);
|
||||||
|
|
||||||
// maxDestAmt usecase implementated
|
// maxDestAmt usecase implementated
|
||||||
if (src == eth && address(this).balance > 0) {
|
if (src == eth && address(this).balance > 0) {
|
||||||
|
@ -122,26 +122,26 @@ contract Trade is Registry {
|
||||||
}
|
}
|
||||||
|
|
||||||
emit KyberTrade(
|
emit KyberTrade(
|
||||||
src,
|
src,
|
||||||
srcAmt,
|
srcAmt,
|
||||||
dest,
|
dest,
|
||||||
destAmt,
|
destAmt,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
minConversionRate,
|
minConversionRate,
|
||||||
getAddress("admin")
|
getAddress("admin")
|
||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getToken(
|
function getToken(
|
||||||
address trader,
|
address trader,
|
||||||
address src,
|
address src,
|
||||||
uint srcAmt,
|
uint srcAmt,
|
||||||
address eth
|
address eth
|
||||||
)
|
)
|
||||||
internal
|
internal
|
||||||
returns (uint ethQty)
|
returns (uint ethQty)
|
||||||
{
|
{
|
||||||
if (src == eth) {
|
if (src == eth) {
|
||||||
require(msg.value == srcAmt, "Invalid Operation");
|
require(msg.value == srcAmt, "Invalid Operation");
|
||||||
ethQty = srcAmt;
|
ethQty = srcAmt;
|
||||||
|
|
|
@ -54,11 +54,11 @@ interface WETHFace {
|
||||||
|
|
||||||
interface InstaKyber {
|
interface InstaKyber {
|
||||||
function executeTrade(
|
function executeTrade(
|
||||||
address src,
|
address src,
|
||||||
address dest,
|
address dest,
|
||||||
uint srcAmt,
|
uint srcAmt,
|
||||||
uint minConversionRate,
|
uint minConversionRate,
|
||||||
uint maxDestAmt
|
uint maxDestAmt
|
||||||
)
|
)
|
||||||
external
|
external
|
||||||
payable
|
payable
|
||||||
|
@ -79,7 +79,6 @@ contract Registry {
|
||||||
AddressRegistry addrReg = AddressRegistry(addressRegistry);
|
AddressRegistry addrReg = AddressRegistry(addressRegistry);
|
||||||
return addrReg.getAddr(name);
|
return addrReg.getAddr(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,7 +90,6 @@ contract GlobalVar is Registry {
|
||||||
address cdpAddr; // cups
|
address cdpAddr; // cups
|
||||||
mapping(address => bytes32) cdps; // borrower >>> CDP Bytes
|
mapping(address => bytes32) cdps; // borrower >>> CDP Bytes
|
||||||
bool public freezed;
|
bool public freezed;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,12 +125,12 @@ contract IssueLoan is GlobalVar {
|
||||||
loanMaster.join(pethToLock); // WETH to PETH
|
loanMaster.join(pethToLock); // WETH to PETH
|
||||||
loanMaster.lock(cdps[borrower], pethToLock); // PETH to CDP
|
loanMaster.lock(cdps[borrower], pethToLock); // PETH to CDP
|
||||||
|
|
||||||
emit LockedETH(
|
emit LockedETH(
|
||||||
borrower,
|
borrower,
|
||||||
msg.value,
|
msg.value,
|
||||||
pethToLock,
|
pethToLock,
|
||||||
msg.sender
|
msg.sender
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawDAI(uint daiDraw, address beneficiary) public {
|
function drawDAI(uint daiDraw, address beneficiary) public {
|
||||||
|
@ -181,22 +179,22 @@ contract RepayLoan is IssueLoan {
|
||||||
if (msg.value > 0) {
|
if (msg.value > 0) {
|
||||||
// Interacting with Kyber to swap ETH with MKR
|
// Interacting with Kyber to swap ETH with MKR
|
||||||
swapETHMKR(
|
swapETHMKR(
|
||||||
eth,
|
eth,
|
||||||
mkr,
|
mkr,
|
||||||
mkrCharged,
|
mkrCharged,
|
||||||
msg.value
|
msg.value
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// take MKR directly from address
|
// 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
|
||||||
}
|
}
|
||||||
|
|
||||||
emit WipedDAI(
|
emit WipedDAI(
|
||||||
borrower,
|
borrower,
|
||||||
daiWipe,
|
daiWipe,
|
||||||
mkrCharged,
|
mkrCharged,
|
||||||
msg.sender
|
msg.sender
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function unlockETH(uint ethFree) public {
|
function unlockETH(uint ethFree) public {
|
||||||
|
@ -212,10 +210,10 @@ contract RepayLoan is IssueLoan {
|
||||||
}
|
}
|
||||||
|
|
||||||
function swapETHMKR(
|
function swapETHMKR(
|
||||||
address eth,
|
address eth,
|
||||||
address mkr,
|
address mkr,
|
||||||
uint mkrCharged,
|
uint mkrCharged,
|
||||||
uint ethQty
|
uint ethQty
|
||||||
)
|
)
|
||||||
internal
|
internal
|
||||||
{
|
{
|
||||||
|
@ -223,17 +221,17 @@ 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,
|
mkr,
|
||||||
ethQty,
|
ethQty,
|
||||||
minRate,
|
minRate,
|
||||||
mkrCharged
|
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) {
|
||||||
msg.sender.transfer(address(this).balance);
|
msg.sender.transfer(address(this).balance);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -49,12 +49,12 @@ interface WETHFace {
|
||||||
|
|
||||||
interface InstaKyber {
|
interface InstaKyber {
|
||||||
function executeTrade(
|
function executeTrade(
|
||||||
address src,
|
address src,
|
||||||
address dest,
|
address dest,
|
||||||
uint srcAmt,
|
uint srcAmt,
|
||||||
uint minConversionRate,
|
uint minConversionRate,
|
||||||
uint maxDestAmt
|
uint maxDestAmt
|
||||||
)
|
)
|
||||||
external
|
external
|
||||||
payable
|
payable
|
||||||
returns (uint destAmt);
|
returns (uint destAmt);
|
||||||
|
@ -100,12 +100,12 @@ contract Helper is Registry {
|
||||||
|
|
||||||
contract Lock is Helper {
|
contract Lock is Helper {
|
||||||
|
|
||||||
event LockedETH(
|
event LockedETH(
|
||||||
uint cdpNum,
|
uint cdpNum,
|
||||||
address lockedBy,
|
address lockedBy,
|
||||||
uint lockETH,
|
uint lockETH,
|
||||||
uint lockPETH
|
uint lockPETH
|
||||||
);
|
);
|
||||||
|
|
||||||
function lockETH(uint cdpNum) public payable {
|
function lockETH(uint cdpNum) public payable {
|
||||||
MakerCDP loanMaster = MakerCDP(cdpAddr);
|
MakerCDP loanMaster = MakerCDP(cdpAddr);
|
||||||
|
@ -115,12 +115,12 @@ contract Lock is Helper {
|
||||||
loanMaster.join(pethToLock); // WETH to PETH
|
loanMaster.join(pethToLock); // WETH to PETH
|
||||||
loanMaster.lock(bytes32(cdpNum), pethToLock); // PETH to CDP
|
loanMaster.lock(bytes32(cdpNum), pethToLock); // PETH to CDP
|
||||||
|
|
||||||
emit LockedETH(
|
emit LockedETH(
|
||||||
cdpNum,
|
cdpNum,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
msg.value,
|
msg.value,
|
||||||
pethToLock
|
pethToLock
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,11 +148,11 @@ contract Wipe is Lock {
|
||||||
}
|
}
|
||||||
|
|
||||||
emit WipedDAI(
|
emit WipedDAI(
|
||||||
cdpNum,
|
cdpNum,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
daiWipe,
|
daiWipe,
|
||||||
mkrCharged
|
mkrCharged
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function swapETHMKR(uint mkrCharged, uint ethQty) internal {
|
function swapETHMKR(uint mkrCharged, uint ethQty) internal {
|
||||||
|
@ -160,13 +160,13 @@ contract Wipe is Lock {
|
||||||
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,
|
mkr,
|
||||||
ethQty,
|
ethQty,
|
||||||
minRate,
|
minRate,
|
||||||
mkrCharged
|
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) {
|
||||||
|
|
|
@ -59,24 +59,24 @@ contract Trade is Registry {
|
||||||
// Interacting with Kyber Proxy Contract
|
// Interacting with Kyber Proxy Contract
|
||||||
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
Kyber kyberFunctions = Kyber(getAddress("kyber"));
|
||||||
|
|
||||||
destAmt = kyberFunctions.trade.value(0)(
|
destAmt = kyberFunctions.trade.value(0)(
|
||||||
src,
|
src,
|
||||||
srcDAI,
|
srcDAI,
|
||||||
dest,
|
dest,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
2 ** 255,
|
2 ** 255,
|
||||||
minConversionRate,
|
minConversionRate,
|
||||||
getAddress("admin")
|
getAddress("admin")
|
||||||
);
|
);
|
||||||
|
|
||||||
emit KyberTrade(
|
emit KyberTrade(
|
||||||
src,
|
src,
|
||||||
srcDAI,
|
srcDAI,
|
||||||
dest,
|
dest,
|
||||||
destAmt,
|
destAmt,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
minConversionRate
|
minConversionRate
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,11 +74,11 @@ interface WETHFace {
|
||||||
|
|
||||||
interface InstaKyber {
|
interface InstaKyber {
|
||||||
function executeTrade(
|
function executeTrade(
|
||||||
address src,
|
address src,
|
||||||
address dest,
|
address dest,
|
||||||
uint srcAmt,
|
uint srcAmt,
|
||||||
uint minConversionRate,
|
uint minConversionRate,
|
||||||
uint maxDestAmt
|
uint maxDestAmt
|
||||||
)
|
)
|
||||||
external
|
external
|
||||||
payable
|
payable
|
||||||
|
@ -154,11 +154,11 @@ contract BorrowLoan is GlobalVar {
|
||||||
loanMaster.join(pethToLock); // WETH to PETH
|
loanMaster.join(pethToLock); // WETH to PETH
|
||||||
loanMaster.lock(cup, pethToLock); // PETH to CDP
|
loanMaster.lock(cup, pethToLock); // PETH to CDP
|
||||||
emit LockedETH(
|
emit LockedETH(
|
||||||
uint(cup),
|
uint(cup),
|
||||||
msg.sender,
|
msg.sender,
|
||||||
msg.value,
|
msg.value,
|
||||||
pethToLock
|
pethToLock
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// minting DAI
|
// minting DAI
|
||||||
|
@ -171,12 +171,12 @@ contract BorrowLoan is GlobalVar {
|
||||||
}
|
}
|
||||||
daiTkn.transfer(payTo, daiDraw);
|
daiTkn.transfer(payTo, daiDraw);
|
||||||
|
|
||||||
emit LoanedDAI(
|
emit LoanedDAI(
|
||||||
uint(cup),
|
uint(cup),
|
||||||
msg.sender,
|
msg.sender,
|
||||||
daiDraw,
|
daiDraw,
|
||||||
payTo
|
payTo
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -209,12 +209,12 @@ contract RepayLoan is BorrowLoan {
|
||||||
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
|
mkrTkn.transferFrom(msg.sender, address(this), mkrCharged); // user paying MKR fees
|
||||||
}
|
}
|
||||||
|
|
||||||
emit WipedDAI(
|
emit WipedDAI(
|
||||||
cdpNum,
|
cdpNum,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
daiWipe,
|
daiWipe,
|
||||||
mkrCharged
|
mkrCharged
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO => send pethFree from frontend instead of ethFree
|
// TODO => send pethFree from frontend instead of ethFree
|
||||||
|
@ -250,13 +250,12 @@ contract RepayLoan is BorrowLoan {
|
||||||
cdps[cdpNum] = address(0x0);
|
cdps[cdpNum] = address(0x0);
|
||||||
|
|
||||||
emit ShutCDP(
|
emit ShutCDP(
|
||||||
cdpNum,
|
cdpNum,
|
||||||
msg.sender,
|
msg.sender,
|
||||||
daiDebt,
|
daiDebt,
|
||||||
wethBal
|
wethBal
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -300,7 +299,6 @@ contract MiscTask is RepayLoan {
|
||||||
loanMaster.give(bytes32(cdpNum), resolverAddress);
|
loanMaster.give(bytes32(cdpNum), resolverAddress);
|
||||||
resolverAct.initAct(cdpNum);
|
resolverAct.initAct(cdpNum);
|
||||||
emit ResolverTwoWay(cdpNum, msg.sender, resolverAddress);
|
emit ResolverTwoWay(cdpNum, msg.sender, resolverAddress);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function claimCDP(uint cdpNum) public {
|
function claimCDP(uint cdpNum) public {
|
||||||
|
@ -332,7 +330,6 @@ contract MiscTask is RepayLoan {
|
||||||
IERC20 daiTkn = IERC20(getAddress("dai"));
|
IERC20 daiTkn = IERC20(getAddress("dai"));
|
||||||
daiTkn.approve(cdpAddr, 2 ** 256 - 1);
|
daiTkn.approve(cdpAddr, 2 ** 256 - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -361,5 +358,4 @@ contract InstaBank is MiscTask {
|
||||||
mkrTkn.transfer(msg.sender, amount);
|
mkrTkn.transfer(msg.sender, amount);
|
||||||
emit MKRCollected(amount);
|
emit MKRCollected(amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,13 +22,14 @@
|
||||||
"build": "npm run clean:contracts && truffle compile"
|
"build": "npm run clean:contracts && truffle compile"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"web3": "^1.0.0-beta.38",
|
|
||||||
"bn.js": "^4.11.8",
|
"bn.js": "^4.11.8",
|
||||||
"dotenv": "^6.2.0",
|
"dotenv": "^6.2.0",
|
||||||
|
"ethereumjs-wallet": "^0.6.3",
|
||||||
"openzeppelin-solidity": "^2.1.2",
|
"openzeppelin-solidity": "^2.1.2",
|
||||||
"truffle": "^5.0.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": {
|
"devDependencies": {
|
||||||
"babel-cli": "^6.26.0",
|
"babel-cli": "^6.26.0",
|
||||||
|
|
|
@ -28,9 +28,4 @@ contract('Ownable', accounts => {
|
||||||
assert.isTrue(owner !== other)
|
assert.isTrue(owner !== other)
|
||||||
await assertRevert(ownable.transferOwnership(other, { from: 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()
|
require('dotenv').config()
|
||||||
const HDWalletProvider = require('truffle-hdwallet-provider')
|
const HDWalletProvider = require('truffle-hdwallet-provider')
|
||||||
const Wallet = require('ethereumjs-wallet')
|
|
||||||
|
|
||||||
const rinkebyPrivateKey = new Buffer(process.env['RINKEBY_PRIVATE_KEY'], 'hex')
|
const rinkebyWallet =
|
||||||
const rinkebyWallet = Wallet.fromPrivateKey(rinkebyPrivateKey)
|
'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
|
||||||
const rinkebyProvider = new HDWalletProvider(
|
const rinkebyProvider = new HDWalletProvider(
|
||||||
rinkebyWallet,
|
rinkebyWallet,
|
||||||
'https://rinkeby.infura.io/'
|
'https://rinkeby.infura.io/'
|
||||||
)
|
)
|
||||||
|
|
||||||
const ropstenPrivateKey = new Buffer(process.env['ROPSTEN_PRIVATE_KEY'], 'hex')
|
const ropstenWallet =
|
||||||
const ropstenWallet = Wallet.fromPrivateKey(ropstenPrivateKey)
|
'candy maple cake sugar pudding cream honey rich smooth crumble sweet treat'
|
||||||
const ropstenProvider = new HDWalletProvider(
|
const ropstenProvider = new HDWalletProvider(
|
||||||
ropstenWallet,
|
ropstenWallet,
|
||||||
'https://ropsten.infura.io/'
|
'https://ropsten.infura.io/'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user