首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ERC20 totalSupply最佳实践

ERC20 totalSupply最佳实践
EN

Stack Overflow用户
提问于 2022-10-24 17:05:59
回答 1查看 42关注 0票数 -1

最佳做法建议:

如果使用不同的变量来保存某些供应,而不直接保存ERCToken变量中的所有令牌,那么重写ERCToken的ERCToken()是否可以接受?

例子:.

代码语言:javascript
复制
uint _extraSupplyForGivingAway = 1e27; //decimal 1e18 * 1M just an example

function totalSupply() public view override returns(uint totalSupply){ 
    totalSupply = super.totalSupply() + _extraSupplyForGivingAway);
    return (totalSupply);
}

契约的总价值不仅是_totalSupply,还包括_totalSupply和额外的令牌。

问:社区和/或交易所是否认为这是可以接受的?

EN

回答 1

Stack Overflow用户

发布于 2022-10-24 18:51:14

这里有两个不同的问题。其一,你是否符合EIP-20 (ERC-20)的标准,这将为整个社区所理解?另一个问题是,这是业务逻辑的合理实现吗?

后一个问题超出了这里的范围,因为你还没有提供足够的信息。所以我会先讲,这就是你想知道的。

我解释这一点的原因是因为您专注于实现细节,但是ERC20是一个接口标准,所以它一般不会规定应该如何实现。

totalSupply而言,所有标准上说都是:

totalSupply 返回总令牌供应。 function totalSupply() public view returns (uint256)

如果不清楚这意味着什么,EIP将链接到OpenZeppelin合同作为示例实现,其中包括:

代码语言:javascript
复制
/**
* @dev Total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
  return _totalSupply;
}

因此,只要返回造币标记的总数,就可以了。如果在内部将其计算为其他两个私有变量的之和,这并不重要。从您所写的内容来看,我确实对您的实现有一些挥之不去的疑虑,但正如我所说,这是超出范围的:)

我不愿再加上这个,可能会把水弄得浑浊,但是..“存在的标记”有点含糊不清。有时,人们有自己的刻录功能,将其实际转移到零地址(而不仅仅是事件),有效地将其从循环供应中移除,并相应地调整总供应量。因此,它们的totalSupply将返回仅由非零地址持有的令牌数。封锁探险者可能解释这一点,也可能不解释。除非你知道自己在做什么,否则我不会这么做的。

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

https://stackoverflow.com/questions/74184527

复制
相关文章

相似问题

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