首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用create2()创建智能契约有什么好处?

使用create2()创建智能契约有什么好处?
EN

Ethereum用户
提问于 2021-06-04 16:33:23
回答 1查看 6.9K关注 0票数 12

为什么有人会使用create2()内联汇编代码来创建工厂模式中的子合同,而不是使用newContract()来创建"newContract“实例?

使用一种而另一种的好处和缺点是什么?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-06-04 17:19:11

在部署智能契约时,默认情况下使用CREATE操作码。所部署的契约地址按如下方式计算。

代码语言:javascript
复制
keccak256(senderAddress, nonce)

稍后将介绍CREATE2操作码,并允许您预先确定合同地址。合同地址是这样计算的。

代码语言:javascript
复制
keccak256(0xFF, senderAddress, salt, bytecode)

0xFF参数是防止与CREATE操作码发生冲突的常量。

salt参数是发送方在部署契约时发送的值。

您可能已经猜到,bytecode参数是您想要部署的智能契约的字节码。

如果您想在部署之前预先确定契约地址,您可以简单地循环不同的salt值并选择您喜欢的(或想要的)。

这里可以看到使用CREATE2的一个很好的例子。适用于CREATE2操作码

编辑:使用new关键字创建一个契约要求您了解合同的源代码。使用new关键字创建契约之后,它将返回创建的契约地址。

这还使用后面的CREATE操作码来创建契约。

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

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

复制
相关文章

相似问题

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