Skip to content

Commit

Permalink
Accept admin using methods not files (#568)
Browse files Browse the repository at this point in the history
Signed-off-by: Danil <[email protected]>
Co-authored-by: Vlad Bochok <[email protected]>
  • Loading branch information
Deniallugo and vladbochok committed Jul 4, 2024
1 parent 62408fc commit f4ae6a1
Showing 1 changed file with 8 additions and 29 deletions.
37 changes: 8 additions & 29 deletions l1-contracts/deploy-scripts/AcceptAdmin.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,32 @@
pragma solidity ^0.8.0;

import {Script} from "forge-std/Script.sol";
import {stdToml} from "forge-std/StdToml.sol";

import {Ownable2Step} from "@openzeppelin/contracts/access/Ownable2Step.sol";
import {IZkSyncHyperchain} from "contracts/state-transition/chain-interfaces/IZkSyncHyperchain.sol";
import {Utils} from "./Utils.sol";

contract AcceptAdmin is Script {
using stdToml for string;

struct Config {
address admin;
address governor;
}

Config config;

function initConfig() public {
string memory root = vm.projectRoot();
string memory path = string.concat(root, "/script-config/config-accept-admin.toml");
string memory toml = vm.readFile(path);
config.admin = toml.readAddress("$.target_addr");
config.governor = toml.readAddress("$.governor");
}

// This function should be called by the owner to accept the admin role
function acceptOwner() public {
initConfig();

Ownable2Step adminContract = Ownable2Step(config.admin);
function acceptOwner(address governor, address target) public {
Ownable2Step adminContract = Ownable2Step(target);
Utils.executeUpgrade({
_governor: config.governor,
_governor: governor,
_salt: bytes32(0),
_target: config.admin,
_target: target,
_data: abi.encodeCall(adminContract.acceptOwnership, ()),
_value: 0,
_delay: 0
});
}

// This function should be called by the owner to accept the admin role
function acceptAdmin() public {
initConfig();
IZkSyncHyperchain adminContract = IZkSyncHyperchain(config.admin);
function acceptAdmin(address governor, address target) public {
IZkSyncHyperchain adminContract = IZkSyncHyperchain(target);
Utils.executeUpgrade({
_governor: config.governor,
_governor: governor,
_salt: bytes32(0),
_target: config.admin,
_target: target,
_data: abi.encodeCall(adminContract.acceptAdmin, ()),
_value: 0,
_delay: 0
Expand Down

0 comments on commit f4ae6a1

Please sign in to comment.