apply comments from PR

This commit is contained in:
Roman Storm 2018-05-06 10:38:51 -07:00
parent 0c2e5e2d61
commit ae4126a9d4
4 changed files with 18 additions and 14 deletions

View File

@ -3,7 +3,7 @@ import "../IBridgeValidators.sol";
import "../upgradeability/EternalStorage.sol";
contract Validatable is EternalStorage {
contract BasicBridge is EternalStorage {
event GasPriceChanged(uint256 gasPrice);
event RequiredBlockConfirmationChanged(uint256 requiredBlockConfirmations);
function validatorContract() public view returns(IBridgeValidators) {
@ -39,5 +39,4 @@ contract Validatable is EternalStorage {
function requiredBlockConfirmations() public view returns(uint256) {
return uintStorage[keccak256("requiredBlockConfirmations")];
}
}

View File

@ -1,13 +1,13 @@
pragma solidity 0.4.21;
import "../libraries/SafeMath.sol";
import "../libraries/Message.sol";
import "./U_Validatable.sol";
import "./U_BasicBridge.sol";
import "../IBurnableMintableERC677Token.sol";
import "../ERC677Receiver.sol";
import "openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol";
contract ForeignBridge is ERC677Receiver, Validatable {
contract ForeignBridge is ERC677Receiver, BasicBridge {
using SafeMath for uint256;
/// triggered when relay of deposit from HomeBridge is complete
event Deposit(address recipient, uint value, bytes32 transactionHash);
@ -30,19 +30,20 @@ contract ForeignBridge is ERC677Receiver, Validatable {
uint256 _foreignDailyLimit,
uint256 _maxPerTx,
uint256 _minPerTx,
uint256 _homeGasPrice,
uint256 _foreignGasPrice,
uint256 _requiredBlockConfirmations
) public returns(bool) {
require(!isInitialized());
require(_validatorContract != address(0));
require(_minPerTx > 0 && _maxPerTx > _minPerTx && _foreignDailyLimit > _maxPerTx);
require(_foreignGasPrice > 0);
addressStorage[keccak256("validatorContract")] = _validatorContract;
setErc677token(_erc677token);
uintStorage[keccak256("foreignDailyLimit")] = _foreignDailyLimit;
uintStorage[keccak256("deployedAtBlock")] = block.number;
uintStorage[keccak256("maxPerTx")] = _maxPerTx;
uintStorage[keccak256("minPerTx")] = _minPerTx;
uintStorage[keccak256("gasPrice")] = _homeGasPrice;
uintStorage[keccak256("gasPrice")] = _foreignGasPrice;
uintStorage[keccak256("requiredBlockConfirmations")] = _requiredBlockConfirmations;
setInitialize(true);
return isInitialized();
@ -53,7 +54,7 @@ contract ForeignBridge is ERC677Receiver, Validatable {
require(withinLimit(_value));
setTotalSpentPerDay(getCurrentDay(), totalSpentPerDay(getCurrentDay()).add(_value));
erc677token().burn(_value);
emit Withdraw(_from, _value, gasPrice());
emit Withdraw(_from, _value, gasPriceForCompensationAtHomeSide());
return true;
}
@ -185,6 +186,10 @@ contract ForeignBridge is ERC677Receiver, Validatable {
}
}
function gasPriceForCompensationAtHomeSide() public pure returns(uint256) {
return 1000000000 wei;
}
function isAlreadyProcessed(uint256 _number) public pure returns(bool) {
return _number & 2**255 == 2**255;
}

View File

@ -1,11 +1,11 @@
pragma solidity 0.4.21;
import "../libraries/SafeMath.sol";
import "../libraries/Message.sol";
import "./U_Validatable.sol";
import "./U_BasicBridge.sol";
import "../upgradeability/EternalStorage.sol";
contract HomeBridge is EternalStorage, Validatable {
contract HomeBridge is EternalStorage, BasicBridge {
using SafeMath for uint256;
event GasConsumptionLimitsUpdated(uint256 gas);
event Deposit (address recipient, uint256 value);
@ -17,14 +17,14 @@ contract HomeBridge is EternalStorage, Validatable {
uint256 _homeDailyLimit,
uint256 _maxPerTx,
uint256 _minPerTx,
uint256 _foreignGasPrice,
uint256 _homeGasPrice,
uint256 _requiredBlockConfirmations
) public
returns(bool)
{
require(!isInitialized());
require(_validatorContract != address(0));
require(_foreignGasPrice > 0);
require(_homeGasPrice > 0);
require(_requiredBlockConfirmations > 0);
require(_minPerTx > 0 && _maxPerTx > _minPerTx && _homeDailyLimit > _maxPerTx);
addressStorage[keccak256("validatorContract")] = _validatorContract;
@ -32,7 +32,7 @@ contract HomeBridge is EternalStorage, Validatable {
uintStorage[keccak256("homeDailyLimit")] = _homeDailyLimit;
uintStorage[keccak256("maxPerTx")] = _maxPerTx;
uintStorage[keccak256("minPerTx")] = _minPerTx;
uintStorage[keccak256("gasPrice")] = _foreignGasPrice;
uintStorage[keccak256("gasPrice")] = _homeGasPrice;
uintStorage[keccak256("requiredBlockConfirmations")] = _requiredBlockConfirmations;
setInitialize(true);
return isInitialized();

View File

@ -12,8 +12,8 @@ const web3Home = new Web3(homeProvider);
const foreignProvider = new Web3.providers.HttpProvider(FOREIGN_RPC_URL);
const web3Foreign = new Web3(foreignProvider);
const GAS_PRICE = Web3Utils.toWei(process.env.GAS_PRICE, 'gwei');
const GAS_LIMIT = process.env.GAS_LIMIT;
const GAS_PRICE = Web3Utils.toWei(process.env.DEPLOYMENT_GAS_PRICE, 'gwei');
const GAS_LIMIT = process.env.DEPLOYMENT_GAS_LIMIT;
const GET_RECEIPT_INTERVAL_IN_MILLISECONDS = process.env.GET_RECEIPT_INTERVAL_IN_MILLISECONDS;
const DEPLOYMENT_ACCOUNT_ADDRESS = process.env.DEPLOYMENT_ACCOUNT_ADDRESS;