问题标签 [openzeppelin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3128 浏览

ethereum - DeclarationError: Undeclared identifier - 尽管它存在于 ERC721.sol 中

我正在编写一份关于solidity 0.8.3 的合同,但我收到了这个奇怪的错误,_setTokenURI()尽管该方法是在 OpenZeppelin 4.X 中定义的

在此处输入图像描述

0 投票
1 回答
444 浏览

ethereum - ERC20Capped:在合约创建期间无法读取不可变变量,这意味着它们无法在构造函数 OpenZeppelin 4 中读取

当我尝试使用ERC20Capped来自 OpenZeppelin 4的构造函数内部进行铸造时

错误

Immutable variables cannot be read during contract creation time, which means they cannot be read in the constructor or any function or modifier called from it

出现。

我应该怎么办?

0 投票
1 回答
988 浏览

node.js - 在 Openzeppelin 中已经为 Context.sol 声明了标识符

我正在做一个 NFT 项目。我的合约文件夹中有我的 NFT 文件,该文件是从 nodemodules 中的 openzeppelin 文件导入的。但是,编译器似乎建议 Context.sol 已在我的文件中声明。我检查了 Context.sol 文件,在给定的文件夹中似乎有很多,我该如何解决这个问题。

NFT.sol

上下文.sol

0 投票
2 回答
1336 浏览

importerror - 当我从 openzepplin 导入时找不到 utils/context.sol

我从 openzappline 复制了一份合同。但是当我在 remix 上编译它时,它给了我错误....找不到 utils/context.sol。

这是进口

0 投票
2 回答
2907 浏览

ethereum - 在安全帽合同中导入 openzeppelin 错误

我正在尝试使用一些 @openzeppelin/contracts 导入来部署合同。

合同:

包.json:

@openzeppelin/contracts 在我的 node_modules 中,我运行了一个 npm 我再次安装。

预期结果:成功导入deps。

实际结果:终端中的错误消息:

编辑:删除 '../node_modules' 也不能解决这个问题。

这会产生 lint 错误:

错误是:

0 投票
1 回答
1770 浏览

visual-studio-code - VScode Solidity 扩展 - 找不到 openzepplin 导入

我正在尝试从一个非常简单的 Solidity 合约开始,但 VSCode 让我很难过。我正在使用 Juan Blancos solidity 插件,但 VSCode 找不到 openzepplin 导入

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

错误是:

未找到源“@openzeppelin/contracts/token/ERC20/ERC20.sol”:不支持文件导入回调

即使 vscode 显示红色波浪线,我也可以通过hardhat compile成功编译。

如果我将路径更改为

import "../node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol";

VScode 停止抱怨,但后来我无法通过硬硬编译,错误是:

找不到源“node_modules/@openzeppelin/contracts/security/Pausable.sol”:文件超出允许的目录。

我的用户和工作区的 Solidity 扩展的 VSCode 设置是:

这对应于我的项目结构

我按照此处的说明进行了广泛的研究,但不幸的是无法使其正常工作。

0 投票
7 回答
6717 浏览

solidity - 不支持文件导入回调?

试图运行:

1.) Dappuniversity 项目 (dappuniversity/dbank) 2.) pet-shop-tutorial

Truffle v5.3.3(核心:5.3.3)节点 v14.15.5

当 Truffle 要求它的编译器/solc 匹配 5.3.3 时,ser 如何在 0.8.4 编译代码以导入 OpenZeppelin 的 ERC20.sol 模板?

未找到源“@openzeppelin/contracts/token/ERC20/ERC20.sol”:不支持文件导入回调

0 投票
1 回答
180 浏览

solidity - 具有 UTF-8 解码字符的 Solidity ERC20 合约

我需要编写一份使用基于拉丁语言的措辞的合同。这需要特殊字符,例如é, ç, ã, ôetc....

我正在使用安全帽来编写它。

我在这里找到了一个例子,也使用了开放的 Zeppelin:

有效的例子

在此处输入图像描述

当试图在我的合同中写类似的东西时,我得到一个错误:Invalid character in string.

然后,我将 UTF-8 编码添加到这些字符中,希望能够在 BSCScan 或 EtherScan 上正确编译:

IEstring public constant tokenMinuta = "C\xC3\xA9u, Carra\xC3\xA7o";

上面的编译应该在我的终端中看到这里: 在此处输入图像描述

但是,当我将源代码添加到 BSCScan 或 EtherScan 时,它不起作用。

未以人类可读方式编译的特殊字符

看看我在哪里添加了 UTF-8 - 我希望这将以人类可读的方式编译,而不是像这样:

在此处输入图像描述

我的问题是:如何在合同正文中写入这些特殊字符而不会出现编译错误,从而能够在 BSCSan 或 EtherScan上以人类可读的方式验证与这些字符的合同?就像我上面提供的第一个示例一样工作。

0 投票
2 回答
4130 浏览

ethereum - ERC721 令牌与元数据和 Enumerable 与 Openzeppelin v4.1.0

我的问题有两个部分,

我正在尝试使用带有元数据的 Openzeppelin 合同创建一个 ERC721 令牌,这是可枚举的。我的理解是在 openzeppelin v4.0.0 之后,他们删除了包含元数据和可枚举的 ERC721Full.sol 合约。我想使用solidity 0.8.0,所以那些旧合同不起作用,对吧?在将 ERC721Enumerable.sol 导入并继承到 ERC721.sol 合约中时,我TypeError: Definition of base has to precede definition of derived contract 尝试在自己的合约中导入 ERC721Enumerable.sol,但仍然出现错误。我还尝试导入较旧的 ERC721Full.sol 合同并将所有 pragma 0.5.0 更改为 pragma 0.8.0,但它像十几个其他合同一样继承并且更改所有合同似乎并不明智。我对 IERC721Enumerable.sol 进行了同样的尝试,但仍然有错误。有任何想法吗?任何帮助都会很棒!

第二部分。ERC__ 和 IERC__ 有什么区别?IERC 合约的目的是什么?

谢谢!!

这是我的合同(我正在学习教程)。我导入常规的 ERC721 合约,继承它。当我测试和调用 totalSupply 函数时,它给了我一个错误,因为没有 totalSupply 函数:

我的测试脚本:

这是我的错误,没有可枚举的合同/没有 totalSupply

如果您愿意,我可以粘贴 openzeppelin 合同,或在此处链接它们

我也试过这个,导入 ERC721Enumerable

得到了这个:

让我知道你需要更多信息!提前致谢

0 投票
0 回答
100 浏览

blockchain - 如何在没有众筹合同的情况下使用 openzipplin 4.x 创建众筹

我是区块链开发的新手,我正在学习制作 ICO 的教程,但他使用 openzipplin 2.x 和已经在其上实施的众筹合约,我在文档中看到这些合约不在版本 3 中。 x 和 4.x,所以我想知道现在创建 icos 的最佳方法是什么,如果它是从头开始的?或者我可以在同一个项目中运行两个版本的 openzipplin?或者我如何使用 OZ 4.x 创建我的令牌,然后将其导入使用 OZ 2.x 的其他项目中!感谢您未来的帮助