在 Ethereum Remix JavaScript VM 上从特定账户执行solidity合约方法
Posted
技术标签:
【中文标题】在 Ethereum Remix JavaScript VM 上从特定账户执行solidity合约方法【英文标题】:Execute solidity contract methods from specific account on Ethereum Remix JavaScript VM 【发布时间】:2020-02-24 13:12:03 【问题描述】:我目前在 ethereum.remix.org 上制作测试合约。 但是如何在测试文件中指定发送合约调用的账户?
contract test
MyContract contract;
address creator = address(0);
address payable account2 = address(1);
address payable account3 = address(2);
address payable account4 = address(3);
function beforeAll () public
contract = new MyContract();
function makeCallFromAccount2 ()
contract.function1(10);
如何指定 contract.function1(10) 从账户 2 执行? (这很重要,因为合约方法使用 msg.sender 值)
【问题讨论】:
【参考方案1】:虽然关于如何使用的文档很少,但显然你可以做到这一点: https://github.com/ethereum/remix/tree/master/remix-tests#use-a-different-sender-msgsender
【讨论】:
感谢您的回答,但我想在测试合约中切换账户,例如从账户 1 执行 method1,从账户 4 执行 method2。你当然是对的,我可以在 GUI 上手动切换账户并手动执行合约方法调用,但我想写一个测试合约,可以在测试文件 /contract 中切换账户。 抱歉,我错过了您想在测试合同中执行此操作。看起来你可以做到,虽然文档没有很多细节。以上是关于在 Ethereum Remix JavaScript VM 上从特定账户执行solidity合约方法的主要内容,如果未能解决你的问题,请参考以下文章