diff --git a/contracts/lib/burners b/contracts/lib/burners index 60a5eb87f..c5840718d 160000 --- a/contracts/lib/burners +++ b/contracts/lib/burners @@ -1 +1 @@ -Subproject commit 60a5eb87f196b62d48406b45cc3b19ef4be0e906 +Subproject commit c5840718d3ebf79500b420e5f082e4f8a4363d48 diff --git a/contracts/lib/core b/contracts/lib/core index 5061e30ba..106d10bcc 160000 --- a/contracts/lib/core +++ b/contracts/lib/core @@ -1 +1 @@ -Subproject commit 5061e30ba6866680d3a9a2b1a4c52f6cb95dc9fc +Subproject commit 106d10bcc77c9e1a1d2cd041f6840009ed135692 diff --git a/contracts/scripts/validator-registry/middleware/DeployMiddleware.s.sol b/contracts/scripts/validator-registry/middleware/DeployMiddleware.s.sol index fb3614e01..ca7c96c90 100644 --- a/contracts/scripts/validator-registry/middleware/DeployMiddleware.s.sol +++ b/contracts/scripts/validator-registry/middleware/DeployMiddleware.s.sol @@ -11,9 +11,10 @@ import {Upgrades} from "openzeppelin-foundry-upgrades/Upgrades.sol"; import {MevCommitMiddleware} from "../../../contracts/validator-registry/middleware/MevCommitMiddleware.sol"; import {IRegistry} from "symbiotic-core/interfaces/common/IRegistry.sol"; import {INetworkRegistry} from "symbiotic-core/interfaces/INetworkRegistry.sol"; -import {SymbioticHoleskyDevnetConsts} from "./ReleaseAddrConsts.s.sol"; +import {SymbioticHoleskyDevnetConsts, SymbioticMainnetConsts} from "./ReleaseAddrConsts.s.sol"; import {IBaseDelegator} from "symbiotic-core/interfaces/delegator/IBaseDelegator.sol"; import {INetworkMiddlewareService} from "symbiotic-core/interfaces/service/INetworkMiddlewareService.sol"; +import {MainnetConstants} from "../../MainnetConstants.sol"; contract BaseDeploy is Script { function deployMevCommitMiddleware( @@ -55,6 +56,44 @@ contract BaseDeploy is Script { } } +contract DeployMainnet is BaseDeploy { + IRegistry constant public NETWORK_REGISTRY = IRegistry(SymbioticMainnetConsts.NETWORK_REGISTRY); + IRegistry constant public OPERATOR_REGISTRY = IRegistry(SymbioticMainnetConsts.OPERATOR_REGISTRY); + IRegistry constant public VAULT_FACTORY = IRegistry(SymbioticMainnetConsts.VAULT_FACTORY); + IRegistry constant public DELEGATOR_FACTORY = IRegistry(SymbioticMainnetConsts.DELEGATOR_FACTORY); + IRegistry constant public SLASHER_FACTORY = IRegistry(SymbioticMainnetConsts.SLASHER_FACTORY); + IRegistry constant public BURNER_ROUTER_FACTORY = IRegistry(SymbioticMainnetConsts.BURNER_ROUTER_FACTORY); + + address constant public OWNER = MainnetConstants.PRIMEV_TEAM_MULTISIG; + address constant public NETWORK = MainnetConstants.PRIMEV_TEAM_MULTISIG; + uint256 constant public SLASH_PERIOD_SECONDS = 1 days; + address constant public SLASH_ORACLE = MainnetConstants.PRIMEV_TEAM_MULTISIG; + address constant public SLASH_RECEIVER = MainnetConstants.COMMITMENT_HOLDINGS_MULTISIG; + uint256 constant public MIN_BURNER_ROUTER_DELAY = 2 days; + + function run() external { + require(block.chainid == 1, "must deploy on mainnet"); + vm.startBroadcast(); + + deployMevCommitMiddleware( + NETWORK_REGISTRY, + OPERATOR_REGISTRY, + VAULT_FACTORY, + DELEGATOR_FACTORY, + SLASHER_FACTORY, + BURNER_ROUTER_FACTORY, + NETWORK, + SLASH_PERIOD_SECONDS, + SLASH_ORACLE, + SLASH_RECEIVER, + MIN_BURNER_ROUTER_DELAY, + OWNER + ); + + vm.stopBroadcast(); + } +} + contract DeployHolesky is BaseDeploy { IRegistry constant public NETWORK_REGISTRY = IRegistry(SymbioticHoleskyDevnetConsts.NETWORK_REGISTRY); diff --git a/contracts/scripts/validator-registry/middleware/ReleaseAddrConsts.s.sol b/contracts/scripts/validator-registry/middleware/ReleaseAddrConsts.s.sol index 70246ec91..72f289f6c 100644 --- a/contracts/scripts/validator-registry/middleware/ReleaseAddrConsts.s.sol +++ b/contracts/scripts/validator-registry/middleware/ReleaseAddrConsts.s.sol @@ -1,6 +1,17 @@ // SPDX-License-Identifier: BSL 1.1 pragma solidity 0.8.26; +/// @notice Relevant constants communicated by Symbiotic team as canonical mainnet addresses. +/// @notice Last updated 1-14-2025 +library SymbioticMainnetConsts { + address internal constant NETWORK_REGISTRY = 0xC773b1011461e7314CF05f97d95aa8e92C1Fd8aA; + address internal constant OPERATOR_REGISTRY = 0xAd817a6Bc954F678451A71363f04150FDD81Af9F; + address internal constant VAULT_FACTORY = 0xAEb6bdd95c502390db8f52c8909F703E9Af6a346; + address internal constant DELEGATOR_FACTORY = 0x985Ed57AF9D475f1d83c1c1c8826A0E5A34E8C7B; + address internal constant SLASHER_FACTORY = 0x685c2eD7D59814d2a597409058Ee7a92F21e48Fd; + address internal constant BURNER_ROUTER_FACTORY = 0x99F2B89fB3C363fBafD8d826E5AA77b28bAB70a0; +} + /// @notice Constants from https://docs.symbiotic.fi/deployments/current /// @notice Last updated 11-30-2024 library SymbioticHoleskyDevnetConsts {