{
    "Function": "setAuthority",
    "File": "contracts/lib/solmate/src/auth/Auth.sol",
    "Parent Contracts": [],
    "High-Level Calls": [
        "Authority"
    ],
    "Internal Calls": [
        "require(bool)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function setAuthority(Authority newAuthority) public virtual {\n        // We check if the caller is the owner first because we want to ensure they can\n        // always swap out the authority even if it's reverting or using up a lot of gas.\n        require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig));\n\n        authority = newAuthority;\n\n        emit AuthorityUpdated(msg.sender, newAuthority);\n    }"
}