use alloy::primitives::{address, Address};
use eigen_common::get_provider;
use eigen_utils::rewardsv2::sdk::contracts_registry::ContractsRegistry;
pub const FIRST_ADDRESS: Address = address!("f39Fd6e51aad88F6F4ce6aB8827279cffFb92266");
pub const FIRST_PRIVATE_KEY: &str =
"ac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
pub const SECOND_ADDRESS: Address = address!("70997970C51812dc3A010C7d01b50e0d17dc79C8");
pub const SECOND_PRIVATE_KEY: &str =
"59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d";
pub const THIRD_ADDRESS: Address = address!("3C44CdDdB6a900fa2b585dd299e03d12FA4293BC");
pub const THIRD_PRIVATE_KEY: &str =
"5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a";
pub const FIFTH_ADDRESS: Address = address!("9965507D1a55bcC2695C58ba16FB37d819B0A4dc");
pub const FIFTH_PRIVATE_KEY: &str =
"8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba";
pub const CONTRACTS_REGISTRY: Address = address!("5FbDB2315678afecb367f032d93F642f64180aa3");
pub const OPERATOR_BLS_KEY: &str =
"1371012690269088913462269866874713266643928125698382731338806296762673180359922";
pub const OPERATOR_BLS_KEY_2: &str =
"15610126902690889134622698668747132666439281256983827313388062967626731803501";
pub const ANVIL_HTTP_URL: &str = "http://localhost:8545";
pub const ANVIL_WS_URL: &str = "ws://localhost:8545";
pub async fn get_service_manager_address(rpc_url: String) -> Address {
let provider = get_provider(&rpc_url);
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, provider);
contracts_registry
.contracts("mockAvsServiceManager".to_string())
.call()
.await
.unwrap()
}
pub async fn get_registry_coordinator_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("mockAvsRegistryCoordinator".to_string())
.call()
.await
.unwrap()
}
pub async fn get_operator_state_retriever_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("mockAvsOperatorStateRetriever".to_string())
.call()
.await
.unwrap()
}
pub async fn get_delegation_manager_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("delegationManager".to_string())
.call()
.await
.unwrap()
}
pub async fn get_strategy_manager_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("strategyManager".to_string())
.call()
.await
.unwrap()
}
pub async fn get_avs_directory_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("avsDirectory".to_string())
.call()
.await
.unwrap()
}
pub async fn get_erc20_mock_strategy(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("erc20MockStrategy".to_string())
.call()
.await
.unwrap()
}
pub async fn get_proxy_admin(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("ProxyAdmin".to_string())
.call()
.await
.unwrap()
}
pub async fn get_rewards_coordinator_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("rewardsCoordinator".to_string())
.call()
.await
.unwrap()
}
pub async fn get_allocation_manager_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("allocationManager".to_string())
.call()
.await
.unwrap()
}
pub async fn get_permission_controller_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("permissionController".to_string())
.call()
.await
.unwrap()
}
pub async fn get_bls_apk_registry_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("blsApkRegistry".to_string())
.call()
.await
.unwrap()
}
pub async fn get_socket_registry_address(rpc_url: String) -> Address {
let contracts_registry = ContractsRegistry::new(CONTRACTS_REGISTRY, get_provider(&rpc_url));
contracts_registry
.contracts("socketRegistry".to_string())
.call()
.await
.unwrap()
}