我创建了一个node.js项目,在其中我创建了一个松露目录并初始化了它的项目。我已经在这个松露项目目录中安装了openzeppelin (npm install @openzeppelin/contracts)库,但是似乎没有安装任何东西,尽管在安装过程中没有收到任何错误。“我的项目”中的导入语句将显示以下错误:
import "@openzeppelin/contracts/token/ERC721/ERC721Full.sol";未找到源"@openzeppelin/contracts/token/ERC721/ERC721Full.sol“:不支持文件导入回调
谢谢。J
发布于 2020-10-20 00:38:41
如果您运行npm uninstall @openzeppelin/contracts,然后运行npm install @openzeppelin/contracts@2.3.0,然后重新尝试导入,那么它应该可以工作。
另外,检查您的块菌-config.js文件,看看根目录是否被正确配置以找到您的node_modules文件夹。
发布于 2020-10-19 07:58:16
这是因为ERC721Full.sol不再存在,正如您在Github储存库中所看到的那样。从最新更新 (v3.0)的OpenZeppelin契约中,您可以阅读以下内容:
ERC20和ERC721进行了简化和简化,默认情况下包括标准的所有可选部分,并简化了我们自己的一些自定义扩展。... --如果您使用的是ERC20或ERC721令牌,则必须删除对可选扩展(ERC20Detailed、ERC721Enumerable等)的所有引用--这些引用已经包含在基本契约中。
您应该使用ERC721.sol,它包括ERC721Full.sol的各个部分:
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";如果要安装特定版本(例如:v2.3.0):
npm install @openzeppelin/contracts@2.3.0https://ethereum.stackexchange.com/questions/89470
复制相似问题