Skip to content

Commit

Permalink
update naming
Browse files Browse the repository at this point in the history
makes the following changes as appropriate, to reflect the updated governance architecture:
- 'communityMultisig' => 'executorMultisig' (for situations in which the executor multisig will now hold roles instead of the community multisig)
- add executorMultisig and timelock to config files
  • Loading branch information
ChaoticWalrus committed May 10, 2023
1 parent ab64a02 commit 5fcd549
Show file tree
Hide file tree
Showing 12 changed files with 81 additions and 37 deletions.
2 changes: 1 addition & 1 deletion config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
goerli:
CHAIN_ID: 5
COMMUNITY_MULTISIG: "0x37bAFb55BC02056c5fD891DFa503ee84a97d89bF"
EXECUTOR_MULTISIG: "0x3d9C2c2B40d890ad53E27947402e977155CD2808"
FOUNDRY_FUZZ_RUNS: 1
local:
CHAIN_ID: 31337
Expand Down
42 changes: 21 additions & 21 deletions script/M1_Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ contract Deployer_M1 is Script, Test {

EmptyContract public emptyContract;

address communityMultisig;
address executorMultisig;
address teamMultisig;

// the ETH2 deposit contract -- if not on mainnet, we deploy a mock as stand-in
Expand Down Expand Up @@ -110,13 +110,13 @@ contract Deployer_M1 is Script, Test {
// tokens to deploy strategies for
StrategyTokenAndName[] memory strategyTokensAndNames;

communityMultisig = stdJson.readAddress(config_data, ".multisig_addresses.communityMultisig");
executorMultisig = stdJson.readAddress(config_data, ".multisig_addresses.executorMultisig");
teamMultisig = stdJson.readAddress(config_data, ".multisig_addresses.teamMultisig");
// load token list
bytes memory strategyTokensAndNamesRaw = stdJson.parseRaw(config_data, ".strategies");
strategyTokensAndNames = abi.decode(strategyTokensAndNamesRaw, (StrategyTokenAndName[]));

require(communityMultisig != address(0), "communityMultisig address not configured correctly!");
require(executorMultisig != address(0), "executorMultisig address not configured correctly!");
require(teamMultisig != address(0), "teamMultisig address not configured correctly!");

// START RECORDING TRANSACTIONS FOR DEPLOYMENT
Expand All @@ -126,7 +126,7 @@ contract Deployer_M1 is Script, Test {
eigenLayerProxyAdmin = new ProxyAdmin();

//deploy pauser registry
eigenLayerPauserReg = new PauserRegistry(teamMultisig, communityMultisig);
eigenLayerPauserReg = new PauserRegistry(teamMultisig, executorMultisig);

/**
* First, deploy upgradeable proxy contracts that **will point** to the implementations. Since the implementation contracts are
Expand Down Expand Up @@ -178,7 +178,7 @@ contract Deployer_M1 is Script, Test {
address(delegationImplementation),
abi.encodeWithSelector(
DelegationManager.initialize.selector,
communityMultisig,
executorMultisig,
eigenLayerPauserReg,
DELEGATION_INIT_PAUSED_STATUS
)
Expand All @@ -188,7 +188,7 @@ contract Deployer_M1 is Script, Test {
address(strategyManagerImplementation),
abi.encodeWithSelector(
StrategyManager.initialize.selector,
communityMultisig,
executorMultisig,
teamMultisig,
eigenLayerPauserReg,
STRATEGY_MANAGER_INIT_PAUSED_STATUS,
Expand All @@ -200,7 +200,7 @@ contract Deployer_M1 is Script, Test {
address(slasherImplementation),
abi.encodeWithSelector(
Slasher.initialize.selector,
communityMultisig,
executorMultisig,
eigenLayerPauserReg,
SLASHER_INIT_PAUSED_STATUS
)
Expand All @@ -211,7 +211,7 @@ contract Deployer_M1 is Script, Test {
abi.encodeWithSelector(
EigenPodManager.initialize.selector,
IBeaconChainOracle(address(0)),
communityMultisig,
executorMultisig,
eigenLayerPauserReg,
EIGENPOD_MANAGER_INIT_PAUSED_STATUS
)
Expand All @@ -220,7 +220,7 @@ contract Deployer_M1 is Script, Test {
TransparentUpgradeableProxy(payable(address(delayedWithdrawalRouter))),
address(delayedWithdrawalRouterImplementation),
abi.encodeWithSelector(DelayedWithdrawalRouter.initialize.selector,
communityMultisig,
executorMultisig,
eigenLayerPauserReg,
DELAYED_WITHDRAWAL_ROUTER_INIT_PAUSED_STATUS,
DELAYED_WITHDRAWAL_ROUTER_INIT_WITHDRAWAL_DELAY_BLOCKS)
Expand Down Expand Up @@ -257,8 +257,8 @@ contract Deployer_M1 is Script, Test {
);
}

eigenLayerProxyAdmin.transferOwnership(communityMultisig);
eigenPodBeacon.transferOwnership(communityMultisig);
eigenLayerProxyAdmin.transferOwnership(executorMultisig);
eigenPodBeacon.transferOwnership(executorMultisig);

// STOP RECORDING TRANSACTIONS FOR DEPLOYMENT
vm.stopBroadcast();
Expand Down Expand Up @@ -317,7 +317,7 @@ contract Deployer_M1 is Script, Test {
string memory deployed_addresses_output = vm.serializeString(deployed_addresses, "strategies", deployed_strategies_output);

string memory parameters = "parameters";
vm.serializeAddress(parameters, "communityMultisig", communityMultisig);
vm.serializeAddress(parameters, "executorMultisig", executorMultisig);
string memory parameters_output = vm.serializeAddress(parameters, "teamMultisig", teamMultisig);

string memory chain_info = "chainInfo";
Expand Down Expand Up @@ -385,14 +385,14 @@ contract Deployer_M1 is Script, Test {
}

function _verifyInitialOwners() internal view {
require(strategyManager.owner() == communityMultisig, "strategyManager: owner not set correctly");
require(delegation.owner() == communityMultisig, "delegation: owner not set correctly");
require(slasher.owner() == communityMultisig, "slasher: owner not set correctly");
require(eigenPodManager.owner() == communityMultisig, "delegation: owner not set correctly");

require(eigenLayerProxyAdmin.owner() == communityMultisig, "eigenLayerProxyAdmin: owner not set correctly");
require(eigenPodBeacon.owner() == communityMultisig, "eigenPodBeacon: owner not set correctly");
require(delayedWithdrawalRouter.owner() == communityMultisig, "delayedWithdrawalRouter: owner not set correctly");
require(strategyManager.owner() == executorMultisig, "strategyManager: owner not set correctly");
require(delegation.owner() == executorMultisig, "delegation: owner not set correctly");
require(slasher.owner() == executorMultisig, "slasher: owner not set correctly");
require(eigenPodManager.owner() == executorMultisig, "delegation: owner not set correctly");

require(eigenLayerProxyAdmin.owner() == executorMultisig, "eigenLayerProxyAdmin: owner not set correctly");
require(eigenPodBeacon.owner() == executorMultisig, "eigenPodBeacon: owner not set correctly");
require(delayedWithdrawalRouter.owner() == executorMultisig, "delayedWithdrawalRouter: owner not set correctly");
}

function _checkPauserInitializations() internal view {
Expand All @@ -403,7 +403,7 @@ contract Deployer_M1 is Script, Test {
require(delayedWithdrawalRouter.pauserRegistry() == eigenLayerPauserReg, "delayedWithdrawalRouter: pauser registry not set correctly");

require(eigenLayerPauserReg.pauser() == teamMultisig, "pauserRegistry: pauser not set correctly");
require(eigenLayerPauserReg.unpauser() == communityMultisig, "pauserRegistry: unpauser not set correctly");
require(eigenLayerPauserReg.unpauser() == executorMultisig, "pauserRegistry: unpauser not set correctly");

for (uint256 i = 0; i < deployedStrategyArray.length; ++i) {
require(deployedStrategyArray[i].pauserRegistry() == eigenLayerPauserReg, "StrategyBase: pauser registry not set correctly");
Expand Down
4 changes: 3 additions & 1 deletion script/M1_deploy.config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"multisig_addresses": {
"communityMultisig": "0x37bAFb55BC02056c5fD891DFa503ee84a97d89bF",
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6"
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6",
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"timelock": "0xA7e72a0564ebf25Fa082Fc27020225edeAF1796E"
},
"strategies": [
{
Expand Down
4 changes: 2 additions & 2 deletions script/M2_Deploy.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contract Deployer_M2 is ExistingDeploymentParser {
uint256 configChainId = stdJson.readUint(config_data, ".chainInfo.chainId");
require(configChainId == currentChainId, "You are on the wrong chain for this config");

address oracleInitialOwner = communityMultisig;
address oracleInitialOwner = executorMultisig;
uint256 initialThreshold = stdJson.readUint(config_data, ".oracleInitialization.threshold");
bytes memory oracleSignerListRaw = stdJson.parseRaw(config_data, ".oracleInitialization.signers");
address[] memory initialOracleSigners = abi.decode(oracleSignerListRaw, (address[]));
Expand All @@ -50,7 +50,7 @@ contract Deployer_M2 is ExistingDeploymentParser {
vm.stopBroadcast();

// additional check for correctness of deployment
require(beaconChainOracle.owner() == communityMultisig, "beaconChainOracle owner not set correctly");
require(beaconChainOracle.owner() == executorMultisig, "beaconChainOracle owner not set correctly");

// WRITE JSON DATA
string memory parent_object = "parent object";
Expand Down
4 changes: 3 additions & 1 deletion script/configs/M1_deploy_devnet.config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"multisig_addresses": {
"communityMultisig": "0xB499Be0490Fe8e9382101b8a747BCC88e346f84b",
"teamMultisig": "0xB499Be0490Fe8e9382101b8a747BCC88e346f84b"
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6",
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"timelock": "0xA7e72a0564ebf25Fa082Fc27020225edeAF1796E"
},
"strategies": [
{
Expand Down
4 changes: 3 additions & 1 deletion script/configs/M1_deploy_goerli.config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"multisig_addresses": {
"communityMultisig": "0x37bAFb55BC02056c5fD891DFa503ee84a97d89bF",
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6"
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6",
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"timelock": "0xA7e72a0564ebf25Fa082Fc27020225edeAF1796E"
},
"strategies": [
{
Expand Down
4 changes: 3 additions & 1 deletion script/output/M1_MOCK_deployment_data.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
},
"parameters": {
"communityMultisig": "0x37bAFb55BC02056c5fD891DFa503ee84a97d89bF",
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6"
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6",
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"timelock": "0xA7e72a0564ebf25Fa082Fc27020225edeAF1796E"
}
}
34 changes: 34 additions & 0 deletions script/output/M1_deployment_data.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"addresses": {
"baseStrategyImplementation": "0x5207CfA0166E8de0FCdFd78B4d17b68587bE306d",
"delayedWithdrawalRouter": "0xD718d5A27a29FF1cD22403426084bA0d479869a0",
"delayedWithdrawalRouterImplementation": "0x1c23A6d89F95ef3148BCDA8E242cAb145bf9c0E4",
"delegation": "0xDB8cFf278adCCF9E9b5da745B44E754fC4EE3C76",
"delegationImplementation": "0xd21060559c9beb54fC07aFd6151aDf6cFCDDCAeB",
"eigenLayerPauserReg": "0xA8452Ec99ce0C64f20701dB7dD3abDb607c00496",
"eigenLayerProxyAdmin": "0x90193C961A926261B756D1E5bb255e67ff9498A1",
"eigenPodBeacon": "0x416C42991d05b31E9A6dC209e91AD22b79D87Ae6",
"eigenPodImplementation": "0x4f559F30f5eB88D635FDe1548C4267DB8FaB0351",
"eigenPodManager": "0xDEb1E9a6Be7Baf84208BB6E10aC9F9bbE1D70809",
"eigenPodManagerImplementation": "0x8B71b41D4dBEb2b6821d44692d3fACAAf77480Bb",
"emptyContract": "0xBb2180ebd78ce97360503434eD37fcf4a1Df61c3",
"slasher": "0x62c20Aa1e0272312BC100b4e23B4DC1Ed96dD7D1",
"slasherImplementation": "0x978e3286EB805934215a88694d80b09aDed68D90",
"strategies": {
"WETH": "0x39Af23E00F1e662025aA01b0cEdA19542B78DF99",
"rETH": "0xd6EAF4c146261653EE059077B78ED088Add54309",
"tsETH": "0x970670459734a83899773A0fd45941B5afC1200e",
"wstETH": "0xEF179756ea6525AFade217cA5aB0b1b5CfE0fd92"
},
"strategyManager": "0x50EEf481cae4250d252Ae577A09bF514f224C6C4",
"strategyManagerImplementation": "0x4C52a6277b1B84121b3072C0c92b6Be0b7CC10F1"
},
"chainInfo": {
"chainId": 31337,
"deploymentBlock": 1
},
"parameters": {
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6"
}
}
4 changes: 3 additions & 1 deletion script/output/M1_deployment_goerli_2023_3_23.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
},
"parameters": {
"communityMultisig": "0x37bAFb55BC02056c5fD891DFa503ee84a97d89bF",
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6"
"teamMultisig": "0x040353E9d057689b77DF275c07FFe1A46b98a4a6",
"executorMultisig": "0x3d9C2c2B40d890ad53E27947402e977155CD2808",
"timelock": "0xA7e72a0564ebf25Fa082Fc27020225edeAF1796E"
}
}
4 changes: 2 additions & 2 deletions script/utils/ExistingDeploymentParser.sol
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ contract ExistingDeploymentParser is Script, Test {

EmptyContract public emptyContract;

address communityMultisig;
address executorMultisig;
address teamMultisig;

// strategies deployed
Expand All @@ -62,7 +62,7 @@ contract ExistingDeploymentParser is Script, Test {
require(configChainId == currentChainId, "You are on the wrong chain for this config");

// read all of the deployed addresses
communityMultisig = stdJson.readAddress(existingDeploymentData, ".parameters.communityMultisig");
executorMultisig = stdJson.readAddress(existingDeploymentData, ".parameters.executorMultisig");
teamMultisig = stdJson.readAddress(existingDeploymentData, ".parameters.teamMultisig");

eigenLayerProxyAdmin = ProxyAdmin(stdJson.readAddress(existingDeploymentData, ".addresses.eigenLayerProxyAdmin"));
Expand Down
6 changes: 3 additions & 3 deletions source-env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ CONFIG_FILE="config.yml"
case $1 in
goerli)
CHAIN_ID=$(yq e '.goerli.CHAIN_ID' $CONFIG_FILE)
COMMUNITY_MULTISIG=$(yq e '.goerli.COMMUNITY_MULTISIG' $CONFIG_FILE)
EXECUTOR_MULTISIG=$(yq e '.goerli.EXECUTOR_MULTISIG' $CONFIG_FILE)
FOUNDRY_FUZZ_RUNS=$(yq e '.goerli.FOUNDRY_FUZZ_RUNS' $CONFIG_FILE)
;;
local)
Expand All @@ -34,11 +34,11 @@ esac

# Export environment variables
export CHAIN_ID=$CHAIN_ID
export COMMUNITY_MULTISIG=$COMMUNITY_MULTISIG
export EXECUTOR_MULTISIG=$EXECUTOR_MULTISIG
export FOUNDRY_FUZZ_RUNS=$FOUNDRY_FUZZ_RUNS

# Print environment variables
echo "Environment variables set:"
echo "CHAIN_ID: $CHAIN_ID"
echo "COMMUNITY_MULTISIG: $COMMUNITY_MULTISIG"
echo "EXECUTOR_MULTISIG: $EXECUTOR_MULTISIG"
echo "FOUNDRY_FUZZ_RUNS: $FOUNDRY_FUZZ_RUNS"
6 changes: 3 additions & 3 deletions src/test/EigenLayerDeployer.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ contract EigenLayerDeployer is Operators {
address beaconChainOracleAddress;
address emptyContractAddress;
address teamMultisig;
address communityMultisig;
address executorMultisig;


uint256 public initialBeaconChainOracleThreshold = 3;
Expand Down Expand Up @@ -146,7 +146,7 @@ contract EigenLayerDeployer is Operators {
function _deployEigenLayerContractsGoerli() internal {
_setAddresses(goerliDeploymentConfig);
pauser = teamMultisig;
unpauser = communityMultisig;
unpauser = executorMultisig;
// deploy proxy admin for ability to upgrade proxy contracts
eigenLayerProxyAdmin = ProxyAdmin(eigenLayerProxyAdminAddress);

Expand Down Expand Up @@ -364,7 +364,7 @@ contract EigenLayerDeployer is Operators {
delayedWithdrawalRouterAddress = stdJson.readAddress(config, ".addresses.delayedWithdrawalRouter");
emptyContractAddress = stdJson.readAddress(config, ".addresses.emptyContract");
teamMultisig = stdJson.readAddress(config, ".parameters.teamMultisig");
communityMultisig = stdJson.readAddress(config, ".parameters.communityMultisig");
executorMultisig = stdJson.readAddress(config, ".parameters.executorMultisig");
}

}

0 comments on commit 5fcd549

Please sign in to comment.