美文网首页程序员
solidity中msg.sender到底是啥,其实很简单

solidity中msg.sender到底是啥,其实很简单

作者: 吴敬悦 | 来源:发表于2018-11-23 18:00 被阅读176次

看下面这个简单实例(单个合约中,不同账户调用):

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();

    }

}

合约调用测试结果

我们发现谁调用,返回的就是谁的地址。

相关文章

网友评论

    本文标题:solidity中msg.sender到底是啥,其实很简单

    本文链接:https://www.haomeiwen.com/subject/ypgjqqtx.html