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

solidity - 如何使用 web3.js 库铸造 ERC20 令牌?

我一直致力于 ERC20 代币开发。我的代码是使用solidity 和zeppelin 框架编写的。

到目前为止,我已经使用 Rinkeby、Ropsten 等测试网络来部署和测试所有 ERC20 方法。昨晚,我必须在必须部署 10000000 个令牌的主网上部署智能合约,但我只部署了 1000000 个(错过了一个零)。

由于它部署在主网中,因此mint是充值初始金额而不是重新部署的唯一方法。通过删除 mint 方法中的 internal 关键字,可以使用 remix 来实现 Mint。但它需要重新部署智能合约才能使用薄荷方法,客户不会同意重做。

我认为唯一的方法是使用 web3js API 来实现相同的目的。但是 web3js 文档中没有给出如何务实地铸币(充值初始金额)的内容。

如果你们中的任何人遇到过类似的情况,请告诉我你们是如何解决的。

谢谢,斯里拉姆

0 投票
0 回答
269 浏览

ethereum - openzeppelin 中关于 MinterRole 合约的问题

我正在使用 openzeppelin 来创建 ICO 合约。我担心这里的 MinterRole。在我开发 Token 合约后,我使用“addMinter”功能将销售合约添加为铸币机。

问题

销售结束后

  1. 我看不到作为铸币者删除合约地址的方法。我看到“renounceMinter”只会删除调用此方法的人。我明白,即使我在那个时候(即销售结束后)删除(或)不删除作为铸币者的合同地址,销售合同也会以一种根本不起作用的方式定义。即使我们将合约地址留在铸币者列表中也安全吗?

  2. 为什么 openzeppelin 设计了带有“renounceMinter”函数的“MinterRole”合约,该函数只能删除调用该合约的人,而“addMinter”函数也可以为其他人执行此操作?

代码

样品众筹

铸币众筹

ERC20Mintable

角色扮演者

0 投票
1 回答
315 浏览

ethereum - 未发出任何事件 - 交换 ERC721 代币

在两个地址之间交换 ERC721 令牌的功能。我在 truffle 和 openzeppelin 2.10 上实现了这个。应该在两个地址之间交换两个不同的令牌。

这是我交换 ERC721 代币的合约函数:

function exchangeStars(uint256 token1, uint256 token2, address starOwner2) public { require(this.ownerOf(token1) == msg.sender);

这是我为创建令牌和在两个地址之间交换而编写的测试。

这是我的测试结果:

0 投票
1 回答
227 浏览

blockchain - 有什么作用!在 Solidity 中是什么意思?

我正在学习 Solidity,但我无法理解 [!] 在⑨⑫⑬中的含义。

这是什么意思?还有,怎么用?

请给点建议好吗?

0 投票
1 回答
498 浏览

ethereum - 调用 super.owner().transfer(msg.value) 给出错误

我有一个继承自 Open Zeppelin 的 Ownable 合同的合同。我的合约中有一个方法 payFees() 可以将资金转移给合约的所有者。payFees的定义如下

我希望对 super.owner() 的调用返回合同所有者,因为它是返回所有者的父合同中owner()的公共视图函数。Ownable不幸的是,代码因错误而失败。

任何帮助表示赞赏。谢谢。

0 投票
1 回答
3274 浏览

solidity - 令牌合约不会迁移,因为它是抽象的

我正在研究荷兰式拍卖风格的 ICO 合同,我目前正在尝试迁移我的 ERC20 合同的早期阶段以测试基本功能(它是否具有正确的名称、符号和小数点)。合同可以编译,但我无法迁移它,因为它是一个“抽象合同”。我的代币合约继承自 ERC20Detailed,即 Open Zeppelin 合约,后者又继承自 IERC20 接口合约。我能做些什么来解决这个问题?我尝试让我的 Token 合约也从 ERC20 继承基础合约,但它说标识符已经声明。我看到了来自 Truffle 终端输出的可能响应,但我很好奇为什么我的实现不起作用,并且希望在理解 Solidity 接口和抽象合约方面获得更多帮助。

我能做些什么来解决这个问题?我尝试让我的 Token 合约也从 ERC20 继承基础合约,但它说标识符已经声明。

Bash 终端的输出

“Token”是抽象合约或接口,无法部署。* 将抽象导入到使用它们的“.sol”文件中,而不是单独部署它们。* 继承抽象的合约必须准确地实现它的所有方法签名。* 仅实现部分继承抽象的合约也被认为是抽象的。

0 投票
1 回答
52 浏览

solidity - 这是混音、编译器还是 openzeplin 错误?

我刚刚写了一个简单的代码来测试 openzeplin Safemath 库。我正在使用最新版本的 remix ide 并为 ^0.5.0 编译。Remix 使用的是 0.5.0_commit.1d4f565a 编译器环境是 JavaScript VM EVM 版本是编译器默认

add 函数似乎在下面给出的代码中不起作用

我已经尝试过 x.sub(1) 它按预期抛出异常,我也尝试过将 x 初始化为不同的值,但仍然无法正常工作。

每次调用函数时,预期输出都会增加 1,但每次都获得相同的值。Emit 也显示相同的值。

0 投票
1 回答
639 浏览

javascript - 为什么当我明确给出一个地址转移时,我的 ERC20 令牌从 0x000000 转移?

调用 transferFrom 时,它使用地址 0x00000 而不是我传递给它的地址。

我已经确保代币在构建时被铸造,并且总供应量被发送到合约所有者的钱包地址。在调用 transferFrom ownerAddress 和 contractAddress 之前都已定义,但它似乎仍然忽略了发件人地址。

我希望“发件人”地址是 ownerAddress,而是 0x00000

测试期间发出的事件:----------------------------

0 投票
3 回答
1842 浏览

ethereum - Openzeppelin SDK 和 Truffle 的区别?

对于智能合约开发,Openzeppelin SDK 和 Truffle 有什么区别?我什么时候应该使用一个或另一个,或两者一起使用?

0 投票
1 回答
35 浏览

token - 使用 openzeppelin 部署 SampleCrowdsale - 错误:地址无效

我正在尝试从 open-zeppelin SampleCrowdsale部署这个 SampleCrowdsale 示例

它需要以下输入来部署:

这里的代币和钱包地址是什么?我只是想通过 Metamask 将它部署到 Ganache。