问题标签 [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 回答
3408 浏览

blockchain - 为什么ERC721的铸币功能有权限控制?

我看到的大多数使用 Open Zeppelin 的 ERC721 示例都要求 mint 函数具有访问控制,其中只允许合约的所有者调用该函数。例如,_

或以下使用Ownable库。

这是否意味着每次铸造新代币时都必须部署新合约?这似乎不仅在 gas 费用方面过高,而且 ERC721 合约还具有映射不同所有者和代币的属性:

如果铸币仅限于合约所有者,这将毫无意义。

对我来说,部署单个ERC721 合约(及其依赖项)并让用户调用 mint 函数更有意义。ERC721的mint功能的最佳实践是什么?

0 投票
1 回答
555 浏览

solidity - ethers 上的 _signTypedData 方法与 ERC712 solidity 代码不匹配

我遇到了一个以太签名无与伦比的问题。

一切正常。已经将 js 代码中的domainData, types,message变量与合约进行了比较。

下面是生成签名和调用合约的 JS 代码。

下面是使用“@openzeppelin/contracts/utils/cryptography/draft-EIP712.sol”的可靠代码

但我在 JS 代码的最后一行出现以下错误。

我的代码有什么问题吗?

0 投票
1 回答
743 浏览

compiler-errors - 使用 truffle 编译时出现问题,卡在导入 openzeppelin

我正在做一个关于blockgeeks的教程并且已经被困了几个小时。

这是我在尝试编译我的项目时遇到的错误

这是我的solidity文件的代码。

任何帮助都将不胜感激,因为我为此让自己发疯。我已经卸载并重新安装了 truffle 和 openzeppelin,但仍然没有任何乐趣。

谢谢

0 投票
0 回答
364 浏览

solidity - 部署智能合约时,合约的“所有者”(默认情况下)不是部署它的人吗?

我正在尝试在使用 onlyOwner 修饰符的闪贷合同中使用一个函数。当我发送闪贷交易时,我收到错误消息:“调用者不是所有者”。

我使用的帐户与我在运行此快速贷款时用来创建合同的帐户相同,所以我不确定它为什么不承认我是所有者。

您可以在这里看到创建合约和发送失败交易的地址是相同的。 https://kovan.etherscan.io/address/0x91109bde85e0ab631d1983ce07b910ce4e99078a

点击那里的第一笔交易^^查看错误信息。

onlyOwner 修饰符的代码:https ://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol

合同文件

Withdrawable.sol(withdraw() 函数来自哪里)

0 投票
1 回答
197 浏览

smartcontracts - 带有 OpenZeppelin 合约的 Tron 网络

Tron 网络使用 Solidity,与以太坊有很多相似之处。

我正在尝试使用为以太坊设计的 OpenZeppelin 合约在 Tron 网络上运行。

我选择了 tronbox 编译器支持的 Solidity 版本 0.6.x。

是否可以在 Tron 网络上运行 OpenZeppelin 合约?

0 投票
0 回答
48 浏览

solidity - Solidity:标识符未找到或不唯一

我正在阅读这个 OpenZeppelin 教程:https ://docs.openzeppelin.com/learn/developing-smart-contracts?pref=truffle并完全按照这些步骤操作。但是,在导入 Auth 合同后编译我的合同时,编译失败,并显示 Identifier not found 或 not unique。

这是我得到的错误:contracts/Box.sol:10:5: DeclarationError: Identifier not found or not unique。验证私人身份验证;^--^

我的目录设置与教程完全相同,其中我在名为 access-control 的目录中有 Auth.sol,但它不起作用。

这是我试图运行的代码:

0 投票
0 回答
1224 浏览

ethereum - ethers.js 合约实例中没有 safeTransferFrom 函数?

我在安全帽控制台中创建了一个合约实例,如下所示:

合同对象具有所有公共/外部功能,除了safeTransferFrom. 为什么?

当我用contract.safeTransferFrom(…)它调用它时,会抛出 JavaScript 错误“safeTransferFrom 不是函数”。这是一个错误还是我不明白什么?safeTransferFrom功能在 ABI 中列出。

我使用 OpenZeppelin (v. 4.2) 721 令牌模板,Ethers.js (v. 5.4.1) 和 hardhat (v. 2.4.1)。

更新: 问题解决了。safeTransferFrom 是一个重载函数。在 ethers 中,调用重载合约函数的语法与非重载函数不同。 Ethers.js 文档

错误的:

正确的:

0 投票
1 回答
1058 浏览

ethereum - 如何与已部署的 ERC20(openzeppelin ERC20 合约)代币交互,将代币从用户地址 X 转移到地址 Y?

我创建了一个扩展 openzeppelin ERC20 的简单合约。我正在尝试将令牌从一个地址转移到另一个地址。

合约代码如下:

文件名:Token.sol

测试文件中的代码:

收到错误:

感谢您的帮助。

0 投票
1 回答
637 浏览

solidity - 导入 OpenZeppelin 的 ERC721Full.sol 库时出现解析错误

当我尝试使用 truffle 编译我的智能合约时,会出现以下错误:错误解析 @openzeppelin/contracts/token/ERC721/ERC721.sol: ParsedContract.sol:51:72: ParserError: Expected '{' but got reserved关键字“覆盖”。

我的智能合约:

有谁知道如何解决这一问题?我知道这不是一个新问题,但我还没有找到对我有用的堆栈溢出或其他论坛解决方案。提前致谢。

0 投票
3 回答
782 浏览

javascript - 未找到请求的合同。确保源代码可用于编译

我正在使用“@openzeppelin/truffle-upgrades”插件来创建可升级的合同。第一次这样做并以他们在其上的网站文章为基础。https://docs.openzeppelin.com/learn/upgrading-smart-contracts

一切编译正确,但是每当我迁移“未找到请求的合同。确保源代码可用于编译”或查看此屏幕截图https://gyazo.com/f4b8d8afea69b67965670b520e48db13时,3_deploy_upgradeable_box.js 都会吐出此错误

这是我的代码

松露配置文件如下

请指导我正确的方向,谢谢。