首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >铸造脚本以未知的tx.origin地址运行。我该怎么改呢?

铸造脚本以未知的tx.origin地址运行。我该怎么改呢?
EN

Ethereum用户
提问于 2023-01-19 07:04:56
回答 1查看 308关注 0票数 1

我正在运行一个铸造脚本,它部署一些合同并调用它们。我开始我的运行函数

代码语言:javascript
复制
      function run() public {
            uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
            vm.startBroadcast(deployerPrivateKey);
...

            address(contract).call(
                    abi.encodeWithSignature(
                        "function(uint256,bytes8,address)",
                        var1,
                        var2,
                        var3
                    )
                );
                vm.stopBroadcast();
            }

在被调用的契约中,我总是将tx.origin作为地址: 0x1804c8ab1f12e6bbf3894d4083f33e07309d1f38。我假设这是某种铸造脚本部署地址。然而,msg.sender是我的正确地址。

如果我使用tx.origin (),我能够正确地设置vm.prank和msg.sender,但是我需要脚本来与现有的链上契约进行交互。我想我需要的是startBroadcast,而不是vm.prank()。

那个地址真的是默认部署者地址吗?

我怎样才能让tx.origin成为我的地址呢?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2023-01-22 03:06:37

在执行伪造脚本命令时,请包括--sender--private-key钱包选项,以更改tx.origin地址。

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

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

复制
相关文章

相似问题

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