首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Create2的燃气成本

Create2的燃气成本
EN

Ethereum用户
提问于 2022-04-30 04:16:37
回答 1查看 348关注 0票数 1

我编写了一个非常简单的程序来测试create2()。该程序有两个契约,一个空firstContract和一个通过create2部署firstContract的测试契约。密码在下面。然后我调用deployContract()两次。第一次花费10^5气体。第二次费用为10^9气体。我知道这是地址冲突,因为create2()在第一次和第二次返回相同的地址。但是它没有报告错误,它第二次比第一次要花费更多的汽油。

代码语言:javascript
复制
contract firstContract {}

contract test{

    address addr;

    function deployContract() external returns(address temp){

        bytes32 salt = keccak256(abi.encodePacked(addr));

        bytes memory bytecode = type(firstContract).creationCode;

        assembly {
            temp := create2(0, add(bytecode, 32), mload(bytecode), salt)
        }
    }
}
EN

回答 1

Ethereum用户

发布于 2022-05-06 09:23:37

CREATE2的基本气体成本与CREATE (32000)相同,但也需要额外的哈希初始化代码。它在EIP-1014中定义:

hashcost = GSHA3WORD * ceil(len(init_code) / 32)

然而,你的问题似乎是,你的第二次尝试失败了,因此消耗了所有提供的天然气,在这里:显然10亿。(我不知道你会在哪里指定10^9的汽油限制。)

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

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

复制
相关文章

相似问题

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