From c31999c2c76b2d68040c997ca47bec2a31449144 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 9 Feb 2022 11:56:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=9A=84tokenUri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contracts/BEBase.sol | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/contracts/BEBase.sol b/contracts/BEBase.sol index a243b9c..2cbafd0 100644 --- a/contracts/BEBase.sol +++ b/contracts/BEBase.sol @@ -1,11 +1,14 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.10; import "@openzeppelin/contracts/access/Ownable.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; import "@openzeppelin/contracts/access/AccessControlEnumerable.sol"; abstract contract BEBase is ERC721, AccessControlEnumerable, ERC721Enumerable, Ownable { + using Strings for uint256; + mapping(address => bool) public approvalWhitelists; mapping(uint256 => bool) public lockedTokens; string private _baseTokenURI; @@ -19,6 +22,14 @@ abstract contract BEBase is ERC721, AccessControlEnumerable, ERC721Enumerable, O return _baseTokenURI; } + function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { + require(_exists(tokenId), "BEBase: URI query for nonexistent token"); + + string memory baseURI = _baseURI(); + uint256 tokenSub = tokenId % 1000; + return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenSub.toString())) : ""; + } + /** * @dev Creates a new token for `to`. Its token ID will be automatically * assigned (and available on the emitted {IERC721-Transfer} event), and the token