{
    "Function": "originalOwner",
    "File": "contracts/NestedAsset.sol",
    "Parent Contracts": [
        "contracts/abstracts/OwnableFactoryHandler.sol",
        "node_modules/@openzeppelin/contracts/access/Ownable.sol",
        "node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol",
        "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol",
        "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol",
        "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
        "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol",
        "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol",
        "node_modules/@openzeppelin/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "ownerOf",
        "_exists"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function originalOwner(uint256 _tokenId) public view returns (address) {\n        uint256 originalAssetId = originalAsset[_tokenId];\n\n        if (originalAssetId != 0) {\n            return _exists(originalAssetId) ? ownerOf(originalAssetId) : lastOwnerBeforeBurn[originalAssetId];\n        }\n        return address(0);\n    }"
}