apply comments from PR
This commit is contained in:
parent
0c2e5e2d61
commit
ae4126a9d4
|
@ -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")];
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue