{
    "Function": "_initialize",
    "File": "src/contracts/middleware/VoteWeigherBase.sol",
    "Parent Contracts": [
        "src/contracts/middleware/VoteWeigherBaseStorage.sol",
        "src/contracts/interfaces/IVoteWeigher.sol",
        "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "require(bool,string)",
        "require(bool,string)",
        "onlyInitializing"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function _initialize(uint256[] memory _quorumBips) internal virtual onlyInitializing {\n        // verify that the provided `_quorumBips` is of the correct length\n        require(\n            _quorumBips.length == NUMBER_OF_QUORUMS,\n            \"VoteWeigherBase._initialize: _quorumBips.length != NUMBER_OF_QUORUMS\"\n        );\n        uint256 totalQuorumBips;\n        for (uint256 i; i < NUMBER_OF_QUORUMS; ++i) {\n            totalQuorumBips += _quorumBips[i];\n            quorumBips[i] = _quorumBips[i];\n        }\n        // verify that the provided `_quorumBips` do indeed sum to 10,000!\n        require(totalQuorumBips == MAX_BIPS, \"VoteWeigherBase._initialize: totalQuorumBips != MAX_BIPS\");\n    }"
}