{
    "Function": "_setBeacon",
    "File": "contracts/openzeppelin-solidity/contracts/proxy/ERC1967/ERC1967Upgrade.sol",
    "Parent Contracts": [],
    "High-Level Calls": [
        "StorageSlot",
        "Address",
        "IBeacon",
        "Address"
    ],
    "Internal Calls": [
        "require(bool,string)",
        "require(bool,string)"
    ],
    "Library Calls": [
        "isContract",
        "getAddressSlot",
        "isContract"
    ],
    "Low-Level Calls": [],
    "Code": "function _setBeacon(address newBeacon) private {\n        require(Address.isContract(newBeacon), \"ERC1967: new beacon is not a contract\");\n        require(\n            Address.isContract(IBeacon(newBeacon).implementation()),\n            \"ERC1967: beacon implementation is not a contract\"\n        );\n        StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon;\n    }"
}