Skip to content

Commit

Permalink
Merge with dev
Browse files Browse the repository at this point in the history
  • Loading branch information
antoncoding committed Aug 18, 2020
2 parents ac3a400 + daaf806 commit 10fe514
Show file tree
Hide file tree
Showing 25 changed files with 2,278 additions and 27 deletions.
6 changes: 5 additions & 1 deletion .solcover.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,16 @@ module.exports = {
copyPackages: ['openzeppelin'],
skipFiles: [
'Migrations.sol',

'mocks/MockOracle.sol',
'mocks/MockERC20.sol',
'mocks/MockCtoken.sol',
'mocks/MockCompoundOracle.sol',
'mocks/MockUniswapFactory.sol',
'mocks/MockOtokensExchange.sol'
'mocks/MockOtokensExchange.sol',
'echidna/contracts/TestOptionsContract.sol',
'echidna/contracts/TestOptionsExchange.sol',
'echidna/EchidnaOptionsContract.sol'
]
};

2 changes: 2 additions & 0 deletions .solhintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
contracts/lib/
contracts/Migrations.sol
contracts/packages/
contracts/echidna/
25 changes: 14 additions & 11 deletions contracts/OptionsContract.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ pragma solidity ^0.5.10;
import "./interfaces/OracleInterface.sol";
import "./interfaces/UniswapFactoryInterface.sol";
import "./interfaces/UniswapExchangeInterface.sol";

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
import "@openzeppelin/contracts/ownership/Ownable.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
import "./packages/ERC20.sol";
import "./packages/IERC20.sol";
import "./packages/ERC20Detailed.sol";
import "./packages/Ownable.sol";
import "./packages/SafeMath.sol";


/**
Expand Down Expand Up @@ -391,7 +390,7 @@ contract OptionsContract is Ownable, ERC20 {
uint64 underlyingPerOTokenExp = uint64(
oTokenExchangeRate.exponent - underlyingExp
);
return oTokensToExercise.mul(10**underlyingPerOTokenExp);
return uint256(oTokensToExercise.mul(10**underlyingPerOTokenExp));
}

/**
Expand Down Expand Up @@ -971,13 +970,17 @@ contract OptionsContract is Ownable, ERC20 {
uint256 amtCollateralToPay = 0;
if (amtCollateralToPayExp > 0) {
uint32 exp = uint32(amtCollateralToPayExp);
amtCollateralToPay = amtCollateralToPayInEthNum.mul(10**exp).div(
collateralToEthPrice
amtCollateralToPay = uint256(
amtCollateralToPayInEthNum.mul(10**exp).div(
collateralToEthPrice
)
);
} else {
uint32 exp = uint32(-1 * amtCollateralToPayExp);
amtCollateralToPay = (amtCollateralToPayInEthNum.div(10**exp)).div(
collateralToEthPrice
amtCollateralToPay = uint256(
(amtCollateralToPayInEthNum.div(10**exp)).div(
collateralToEthPrice
)
);
}

Expand Down
2 changes: 1 addition & 1 deletion contracts/OptionsExchange.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity 0.5.10;
import "./interfaces/CompoundOracleInterface.sol";
import "./interfaces/UniswapFactoryInterface.sol";
import "./interfaces/UniswapExchangeInterface.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./packages/IERC20.sol";


contract OptionsExchange {
Expand Down
4 changes: 2 additions & 2 deletions contracts/OptionsFactory.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ pragma solidity 0.5.10;

import "./oToken.sol";
import "./lib/StringComparator.sol";
import "@openzeppelin/contracts/ownership/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./packages/Ownable.sol";
import "./packages/IERC20.sol";


contract OptionsFactory is Ownable {
Expand Down
8 changes: 4 additions & 4 deletions contracts/Oracle.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ pragma solidity 0.5.10;

import "./interfaces/CompoundOracleInterface.sol";
import "./interfaces/CTokenInterface.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/ownership/Ownable.sol";
import "@openzeppelin/contracts/math/SafeMath.sol";
import "./packages/ERC20Detailed.sol";
import "./packages/ERC20.sol";
import "./packages/Ownable.sol";
import "./packages/SafeMath.sol";


contract Oracle is Ownable {
Expand Down
79 changes: 79 additions & 0 deletions contracts/echidna/EchidnaOptionsContract.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
pragma solidity ^0.5.10;

import "./contracts/TestOptionsContract.sol";


contract EchidnaOptionsContract is TestOptionsContract {
function echidna_windowsize_lessthan_equal_expiry()
public
view
returns (bool)
{
return windowSize <= expiry;
}

function echidna_collateral_exponent_withen_exponent_range()
public
view
returns (bool)
{
return ((collateralExp <= 30) && (collateralExp >= -30));
}

function echidna_underlying_exponent_withen_exponent_range()
public
view
returns (bool)
{
return ((underlyingExp <= 30) && (underlyingExp >= -30));
}

function echidna_strike_exponent_withen_exponent_range()
public
view
returns (bool)
{
return ((strikePrice.exponent <= 30) && (strikePrice.exponent >= -30));
}

function echidna_exchange_rate_exponent_withen_exponent_range()
public
view
returns (bool)
{
return ((oTokenExchangeRate.exponent <= 30) &&
(oTokenExchangeRate.exponent >= -30));
}

function echidna_liquiadtion_incentive_lessthan_equal_20percent()
public
view
returns (bool)
{
return liquidationIncentive.value <= 200;
}

function echidna_liquiadtion_factor_lessthan_equal_100percent()
public
view
returns (bool)
{
return liquidationFactor.value <= 1000;
}

function echidna_transaction_fee_lessthan_equal_10percent()
public
view
returns (bool)
{
return transactionFee.value <= 100;
}

function echidna_min_collateralization_ration_greaterthan_equal_1()
public
view
returns (bool)
{
return minCollateralizationRatio.value >= 10;
}
}
1 change: 1 addition & 0 deletions contracts/echidna/EchidnaOptionsContract.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
prefix: "echidna_"
Loading

0 comments on commit 10fe514

Please sign in to comment.