首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msg.sender.balance和address(this).balance有什么区别?

msg.sender.balance和address(this).balance有什么区别?
EN

Ethereum用户
提问于 2022-08-23 00:03:37
回答 1查看 371关注 0票数 2

msg.sender.balanceaddress(this).balance有什么区别?

当我运行代码时,输出

msg.sender.balance = 99

address(this).balance =0

代码语言:javascript
复制
    // SPDX-License-Identifier: GPL-3.0
    pragma solidity >=0.7.1 <0.9.0;
    contract test{
        uint public myBalance1=msg.sender.balance;
        uint public myBalance2=address(this).balance;
        
    }
EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-08-23 00:17:32

address(this).balance是智能契约本身的平衡。

msg.sender.balance是进行事务的用户的余额,如果msg.sender是另一个契约,那么它就是另一个契约的余额。

this引用正在执行的契约实例。msg.sender是刚刚调用另一个契约的用户或契约。

我打电话给合同,然后msg.sender是你,msg.sender.balance是你的地址余额,是你用来发送交易的地址。this,在一个合同中,是你刚刚调用的合同,而不是你。

如果您调用一个A,而该合同调用另一个契约B,那么B内部的msg.sender将不是您,而是A的S契约地址。在A中,msg.sender是您,因为您是调用它的人,但是在B中,msg.senderA,因为被调用的B

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

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

复制
相关文章

相似问题

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