Skip to content

Commit

Permalink
make contracts upgradeable
Browse files Browse the repository at this point in the history
  • Loading branch information
rstormsf committed Mar 14, 2018
1 parent 5eaa480 commit fb28fd0
Show file tree
Hide file tree
Showing 15 changed files with 1,133 additions and 513 deletions.
10 changes: 0 additions & 10 deletions contracts/BridgeDeploymentAddressStorage.sol

This file was deleted.

165 changes: 0 additions & 165 deletions contracts/ForeignBridge.sol

This file was deleted.

75 changes: 0 additions & 75 deletions contracts/HomeBridge.sol

This file was deleted.

22 changes: 0 additions & 22 deletions contracts/Validatable.sol

This file was deleted.

2 changes: 1 addition & 1 deletion contracts/libraries/Helpers.sol
Expand Up @@ -38,7 +38,7 @@ library Helpers {
bytes32[] _rs,
bytes32[] _ss,
IBridgeValidators _validatorContract) internal view returns (bool) {
uint8 requiredSignatures = _validatorContract.requiredSignatures();
uint256 requiredSignatures = _validatorContract.requiredSignatures();
require(_vs.length >= requiredSignatures);
bytes32 hash = MessageSigning.hashMessage(_message);
address[] memory encounteredAddresses = new address[](requiredSignatures);
Expand Down
14 changes: 12 additions & 2 deletions contracts/upgradeable_contracts/U_BridgeValidators.sol
Expand Up @@ -11,15 +11,17 @@ contract BridgeValidators is IBridgeValidators, Ownable, OwnedUpgradeabilityStor
event ValidatorAdded (address validator);
event ValidatorRemoved (address validator);

function BridgeValidators(uint8 _requiredSignatures, address[] _initialValidators) public Ownable() {
function initialize(uint256 _requiredSignatures, address[] _initialValidators, address _owner) public {
require(!isInitialized());
setOwner(_owner);
require(_requiredSignatures != 0);
require(_initialValidators.length >= _requiredSignatures);
setValidatorCount(_initialValidators.length);
for (uint i = 0; i < _initialValidators.length; i++) {
require(!isValidator(_initialValidators[i]) && _initialValidators[i] != address(0));
addValidator(_initialValidators[i]);
}
setRequiredSignatures(_requiredSignatures);
setInitialize(true);
}

function addValidator(address _validator) public onlyOwner {
Expand Down Expand Up @@ -57,11 +59,19 @@ contract BridgeValidators is IBridgeValidators, Ownable, OwnedUpgradeabilityStor
return validators(_validator) == true;
}

function isInitialized() public view returns(bool) {
return boolStorage[keccak256("isInitialized")];
}

function setValidatorCount(uint256 _validatorCount) private {
uintStorage[keccak256("validatorCount")] = _validatorCount;
}

function setValidator(address _validator, bool _status) private {
boolStorage[keccak256("validators", _validator)] = _status;
}

function setInitialize(bool _status) private {
boolStorage[keccak256("isInitialized")] = _status;
}
}

0 comments on commit fb28fd0

Please sign in to comment.