首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >create2不工作在tron中,会产生空字节码。

create2不工作在tron中,会产生空字节码。
EN

Stack Overflow用户
提问于 2022-05-20 19:09:45
回答 1查看 187关注 0票数 -2

因此,我有一个使用create2部署的合同,即定制盐。它在“以太”中运作得很完美,但与“创”却不是。当它被调用时,契约的结果(由create2创建)为空。契约ABI和字节码都显示为null。我不知道为什么会这样。我是不是遗漏了什么?

这是我的合同代码的一部分

代码语言:javascript
复制
function deploy(address _owner, uint256 _salt) public returns (address addr) {
        bytes memory bytecode = getBytecode(_owner);
        assembly {
            addr := create2(
                0,
                add(bytecode, 0x20),
                mload(bytecode),
                _salt
            )

            if iszero(extcodesize(addr)) {
                revert(0, 0)
            }
        }

        emit Deployed(addr, _salt);
    }

function getBytecode(address _owner) public pure returns (bytes memory) {
    bytes memory bytecode = type(Forwarder).creationCode;
    return abi.encodePacked(bytecode, abi.encode(_owner));
}

转发器是我的合同

这是我的合同之一,由create2部署

如果有人需要更多的信息,请告诉我。我想解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-19 11:34:43

因此,我们无法获得使用创支持团队所称的create2部署的协议的ABI和字节码。他们提供了一个解决方案,

代码语言:javascript
复制
let instance = await tronWeb.contract().at("TREwN2qRkME9TyQUz8dG6HfjEyKGMPHAS5");
instance.loadAbi([{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"}]);
let res = await instance.totalSupply().call({_isConstant:true})

因此,我们可以从合同地址获取实例并加载ABI,然后调用合同函数并执行操作。

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

https://stackoverflow.com/questions/72323791

复制
相关文章

相似问题

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