Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 401
chore: add multisig support to upgrade ServiceManager#516
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
8e1788c3ef4b04d18e3c6e9189439f17a94666767bc25f1125362dc8c411f0082703acd54d4a1d0b3bcd14a6f5e2543c1384ebac14a6b98abbcd175c43ca455c6ca4f1593f979c3bb2a47cbee4a2b040c47369e427f53851924a2f01bd4e598517cd0c04cadc6c6aceFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| { | ||
| "chainInfo": { | ||
| "chainId": 11155111 | ||
| }, | ||
| "permissions" : { | ||
| "owner": "<owner_address>", | ||
| "aggregator": "<aggregator_address>", | ||
| "upgrader": "<upgrader_address>", | ||
| "churner": "<churner_address>", | ||
| "ejector": "<ejector_address>", | ||
| "deployer": "<deployer_address>", | ||
| "initalPausedStatus": 0 | ||
| }, | ||
| "minimumStakes": [ | ||
| 1 | ||
| ], | ||
| "strategyWeights": [ | ||
| [ | ||
| { | ||
| "0_strategy": "0x80528D6e9A2BAbFc766965E0E26d5aB08D9CFaF9", | ||
| "1_multiplier": 1e+18 | ||
| } | ||
| ] | ||
| ], | ||
| "operatorSetParams": [ | ||
| { | ||
| "0_maxOperatorCount": 200, | ||
| "1_kickBIPsOfOperatorStake": 11000, | ||
| "2_kickBIPsOfTotalStake": 50 | ||
| } | ||
| ], | ||
| "uri": "" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| { | ||
| "address": { | ||
| "batcherWallet": "<batcher_wallet_address>", | ||
| "alignedLayerServiceManager": "<aligned_layer_service_manager_address>" | ||
| }, | ||
| "permissions": { | ||
| "owner": "<owner_address>" | ||
| }, | ||
| "eip712": { | ||
| "noncedVerificationDataTypeHash": "0x41817b5c5b0c3dcda70ccb43ba175fdcd7e586f9e0484422a2c6bba678fdf4a3" | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| { | ||
| "addresses": { | ||
| "alignedLayerProxyAdmin": "0x9c50f5054784d6c5523C79c3aFA82E3184430CaC", | ||
| "alignedLayerServiceManager": "0xD0fAb108d175765f70Dd2e929b74ec107db6E0e8", | ||
| "alignedLayerServiceManagerImplementation": "0xbC86427A646540cF78c92F6C7432716460b97a06", | ||
| "blsApkRegistry": "0x9A5B215027F85319957a3a92205BFc18529d9309", | ||
| "blsApkRegistryImplementation": "0xEAE702d667bD851C9cAa59e71b23765Bea04A5aF", | ||
| "indexRegistry": "0xD316A01F902d0fDF169a53AB22daB38c06c6E60E", | ||
| "indexRegistryImplementation": "0x8009D6A252a41bc8fb648F71F3aa78d08231221d", | ||
| "operatorStateRetriever": "0xc24023c7e43Dc6A407b1B961A6602ee6d5408A75", | ||
| "registryCoordinator": "0x9C04afc13D57608a867E61BD91a10d8689B24ff8", | ||
| "registryCoordinatorImplementation": "0xFc326289eF3d5ba5E525e27530329727831E834B", | ||
| "serviceManagerRouter": "0x074c28d7ff24c06ab747e08772ed582c3b7C887e", | ||
| "stakeRegistry": "0x1888568D57Cf6834d74ef62A78e7EF1ADbd55582", | ||
| "stakeRegistryImplementation": "0x05671b5B23d16B2e198729b9Ce94696780d384b9", | ||
| "batcherPaymentService": "0x4a40a9F0D29B62a2852ed893B18fAD9CfEcB14FA", | ||
| "batcherPaymentServiceImplementation": "0xc40562950D62e3DbFf881149cf07833Cd0A425A9" | ||
| }, | ||
| "chainInfo": { | ||
| "chainId": 11155111, | ||
| "deploymentBlock": 6833988 | ||
| }, | ||
| "permissions": { | ||
| "alignedLayerAggregator": "0x1380D03142156d8D9950b001A566dc5cc439dE81", | ||
| "alignedLayerChurner": "0x1380D03142156d8D9950b001A566dc5cc439dE81", | ||
| "alignedLayerEjector": "0x1380D03142156d8D9950b001A566dc5cc439dE81", | ||
| "alignedLayerOwner": "0x1380D03142156d8D9950b001A566dc5cc439dE81", | ||
| "alignedLayerUpgrader": "0x1380D03142156d8D9950b001A566dc5cc439dE81", | ||
| "pauserRegistry": "0xC2316E03d0871f667e75C62181089988Eb4DB7Db" | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| { | ||
| "addresses": { | ||
| "avsDirectory": "0x2f1F293185c7b57E1E8e07B95C9f04D33418854c", | ||
| "avsDirectoryImplementation": "0x6DC4C39E3e6FC3bdbb054C6Cf87FEf8E33DBBCa9", | ||
| "baseStrategyImplementation": "0x942CfD2F80f517D6e6129277b027750D01Aa3Eb1", | ||
| "beaconOracle": "0x0000000000000000000000000000000000000000", | ||
| "delayedWithdrawalRouter": "0x02eE8752d9d6ee1B366BD04d24Bbaa3547ABc0c1", | ||
| "delayedWithdrawalRouterImplementation": "0x5FC324E99fb6db1859225C3E53b2688ce7FbF5E1", | ||
| "delegationManager": "0x7F250FA1f844Ae88eAdF919ca3a95e327B639d8F", | ||
| "delegationManagerImplementation": "0x77E8329dc5290Ef8BA61A997132316a39f731968", | ||
| "eigenLayerPauserReg": "0xC2316E03d0871f667e75C62181089988Eb4DB7Db", | ||
| "eigenLayerProxyAdmin": "0x3b9b847F251260d6681E2dF937E84Ae4Db1191e5", | ||
| "eigenPodBeacon": "0x879Fce476F58b5691a6AF29C2895e9fDF956642C", | ||
| "eigenPodImplementation": "0x953F32aE91ec538eBAD2110b3276dEDe9a886519", | ||
| "eigenPodManager": "0x1c49661c978c587d98a4dF730CfBaAeE8836d813", | ||
| "eigenPodManagerImplementation": "0xE3A2b29e35E878f24bcf46b3d53004aBD5105d99", | ||
| "emptyContract": "0xCf334DbB9bEefC53e3e9Fa0feb7319B702155408", | ||
| "rewardsCoordinator": "0x420324e8834D2bfF217319D497DDB2B221dea46C", | ||
| "rewardsCoordinatorImplementation": "0xF2Fdf5cDBd262DAE8aCF77f85fc1A7546B5FBa3D", | ||
| "slasher": "0xF953eDdb64b624FcEbb133f3D991BA05B122bEC8", | ||
| "slasherImplementation": "0xB4Fe2669dA4ee0A67E292F1f09d2b83E07C0fb26", | ||
| "strategies": { | ||
| "MOCK": "0x3eb924d928c138898FC089328f840105969bD6a0" | ||
| }, | ||
| "strategyManager": "0xAcd358E6CCdE1634A1e80F143cF467Bf40fac4BA", | ||
| "strategyManagerImplementation": "0x7A7122D7a5194217Be6181c76484dCc10E8BFf83" | ||
| }, | ||
| "chainInfo": { | ||
| "chainId": 11155111, | ||
| "deploymentBlock": 6200286 | ||
| }, | ||
| "numStrategies": 1, | ||
| "parameters": { | ||
| "executorMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D", | ||
| "operationsMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D", | ||
| "pauserMultisig": "0x97aEC5F28181abe5d2aD40dBe7FbaEe014529b7D" | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,8 @@ | ||
| RPC_URL=<rpc_url> | ||
| PRIVATE_KEY=<private_key> | ||
| EXISTING_DEPLOYMENT_INFO_PATH=./script/output/holesky/Holesky_current_deployment.config.json | ||
| EXISTING_DEPLOYMENT_INFO_PATH=./script/output/holesky/eigenlayer_deployment_output.json | ||
| DEPLOY_CONFIG_PATH=./script/deploy/config/holesky/aligned.holesky.config.json | ||
| OUTPUT_PATH=./script/output/holesky/alignedlayer_deployment_output.json | ||
| ETHERSCAN_API_KEY=<etherscan_api_key> | ||
| BATCHER_PAYMENT_SERVICE_CONFIG_PATH=./script/deploy/config/holesky/batcher-payment-service.holesky.config.json | ||
| MULTISIG=<false|true> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,26 @@ | ||
| #!/bin/bash | ||
| if [ -z "$MULTISIG" ]; then | ||
| echo "Missing MULTISIG env variable" | ||
| exit 1 | ||
| fi | ||
| if [ -z "$OUTPUT_PATH" ]; then | ||
| echo "Missing OUTPUT_PATH env variable" | ||
| exit 1 | ||
| fi | ||
| if [ -z "$EXISTING_DEPLOYMENT_INFO_PATH" ]; then | ||
| echo "Missing EXISTING_DEPLOYMENT_INFO_PATH env variable" | ||
| exit 1 | ||
| fi | ||
| if [ -z "$RPC_URL" ]; then | ||
| echo "Missing RPC_URL env variable" | ||
| exit 1 | ||
| fi | ||
| if [ -z "$PRIVATE_KEY" ]; then | ||
| echo "Missing PRIVATE_KEY env variable" | ||
| exit 1 | ||
| fi | ||
| # cd to the directory of this script so that this can be run from anywhere | ||
| parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) | ||
| @@ -21,13 +42,24 @@ forge_output=$(forge script script/upgrade/AlignedLayerUpgrader.s.sol \ | ||
| echo "$forge_output" | ||
| # Extract the alignedLayerServiceManagerImplementation value from the output | ||
| aligned_layer_service_manager=$(echo "$forge_output" | awk '/0: address/ {print $3}') | ||
| new_aligned_layer_service_manager_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') | ||
| # Use the extracted value to replace the alignedLayerServiceManagerImplementation value in alignedlayer_deployment_output.json and save it to a temporary file | ||
| jq --arg new_aligned_layer_service_manager_implementation "$new_aligned_layer_service_manager_implementation" '.addresses.alignedLayerServiceManagerImplementation = $new_aligned_layer_service_manager_implementation' "script/output/holesky/alignedlayer_deployment_output.json" > "script/output/holesky/alignedlayer_deployment_output.temp.json" | ||
| jq --arg new_aligned_layer_service_manager_implementation "$new_aligned_layer_service_manager_implementation" '.addresses.alignedLayerServiceManagerImplementation = $new_aligned_layer_service_manager_implementation' $OUTPUT_PATH > "script/output/holesky/alignedlayer_deployment_output.temp.json" | ||
| # Replace the original file with the temporary file | ||
| mv "script/output/holesky/alignedlayer_deployment_output.temp.json" "script/output/holesky/alignedlayer_deployment_output.json" | ||
| mv "script/output/holesky/alignedlayer_deployment_output.temp.json" $OUTPUT_PATH | ||
| data=$(cast calldata "upgrade(address, address)" $aligned_layer_service_manager $new_aligned_layer_service_manager_implementation) | ||
| # Delete the temporary file | ||
| rm -f "script/output/holesky/alignedlayer_deployment_output.temp.json" | ||
| if [ "$MULTISIG" = false ]; then | ||
| echo "Executing upgrade transaction" | ||
| proxy_admin=$(jq -r '.addresses.alignedLayerProxyAdmin' $OUTPUT_PATH) | ||
JuArce marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| cast send $proxy_admin $data \ | ||
| --rpc-url $RPC_URL \ | ||
| --private-key $PRIVATE_KEY | ||
uri-99 marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| else | ||
| echo "You can propose the upgrade transaction with the multisig using this calldata" | ||
| echo $data | ||
| fi | ||
MarcosNicolau marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,10 @@ | ||
| #!/bin/bash | ||
| if [ -z "$MULTISIG" ]; then | ||
| echo "Missing MULTISIG env variable" | ||
| exit 1 | ||
| fi | ||
| # cd to the directory of this script so that this can be run from anywhere | ||
| parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) | ||
| # At this point we are in contracts/scripts | ||
| @@ -24,6 +29,7 @@ forge_output=$(forge script script/upgrade/BatcherPaymentServiceUpgrader.s.sol \ | ||
| echo "$forge_output" | ||
| # Extract the batcher payment service values from the output | ||
| batcher_payment_service_proxy=$(echo "$forge_output" | awk '/0: address/ {print $3}') | ||
| batcher_payment_service_implementation=$(echo "$forge_output" | awk '/1: address/ {print $3}') | ||
| # Use the extracted value to replace the batcher payment service values in alignedlayer_deployment_output.json and save it to a temporary file | ||
| @@ -35,4 +41,14 @@ mv "$OUTPUT_PATH.temp" $OUTPUT_PATH | ||
| # Delete the temporary file | ||
| rm -f "$OUTPUT_PATH.temp" | ||
| data=$(cast calldata "upgradeTo(address)" $batcher_payment_service_implementation) | ||
| if [ "$MULTISIG" = false ]; then | ||
| echo "Executing upgrade transaction" | ||
| cast send $batcher_payment_service_proxy $data \ | ||
| --rpc-url $RPC_URL \ | ||
| --private-key $PRIVATE_KEY | ||
| else | ||
| echo "You can propose the upgrade transaction with the multisig using this calldata" | ||
| echo $data | ||
uri-99 marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| fi | ||
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.