| 123456789101112131415161718192021222324252627282930313233343536 |
- // contracts/Implementation.sol
- // SPDX-License-Identifier: Apache 2
- pragma solidity ^0.8.0;
- pragma experimental ABIEncoderV2;
- import "./Governance.sol";
- import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";
- contract Setup is Setters, ERC1967Upgrade {
- function setup(
- address implementation,
- address[] memory initialGuardians,
- uint16 chainId,
- uint16 governanceChainId,
- bytes32 governanceContract
- ) public {
- require(initialGuardians.length > 0, "no guardians specified");
- Structs.GuardianSet memory initialGuardianSet = Structs.GuardianSet({
- keys : initialGuardians,
- expirationTime : 0
- });
- storeGuardianSet(initialGuardianSet, 0);
- // initial guardian set index is 0, which is the default value of the storage slot anyways
- setChainId(chainId);
- setGovernanceChainId(governanceChainId);
- setGovernanceContract(governanceContract);
- _upgradeTo(implementation);
- }
- }
|