The specification of the ERC721 standard interface that we are discussing in this section is taken from the EIP standard document at https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md.
The ERC721 NFT standard interface is defined as follows:
interface ERC721 is ERC165 {
event Transfer(address indexed _from, address indexed _to,
uint256 indexed _tokenId);
event Approval(address indexed _owner, address indexed _approved,
uint256 indexed _tokenId);
event ApprovalForAll(address indexed _owner, address indexed _operator,
bool _approved);
function balanceOf(address _owner) external view returns (uint256);
function ownerOf(uint256 _tokenId) external view returns (address);
function safeTransferFrom(address _from, address _to,
...