Add bridgesAllowedLength method check on setBlockRewardContract

This commit is contained in:
Gerardo Nardelli 2018-10-12 10:56:13 -03:00
parent 00b4976937
commit 339bd4ab04
4 changed files with 9 additions and 1 deletions

View File

@ -5,4 +5,5 @@ interface IBlockReward {
function addExtraReceiver(uint256 _amount, address _receiver) external;
function mintedTotally() public view returns (uint256);
function mintedTotallyByBridge(address _bridge) public view returns(uint256);
function bridgesAllowedLength() external view returns(uint256);
}

View File

@ -14,6 +14,10 @@ contract BlockReward is IBlockReward {
function () external payable {
}
function bridgesAllowedLength() external view returns(uint256) {
return 3;
}
function addExtraReceiver(uint256 _amount, address _receiver) external {
require(_amount > 0);
require(_receiver != address(0));

View File

@ -66,7 +66,7 @@ contract HomeBridgeErcToNative is EternalStorage, BasicBridge, BasicHomeBridge {
}
function setBlockRewardContract(address _blockReward) public onlyOwner {
require(_blockReward != address(0) && isContract(_blockReward));
require(_blockReward != address(0) && isContract(_blockReward) && (IBlockReward(_blockReward).bridgesAllowedLength() != 0));
addressStorage[keccak256(abi.encodePacked("blockRewardContract"))] = _blockReward;
}

View File

@ -71,6 +71,9 @@ contract('HomeBridge_ERC20_to_Native', async (accounts) => {
const notAContract = accounts[5]
await homeContract.setBlockRewardContract(notAContract).should.be.rejectedWith(ERROR_MSG)
secondBlockRewardContract.address.should.be.equal(await homeContract.blockRewardContract())
await homeContract.setBlockRewardContract(validatorContract.address).should.be.rejectedWith(ERROR_MSG)
secondBlockRewardContract.address.should.be.equal(await homeContract.blockRewardContract())
})
it('cant set maxPerTx > dailyLimit', async () => {