首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继承链上的SafeMath库与SafeMath合同

继承链上的SafeMath库与SafeMath合同
EN

Ethereum用户
提问于 2018-04-26 13:06:51
回答 2查看 840关注 0票数 1

各位,我正在开发ERC-20令牌,我想知道为什么SafeMath被用作OpenZeppelin实现中的库?如果我们把它作为继承链上的基础合同提供,难道不是更理想吗?

EN

回答 2

Ethereum用户

回答已采纳

发布于 2018-04-26 13:09:32

SafeMath的函数都声明为internal。这意味着实际上不必部署库,因为函数由编译器“内联”:它们的代码只是从库代码复制到调用函数。

contract A is BA这样的继承关系是B。在SafeMath的情况下,如果我只想在另一个合同中使用SafeMath的S功能,那就不适用了。

票数 5
EN

Ethereum用户

发布于 2018-04-26 14:45:34

实际上,就气体成本而言,它在用作库时更为理想,因为您不进行外部函数调用(库函数驻留在您的合同中)。

此外,SafeMath本质上是一个“库”,即它提供了一种特定但通用的功能,因此将其声明为库更有意义。

它唯一的缺点是库,如果您想要对它进行更改,那么您必须重新部署整个契约,因为它不包含对SafeMath契约的引用,为此您可以预先添加一个setter函数。

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

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

复制
相关文章

相似问题

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