看下面这个简单实例(单个合约中,不同账户调用):
pragma solidity ^0.4.25;
contract TestMSG_SENDER{
function show() public view returns(address){
return msg.sender;
}
}
我们在本地测试,不去公网或公网测试网;
测试第一步然后我们切换账户地址,也就是上图中的Account选项,见下图:
切换账户地址 测试第二步我们发现这个时候得到的地址与切换以后的账户地址相同;
当在其他合约中调用这个方法的时候,先看代码:
pragma solidity ^0.4.25;
contract TestMSG_SENDER{
function show() public view returns(address){
return msg.sender;
}
}
contract TestMSG_SENDER_1{
TestMSG_SENDER contractAddr;
constructor(address _contractAddr) public{
contractAddr = TestMSG_SENDER(_contractAddr);
}
function visitShow() public view returns(address){
return contractAddr.show();
}
}
合约调用测试结果我们发现谁调用,返回的就是谁的地址。
网友评论