{
    "Function": "approve",
    "File": "contracts/src/vendor/forge-std/src/mocks/MockERC721.sol",
    "Parent Contracts": [
        "contracts/src/vendor/forge-std/src/interfaces/IERC721.sol",
        "contracts/src/vendor/forge-std/src/interfaces/IERC721.sol",
        "contracts/src/vendor/forge-std/src/interfaces/IERC165.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "require(bool,string)"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function approve(address spender, uint256 id) public payable virtual override {\n        address owner = _ownerOf[id];\n\n        require(msg.sender == owner || _isApprovedForAll[owner][msg.sender], \"NOT_AUTHORIZED\");\n\n        _getApproved[id] = spender;\n\n        emit Approval(owner, spender, id);\n    }"
}