_beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; } function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { } function _mint(address account, uint256 amount) internal virtual { _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } ERC20 ERC721 https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol