{
    "Function": "constructor",
    "File": "src/contracts/middleware/VoteWeigherBaseStorage.sol",
    "Parent Contracts": [
        "src/contracts/interfaces/IVoteWeigher.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"
    ],
    "High-Level Calls": [
        "IStrategyManager",
        "IStrategyManager"
    ],
    "Internal Calls": [
        "_disableInitializers",
        "require(bool,string)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "constructor(\n        IStrategyManager _strategyManager,\n        IServiceManager _serviceManager,\n        uint8 _NUMBER_OF_QUORUMS\n    ) {\n        // sanity check that the VoteWeigher is being initialized with at least 1 quorum\n        require(_NUMBER_OF_QUORUMS != 0, \"VoteWeigherBaseStorage.constructor: _NUMBER_OF_QUORUMS == 0\");\n        strategyManager = _strategyManager;\n        delegation = _strategyManager.delegation();\n        slasher = _strategyManager.slasher();\n        serviceManager = _serviceManager;\n        NUMBER_OF_QUORUMS = _NUMBER_OF_QUORUMS;\n        // disable initializers so that the implementation contract cannot be initialized\n        _disableInitializers();\n    }"
}