{
    "Function": "initialize",
    "File": "contracts/ClearingHouse.sol",
    "Parent Contracts": [
        "contracts/legos/HubbleBase.sol",
        "node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol",
        "node_modules/@openzeppelin/contracts/security/Pausable.sol",
        "node_modules/@openzeppelin/contracts/utils/Context.sol",
        "contracts/legos/Governable.sol",
        "node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol",
        "contracts/legos/Governable.sol",
        "contracts/Interfaces.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "initializer",
        "require(bool,string)",
        "_setGovernace"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function initialize(\n        address _governance,\n        address _insuranceFund,\n        address _marginAccount,\n        address _vusd,\n        int256 _maintenanceMargin,\n        int256 _minAllowableMargin,\n        uint _tradeFee,\n        uint _liquidationPenalty\n    ) external initializer {\n        _setGovernace(_governance);\n\n        insuranceFund = IInsuranceFund(_insuranceFund);\n        marginAccount = IMarginAccount(_marginAccount);\n        vusd = VUSD(_vusd);\n\n        require(_maintenanceMargin > 0, \"_maintenanceMargin < 0\");\n        maintenanceMargin = _maintenanceMargin;\n        minAllowableMargin = _minAllowableMargin;\n        tradeFee = _tradeFee;\n        liquidationPenalty = _liquidationPenalty;\n    }"
}