{
    "Function": "slitherConstructorConstantVariables",
    "File": "src/contracts/core/DelegationManagerStorage.sol",
    "Parent Contracts": [
        "src/contracts/interfaces/IDelegationManager.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "keccak256(bytes)",
        "keccak256(bytes)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "abstract contract DelegationManagerStorage is IDelegationManager {\n    /// @notice Gas budget provided in calls to DelegationTerms contracts\n    uint256 internal constant LOW_LEVEL_GAS_BUDGET = 1e5;\n\n    /// @notice The EIP-712 typehash for the contract's domain\n    bytes32 public constant DOMAIN_TYPEHASH =\n        keccak256(\"EIP712Domain(string name,uint256 chainId,address verifyingContract)\");\n\n    /// @notice The EIP-712 typehash for the delegation struct used by the contract\n    bytes32 public constant DELEGATION_TYPEHASH =\n        keccak256(\"Delegation(address delegator,address operator,uint256 nonce,uint256 expiry)\");\n\n    /// @notice EIP-712 Domain separator\n    bytes32 public DOMAIN_SEPARATOR;\n\n    /// @notice The StrategyManager contract for EigenLayer\n    IStrategyManager public immutable strategyManager;\n\n    /// @notice The Slasher contract for EigenLayer\n    ISlasher public immutable slasher;\n\n    /// @notice Mapping: operator => strategy => total number of shares in the strategy delegated to the operator\n    mapping(address => mapping(IStrategy => uint256)) public operatorShares;\n\n    /// @notice Mapping: operator => delegation terms contract\n    mapping(address => IDelegationTerms) public delegationTerms;\n\n    /// @notice Mapping: staker => operator whom the staker has delegated to\n    mapping(address => address) public delegatedTo;\n\n    /// @notice Mapping: delegator => number of signed delegation nonce (used in delegateToBySignature)\n    mapping(address => uint256) public nonces;\n\n    constructor(IStrategyManager _strategyManager, ISlasher _slasher) {\n        strategyManager = _strategyManager;\n        slasher = _slasher;\n    }\n\n    /**\n     * @dev This empty reserved space is put in place to allow future versions to add new\n     * variables without shifting down storage in the inheritance chain.\n     * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps\n     */\n    uint256[46] private __gap;\n}"
}