Skip to content
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

feat: Slashing UAM #248

Merged
merged 97 commits into from
Feb 6, 2025
Merged
Changes from 1 commit
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
eacb771
optimizer = true, update rev for middleware
Jan 23, 2025
dc8e51d
fix:scripts
Jan 24, 2025
e952a24
fix dump state, bindings wip , register operator wip
Jan 26, 2025
98107cd
chore:update middleware rev
Jan 26, 2025
db82d62
fix:script and update bindings
Jan 26, 2025
000d6e9
fix register to operator sets wip
Jan 27, 2025
0e40ff0
fix: test_register_for_operator_sets
Jan 27, 2025
85af638
fix rpc url
Jan 27, 2025
7f114f5
fix:bls_agg_test import
Jan 27, 2025
9c32c7b
lint
Jan 27, 2025
f3c1af8
lint
Jan 27, 2025
13dac7d
lint
Jan 27, 2025
6c97f1c
remove usize
Jan 27, 2025
505791e
add separate middleware submodule for m2 quorum
Jan 28, 2025
96cff33
additional script m2 quorums wip
Jan 28, 2025
7e46922
m2 and slashing scripts fix wip
Jan 29, 2025
5284a39
fix m2 state
Jan 29, 2025
bc10726
separate state json files for m2 and operator sets
Jan 29, 2025
9896e9b
2 seperate contract dirs , delete submodules
Jan 30, 2025
ac269cf
forge install: forge-std
Jan 30, 2025
00df42c
add forge-std in m2
Jan 30, 2025
512e776
forge install: eigenlayer-middleware
Jan 30, 2025
8752b6b
forge install: forge-std
Jan 30, 2025
b082270
forge install: eigenlayer-middleware
Jan 30, 2025
e118cb7
middleware submodule in operator set contracts
Jan 30, 2025
33872a4
fix:m2 state and scripts
Jan 30, 2025
593f9ba
wip operator sets script fix
Jan 30, 2025
eb7a79f
delete submodule for now
Jan 30, 2025
eeb1fb7
forge install: eigenlayer-middleware
Jan 30, 2025
240fe98
fix:operator sets script and state
Jan 30, 2025
a93d6a5
modify elwriter to take allocation manager and permission controller …
Jan 30, 2025
8825d66
fix compile err
Jan 30, 2025
10051ec
remove unused container
Jan 30, 2025
078f5ee
fix:clippy
Jan 30, 2025
63ee4f0
fix anvil state path
Jan 30, 2025
212a113
ignore 2 test for now
Jan 30, 2025
09e9984
fix m2 state container initialization
Jan 30, 2025
88e305e
fix m2 state container
Jan 30, 2025
d9e0fad
fix anvil state port
Jan 30, 2025
19858c7
fix state json path
Jan 30, 2025
4e52d6b
fix anvil
Jan 30, 2025
35bb8e6
--port 8546
Jan 30, 2025
3394830
fix :allocation manager set to 0 in regisrtry, update state
Jan 31, 2025
058c2eb
remove ignore from tests ,lint
Jan 31, 2025
04528e7
lint
Jan 31, 2025
52fb82d
add blssignature checker in service manager in operator sets dir
Jan 31, 2025
1037092
different mine block function for operator sets
Jan 31, 2025
b85eabd
fix test_register_and_update_operator
Jan 31, 2025
27ee154
fix compile
Jan 31, 2025
22b4862
fix:test_set_allocation_delay
Jan 31, 2025
c84e366
fix compile
Jan 31, 2025
1bf47e1
fix:test_transaction_methods
Jan 31, 2025
a4ad403
ignore test_contract_call
Jan 31, 2025
3429ea0
fix : test_bls_agg , ignore other bls agg tests for now
Feb 3, 2025
461300b
fix:test_register_for_operator_sets
Feb 3, 2025
a18e887
add mine_anvil_blocks_operator_set in test_bls_agg
Feb 3, 2025
060060f
ignore 3 more tests for now
Feb 3, 2025
7afdbdc
add rewardsv2 and slashing binding
Feb 3, 2025
bd0ed05
fix bls_agg tests , pending readd container and cleanup
Feb 3, 2025
663bf5d
bls agg tests
Feb 4, 2025
4ff2b81
clippy
Feb 4, 2025
bc06e33
clippy
Feb 4, 2025
488f127
clippy
Feb 4, 2025
d7ae25b
clippy
Feb 4, 2025
73c633b
test_bls_m2 fix
Feb 4, 2025
945cb66
remove ignore from operatorsinfo tests , use m2 state
Feb 4, 2025
975617e
clippy
Feb 4, 2025
090a5e8
fix:operatorsinfo tests
Feb 4, 2025
1dbab59
Merge remote-tracking branch 'origin/dev' into nova/slashing_uam
supernovahs Feb 5, 2025
eacfba0
fix conflicts errors wip
supernovahs Feb 5, 2025
537d94f
fix: compile issues from merge conflict
supernovahs Feb 5, 2025
82db0b8
fix : bls_agg_test , typo
supernovahs Feb 6, 2025
39d891e
remove unwrap in allocation_manager
supernovahs Feb 6, 2025
4350cb7
use ok_or in error handling
supernovahs Feb 6, 2025
665dba8
use None in get_operator_info example
supernovahs Feb 6, 2025
f1aca2f
remove explicit type in set_allocation_delay
supernovahs Feb 6, 2025
7f43300
generating anvil state readme
supernovahs Feb 6, 2025
4c44a2d
fix:state file name
supernovahs Feb 6, 2025
e524213
bindings command fix wip
supernovahs Feb 6, 2025
1a84a3d
fix bindings
supernovahs Feb 6, 2025
535b9a6
fix: ci bindings_host
supernovahs Feb 6, 2025
299dec6
fix : anvil dump ci
supernovahs Feb 6, 2025
1391cca
fix: bindings.patch
supernovahs Feb 6, 2025
d8a99fa
fix dump state in ci
supernovahs Feb 6, 2025
d039419
wip patch
supernovahs Feb 6, 2025
29f5cab
regenerate bindings
supernovahs Feb 6, 2025
21cd926
patch
supernovahs Feb 6, 2025
52c0a4f
patch
supernovahs Feb 6, 2025
02ca2e2
fmt
supernovahs Feb 6, 2025
f6cb49a
copy-env in dump state
supernovahs Feb 6, 2025
633dbf7
add a small changelog for now
supernovahs Feb 6, 2025
0429b61
clippy
supernovahs Feb 6, 2025
1861bd9
remove commented script
supernovahs Feb 6, 2025
279959b
fix foundry project ci
supernovahs Feb 6, 2025
4379616
forge fmt
supernovahs Feb 6, 2025
1925f78
forge ci for both coontracts
supernovahs Feb 6, 2025
99ca3e7
update bindings
supernovahs Feb 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix dump state, bindings wip , register operator wip
supernovahs committed Jan 26, 2025

