首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >totalSupply()可靠签名导致冲突错误

totalSupply()可靠签名导致冲突错误
EN

Ethereum用户
提问于 2017-09-29 05:25:57
回答 2查看 1.5K关注 0票数 4

我正在编写一个非常基本的ERC20令牌,它使用Mist钱包中的坚固性。由于某些原因,编译器不喜欢totalSupply()函数名。如果我更改这个名称,它就会编译得很好。

要兼容ERC20,必须以这种方式对此函数进行签名。

如何避免这个错误?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2017-09-29 05:38:35

我认为您的函数返回参数应该重命名--这正是编译器真正抱怨的:

代码语言:javascript
复制
function totalSupply() constant returns (uint256 something) {

实际上,在这里命名返回参数是可选的;您只需将其类型放在:

代码语言:javascript
复制
function totalSupply() constant returns (uint) {

为了将来的参考,检查是否可以发布代码本身更容易,而不是代码的图像,这样我们就可以将代码剪切并粘贴到编译器中。

票数 3
EN

Ethereum用户

发布于 2017-09-29 06:02:42

选项1

ERC20令牌的一个典型的修复和实现是将public变量重命名为totalSupply (没有下划线),并删除函数totalSupply,因为它将由Solidity自动生成。

对隐藏错误消息

的解释

function totalSupply() constant returns (uint256 totalSupply)向编译器指示返回值将是变量totalSupply (没有下划线)。

但是函数正在返回另一个变量的值(看起来相同,但由于它有下划线,所以不一样)。所以编译器错误是因为totalSupply变量被另一个变量覆盖/隐藏。

选项2

正如@benjaminion所解释的,不要命名返回值,只需使用:

function totalSupply() constant returns (uint256)

现在没有任何变量可以隐藏。

票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/27402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档