Update BridgeValidators contract

This commit is contained in:
Gerardo Nardelli 2018-07-26 14:34:47 -03:00
parent a815ac6d4d
commit 2c0e9dd2c2
2 changed files with 10 additions and 3 deletions

View File

@ -8,8 +8,8 @@ import "../upgradeability/EternalStorage.sol";
contract BridgeValidators is IBridgeValidators, EternalStorage, Ownable {
using SafeMath for uint256;
event ValidatorAdded (address validator);
event ValidatorRemoved (address validator);
event ValidatorAdded (address indexed validator);
event ValidatorRemoved (address indexed validator);
event RequiredSignaturesChanged (uint256 requiredSignatures);
function initialize(uint256 _requiredSignatures, address[] _initialValidators, address _owner)
@ -28,6 +28,7 @@ contract BridgeValidators is IBridgeValidators, EternalStorage, Ownable {
emit ValidatorAdded(_initialValidators[i]);
}
uintStorage[keccak256(abi.encodePacked("requiredSignatures"))] = _requiredSignatures;
uintStorage[keccak256("deployedAtBlock")] = block.number;
setInitialize(true);
emit RequiredSignaturesChanged(_requiredSignatures);
return isInitialized();
@ -76,6 +77,10 @@ contract BridgeValidators is IBridgeValidators, EternalStorage, Ownable {
return boolStorage[keccak256(abi.encodePacked("isInitialized"))];
}
function deployedAtBlock() public view returns(uint256) {
return uintStorage[keccak256("deployedAtBlock")];
}
function setValidatorCount(uint256 _validatorCount) private {
uintStorage[keccak256(abi.encodePacked("validatorCount"))] = _validatorCount;
}

View File

@ -18,6 +18,7 @@ contract('BridgeValidators', async (accounts) => {
false.should.be.equal(await bridgeValidators.isValidator(accounts[1]))
false.should.be.equal(await bridgeValidators.isInitialized())
'0'.should.be.bignumber.equal(await bridgeValidators.requiredSignatures())
'0'.should.be.bignumber.equal(await bridgeValidators.deployedAtBlock())
await bridgeValidators.initialize(3, [accounts[0], accounts[1]], accounts[2], {from: accounts[2]}).should.be.rejectedWith(ERROR_MSG)
await bridgeValidators.initialize(2, [accounts[0], accounts[1]], accounts[2], {from: accounts[2]}).should.be.fulfilled;
await bridgeValidators.initialize(2, [accounts[0], accounts[1]], accounts[2], {from: accounts[2]}).should.be.rejectedWith(ERROR_MSG);
@ -26,7 +27,8 @@ contract('BridgeValidators', async (accounts) => {
true.should.be.equal(await bridgeValidators.isValidator(accounts[0]))
true.should.be.equal(await bridgeValidators.isValidator(accounts[1]))
accounts[2].should.be.equal(await bridgeValidators.owner())
'2'.should.be.bignumber.equal(await bridgeValidators.validatorCount())
'2'.should.be.bignumber.equal(await bridgeValidators.validatorCount());
(await bridgeValidators.deployedAtBlock()).should.be.bignumber.above(0)
})
})