Verified

This commit was signed with the committer’s verified signature.
scala-steward Scala Steward
commit e952a24e100fa3798ab9b837ac5681e7a309e0a7
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -52,7 +52,7 @@ SDK_CONTRACTS_ARGS:=$(patsubst %, --select '^%$$', $(shell echo $(SDK_CONTRACTS)


### Middleware bindings ###
MIDDLEWARE_CONTRACTS:="RegistryCoordinator IndexRegistry OperatorStateRetriever StakeRegistry BLSApkRegistry IBLSSignatureChecker ServiceManagerBase IERC20"
MIDDLEWARE_CONTRACTS:="RegistryCoordinator IndexRegistry OperatorStateRetriever StakeRegistry BLSApkRegistry IBLSSignatureChecker ServiceManagerBase IERC20 SlashingRegistryCoordinator"
MIDDLEWARE_CONTRACTS_LOCATION:=$(SDK_CONTRACTS_LOCATION)/lib/eigenlayer-middleware
MIDDLEWARE_BINDINGS_PATH:=crates/utils/src/middleware
# The echo is to remove quotes, and the patsubst to make the regex match the full text only
1 change: 0 additions & 1 deletion crates/chainio/clients/elcontracts/src/lib.rs
Original file line number Diff line number Diff line change
@@ -45,7 +45,6 @@ pub(crate) mod test_utils {
pub const ANVIL_FIRST_ADDRESS: Address = address!("f39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
pub const ANVIL_FIRST_PRIVATE_KEY: &str =
"ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";

pub async fn build_el_chain_reader(http_endpoint: String) -> ELChainReader {
let delegation_manager_address =
get_delegation_manager_address(http_endpoint.clone()).await;
69 changes: 44 additions & 25 deletions crates/chainio/clients/elcontracts/src/writer.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
use std::usize;

use crate::error::ElContractsError;
use crate::reader::ELChainReader;
use alloy::primitives::{Address, Bytes, FixedBytes, TxHash, U256};
use alloy::sol_types::SolValue;
use alloy_primitives::U8;
use eigen_common::get_signer;
use eigen_crypto_bls::{
alloy_g1_point_to_g1_affine, convert_to_g1_point, convert_to_g2_point, BlsKeyPair,
};
pub use eigen_types::operator::Operator;
use eigen_utils::middleware::registrycoordinator::IRegistryCoordinator;
use eigen_utils::{
core::{
allocationmanager::{AllocationManager, IAllocationManagerTypes},
@@ -571,7 +575,7 @@ impl ELChainWriter {
/// # Errors
///
/// * `ElContractsError` - if the call to the contract fails.
pub async fn register_for_operator_sets(
pub async fn register_for_operator_sets_normal(
&self,
operator_address: Address,
avs_address: Address,
@@ -601,13 +605,20 @@ impl ELChainWriter {
let g2_pub_key_bn254 = convert_to_g2_point(bls_key_pair.public_key_g2().g2())
.map_err(|_| ElContractsError::BLSKeyPairInvalid)?;

let params = PubkeyRegistrationParams {
let pub_key_reg_params = PubkeyRegistrationParams {
pubkeyRegistrationSignature: alloy_g1_point_signed_msg,
pubkeyG1: g1_pub_key_bn254,
pubkeyG2: g2_pub_key_bn254,
};

let mut data: Bytes = (socket, params).abi_encode().into();
// let mut operator_kick_params = Vec::with_capacity(operator_set_ids.len());
// for (_i,operator_set_id) in operator_set_ids.iter().enumerate(){
// operator_kick_params[0] = OperatorKickParam{
// operator:operator_address,
// quorumNumber: u8::from_be_bytes(U8::from(*operator_set_id).to_be_bytes())
// }
// }
// let registration_type ;
let mut data: Bytes = (socket, pub_key_reg_params).abi_encode().into();

// The encoder is prepending 32 bytes to the data as if it was used in a dynamic function parameter.
// This is not used when decoding the bytes directly, so we need to remove it.
@@ -732,7 +743,7 @@ mod tests {
build_el_chain_reader, new_claim, new_test_writer, ANVIL_FIRST_ADDRESS,
ANVIL_FIRST_PRIVATE_KEY, OPERATOR_ADDRESS, OPERATOR_PRIVATE_KEY,
};
use alloy::providers::Provider;
use alloy::{providers::Provider, sol_types::SolCall};
use alloy_primitives::{address, aliases::U96, Address, U256};
use eigen_common::{get_provider, get_signer};
use eigen_crypto_bls::BlsKeyPair;
@@ -753,7 +764,7 @@ mod tests {
middleware::registrycoordinator::{
IRegistryCoordinator::OperatorSetParam, IStakeRegistry::StrategyParams,
RegistryCoordinator,
},
}, sdk::mockavsservicemanager::MockAvsServiceManager,
};
use std::str::FromStr;

@@ -1108,7 +1119,8 @@ mod tests {
let allocation_manager = AllocationManager::new(allocation_manager_addr, signer.clone());
let registry_coordinator_addr =
get_registry_coordinator_address(http_endpoint.to_string()).await;

let service_manager_address = get_service_manager_address(http_endpoint.to_string()).await;
dbg!(service_manager_address);
allocation_manager
.setAVSRegistrar(avs_address, registry_coordinator_addr)
.send()
@@ -1121,14 +1133,15 @@ mod tests {
// Enable operator sets in Registry Coordinator
let registry_coordinator =
RegistryCoordinator::new(registry_coordinator_addr, signer.clone());
registry_coordinator
let a = registry_coordinator
.enableOperatorSets()
.send()
.await
.unwrap()
.get_receipt()
.await
.unwrap();
.unwrap().transaction_hash;
dbg!(a);

// Create slashable quorum
let contract_registry_coordinator =
@@ -1139,6 +1152,12 @@ mod tests {
kickBIPsOfTotalStake: 1000,
};
let strategy = get_erc20_mock_strategy(http_endpoint.to_string()).await;

let service_manager = MockAvsServiceManager::new(service_manager_address, signer.clone());
let owner = service_manager.owner().call().await.unwrap()._0;
dbg!(owner);
let s = service_manager.setAppointee(registry_coordinator_addr, allocation_manager_addr, alloy_primitives::FixedBytes(AllocationManager::createOperatorSetsCall::SELECTOR)).send().await.unwrap().get_receipt().await.unwrap().transaction_hash;
dbg!(s);
let strategy_params = StrategyParams {
strategy,
multiplier: U96::from(1),
@@ -1152,7 +1171,7 @@ mod tests {
.await
.unwrap();

// Create operator set
// // Create operator set
let params = IAllocationManagerTypes::CreateSetParams {
operatorSetId: operator_set_id,
strategies: vec![strategy],
@@ -1169,8 +1188,8 @@ mod tests {

#[tokio::test]
async fn test_register_for_operator_sets() {
let (_container, http_endpoint, _ws_endpoint) = start_anvil_container().await;

// let (_container, http_endpoint, _ws_endpoint) = start_anvil_container().await;
let http_endpoint = "http://localhost:8545".to_string();
let avs_address = ANVIL_FIRST_ADDRESS;
let operator_set_id = 1;
create_operator_set(http_endpoint.as_str(), avs_address, operator_set_id).await;
@@ -1192,19 +1211,19 @@ mod tests {
.await
.unwrap();

let receipt = wait_transaction(&http_endpoint, tx_hash).await.unwrap();
assert!(receipt.status());

let operator_set = OperatorSet {
avs: avs_address,
id: operator_set_id,
};
let is_registered = el_chain_writer
.el_chain_reader
.is_operator_registered_with_operator_set(operator_addr, operator_set.clone())
.await
.unwrap();
assert!(is_registered);
// let receipt = wait_transaction(&http_endpoint, tx_hash).await.unwrap();
// assert!(receipt.status());

// let operator_set = OperatorSet {
// avs: avs_address,
// id: operator_set_id,
// };
// let is_registered = el_chain_writer
// .el_chain_reader
// .is_operator_registered_with_operator_set(operator_addr, operator_set.clone())
// .await
// .unwrap();
// assert!(is_registered);
}

#[tokio::test]

Large diffs are not rendered by default.

34 changes: 15 additions & 19 deletions crates/contracts/anvil/dump-state.sh
Original file line number Diff line number Diff line change
@@ -3,21 +3,6 @@
# Enable the script to exit immediately if a command exits with a non-zero status
set -o errexit -o nounset -o pipefail

# Define your cleanup function
clean_up() {
echo "Executing cleanup function..."
set +e
pkill -f anvil

# Check if the exit status is non-zero
exit_status=$?
if [ $exit_status -ne 0 ]; then
echo "Script exited due to set -e on line $1 with command '$2'. Exit status: $exit_status"
fi
}
# Use trap to call the clean_up function when the script exits
trap 'clean_up $LINENO "$BASH_COMMAND"' EXIT

# cd to the directory of this script so that this can be run from anywhere
anvil_dir=$(
cd "$(dirname "${BASH_SOURCE[0]}")"
@@ -28,10 +13,21 @@ root_dir=$(realpath $anvil_dir/../..)
set -a
source $anvil_dir/utils.sh
# we overwrite some variables here because should always deploy to anvil (localhost)
ETH_HTTP_URL=http://localhost:8545
RPC_URL=http://localhost:8545
DEPLOYER_PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
set +a

# start an empty anvil chain in the background and dump its state to a json file upon exit
start_anvil_docker "" $anvil_dir/dump_state.json
sleep 1
# # start an empty anvil chain in the background and dump its state to a json file upon exit
start_anvil_docker "" $anvil_dir/contracts_deployed_anvil_state.json
# sleep 1

CHAIN_ID=$(cast chain-id)

# Deploy Contracts
cd "$root_dir/contracts"
forge create src/ContractsRegistry.sol:ContractsRegistry --rpc-url $RPC_URL --private-key $DEPLOYER_PRIVATE_KEY --broadcast
forge script script/DeployEigenLayerCore.s.sol:DeployEigenlayerCore --rpc-url $RPC_URL --broadcast --slow

cd "$root_dir/contracts"
forge script script/DeployMockAvs.s.sol --rpc-url $RPC_URL --private-key $DEPLOYER_PRIVATE_KEY --broadcast --slow -vvv
forge script script/ContractsRegistry.s.sol --rpc-url $RPC_URL --private-key $DEPLOYER_PRIVATE_KEY --broadcast --slow
26,820 changes: 0 additions & 26,820 deletions crates/contracts/anvil/dump_state.json/state.json

This file was deleted.

12 changes: 6 additions & 6 deletions crates/contracts/anvil/utils.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

FOUNDRY_IMAGE=ghcr.io/foundry-rs/foundry:latest
FOUNDRY_IMAGE=ghcr.io/foundry-rs/foundry:stable@sha256:daeeaaf4383ee0cbfc9f31f079a04ffb0123e49e5f67f2a20b5ce1ac1959a4d6

set -e -o nounset

@@ -9,6 +9,7 @@ parent_path=$(
pwd -P
)


clean_up() {
# Check if the exit status is non-zero
exit_status=$?
@@ -30,11 +31,10 @@ start_anvil_docker() {
DUMP_STATE_ANVIL_ARG=$([[ -z $DUMP_STATE_FILE ]] && echo "" || echo "--dump-state /dump-state.json")

trap 'docker stop anvil 2>/dev/null || true' EXIT
docker run -d --name anvil -p 8545:8545 $LOAD_STATE_VOLUME_DOCKER_ARG $DUMP_STATE_VOLUME_DOCKER_ARG \
docker run --rm -d --name anvil -p 8545:8545 $LOAD_STATE_VOLUME_DOCKER_ARG $DUMP_STATE_VOLUME_DOCKER_ARG \
--entrypoint anvil \
$FOUNDRY_IMAGE \
$LOAD_STATE_ANVIL_ARG $DUMP_STATE_ANVIL_ARG --host 0.0.0.0 -v \
--base-fee 0
$LOAD_STATE_ANVIL_ARG $DUMP_STATE_ANVIL_ARG --host 0.0.0.0 \
--timestamp 0
sleep 2
docker attach anvil
}
}
1 change: 1 addition & 0 deletions crates/contracts/script/DeployEigenLayerCore.s.sol
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@ pragma solidity ^0.8.12;
import {Script} from "forge-std/Script.sol";
import {CoreDeploymentLib} from "./utils/CoreDeploymentLib.sol";
import {UpgradeableProxyLib} from "./utils/UpgradeableProxyLib.sol";
import {console2} from "forge-std/console2.sol";

contract DeployEigenlayerCore is Script {
using CoreDeploymentLib for *;
24 changes: 1 addition & 23 deletions crates/contracts/script/deployments/core/31337.json
Original file line number Diff line number Diff line change
@@ -1,23 +1 @@
{
"lastUpdate": {
"timestamp": "1735229111",
"block_number": "1"
},
"addresses": {
"proxyAdmin": "0xe7f1725e7734ce288f8367e1bb143e90bb3f0512",
"delegation": "0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9",
"delegationManagerImpl": "0xa85233c63b9ee964add6f2cffe00fd84eb32338f",
"avsDirectory": "0xb7f8bc63bbcad18155201308c8f3540b07f84f5e",
"avsDirectoryImpl": "0x7a2088a1bfc9d81c55368ae168c2c02570cb814f",
"strategyManager": "0xa513e6e4b8f2a923d98304ec87f64353c4d5c853",
"strategyManagerImpl": "0x09635f643e140090a9a8dcd712ed6285858cebef",
"eigenPodManager": "0x59b670e9fa9d0a427751af201d676719a970857b",
"eigenPodManagerImpl": "0xe6e340d132b5f46d1e472debcd681b2abc16e57e",
"strategyFactory": "0x3aa5ebb10dc797cac828524e59a333d0a371443c",
"rewardsCoordinator": "0x0dcd1bf9a1b36ce34237eeafef220932846bcd82",
"strategyBeacon": "0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8",
"pauserRegistry": "0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae",
"allocationManager": "0x8a791620dd6260079bf849dc5567adc3f2fdc318",
"permissionController": "0x322813fd9a801c5507c9de605d63cea4f2ce6c44"
}
}
{"lastUpdate":{"timestamp":"2","block_number":"1"},"addresses":{"proxyAdmin":"0xe7f1725e7734ce288f8367e1bb143e90bb3f0512","delegation":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","delegationManagerImpl":"0xa85233c63b9ee964add6f2cffe00fd84eb32338f","avsDirectory":"0xb7f8bc63bbcad18155201308c8f3540b07f84f5e","avsDirectoryImpl":"0x7a2088a1bfc9d81c55368ae168c2c02570cb814f","strategyManager":"0xa513e6e4b8f2a923d98304ec87f64353c4d5c853","strategyManagerImpl":"0x09635f643e140090a9a8dcd712ed6285858cebef","eigenPodManager":"0x59b670e9fa9d0a427751af201d676719a970857b","strategyFactory":"0x3aa5ebb10dc797cac828524e59a333d0a371443c","rewardsCoordinator":"0x0dcd1bf9a1b36ce34237eeafef220932846bcd82","strategyBeacon":"0x1613beb3b2c4f22ee086b2b38c1476a3ce7f78e8","pauserRegistry":"0x9a9f2ccfde556a7e9ff0848998aa4a0cfd8863ae","allocationManager":"0x8a791620dd6260079bf849dc5567adc3f2fdc318","permissionController":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44"}}
20 changes: 1 addition & 19 deletions crates/contracts/script/deployments/mock-avs/31337.json
Original file line number Diff line number Diff line change
@@ -1,19 +1 @@
{
"lastUpdate": {
"timestamp": "1735229113",
"block_number": "45"
},
"addresses": {
"proxyAdmin": "0x5eb3bc0a489c5a8288765d2336659ebca68fcd00",
"MockAvsServiceManager": "0xb7278a61aa25c888815afc32ad3cc52ff24fe575",
"MockAvsServiceManagerImpl": "0x21df544947ba3e8b3c32561399e88b52dc8b2823",
"registryCoordinator": "0x7969c5ed335650692bc04293b07f5bf2e7a673c0",
"blsapkRegistry": "0xc351628eb244ec633d5f21fbd6621e1a683b1181",
"indexRegistry": "0xcbeaf3bde82155f56486fb5a1072cb8baaf547cc",
"stakeRegistry": "0x82e01223d51eb87e16a03e24687edf0f294da6f1",
"operatorStateRetriever": "0x1429859428c0abc9c2c47c8ee9fbaf82cfa0f20f",
"strategy": "0xec4cfde48eadca2bc63e94bb437bbeace1371bf3",
"token": "0x36c02da8a0983159322a80ffe9f24b1acff8b570",
"tokenRewards": "0x7fbfdd1dfd80730385aee232cc9f79b8ae12a654"
}
}
{"lastUpdate":{"timestamp":"4","block_number":"45"},"addresses":{"proxyAdmin":"0x5eb3bc0a489c5a8288765d2336659ebca68fcd00","MockAvsServiceManager":"0xb7278a61aa25c888815afc32ad3cc52ff24fe575","MockAvsServiceManagerImpl":"0x21df544947ba3e8b3c32561399e88b52dc8b2823","registryCoordinator":"0x7969c5ed335650692bc04293b07f5bf2e7a673c0","blsapkRegistry":"0xc351628eb244ec633d5f21fbd6621e1a683b1181","indexRegistry":"0xcbeaf3bde82155f56486fb5a1072cb8baaf547cc","stakeRegistry":"0x82e01223d51eb87e16a03e24687edf0f294da6f1","operatorStateRetriever":"0x1429859428c0abc9c2c47c8ee9fbaf82cfa0f20f","strategy":"0xec4cfde48eadca2bc63e94bb437bbeace1371bf3","token":"0x36c02da8a0983159322a80ffe9f24b1acff8b570","tokenRewards":"0x809d550fca64d94bd9f66e60752a544199cfac3d"}}
5 changes: 2 additions & 3 deletions crates/contracts/script/utils/CoreDeploymentLib.sol
Original file line number Diff line number Diff line change
@@ -377,7 +377,8 @@ library CoreDeploymentLib {
data.allocationManager = json.readAddress(".addresses.allocationManager");
data.pauserRegistry = json.readAddress(".addresses.pauserRegistry");
data.permissionController = json.readAddress(".addresses.permissionController");

console2.log("prrrc");
console2.log(data.permissionController);
return data;
}

@@ -439,8 +440,6 @@ library CoreDeploymentLib {
data.strategyManager.getImplementation().toHexString(),
'","eigenPodManager":"',
data.eigenPodManager.toHexString(),
'","eigenPodManagerImpl":"',
data.eigenPodManager.getImplementation().toHexString(),
'","strategyFactory":"',
data.strategyFactory.toHexString(),
'","rewardsCoordinator":"',
3 changes: 2 additions & 1 deletion crates/contracts/script/utils/MockAvsDeploymentLib.sol
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transpa
import {Script} from "forge-std/Script.sol";
import {Vm} from "forge-std/Vm.sol";
import {stdJson} from "forge-std/StdJson.sol";
import {console2} from "forge-std/console2.sol";
import {IAVSDirectory} from "@eigenlayer/contracts/interfaces/IAVSDirectory.sol";
import {MockAvsServiceManager} from "../../src/MockAvsServiceManager.sol";
import {IDelegationManager} from "@eigenlayer/contracts/interfaces/IDelegationManager.sol";
@@ -170,7 +171,7 @@ library MockAvsDeploymentLib {
IAVSDirectory(coredata.avsDirectory),
IRewardsCoordinator(coredata.rewardsCoordinator),
IAllocationManager(coredata.allocationManager),
IPermissionController(coredata.permissionController)
IPermissionController(core.permissionController)
);
bytes memory mockavsmanagerupgradecall = abi.encodeCall(MockAvsServiceManager.initialize, admin);
UpgradeableProxyLib.upgradeAndCall(
Loading