首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >msg.sender前面有什么东西吗?

msg.sender前面有什么东西吗?
EN

Ethereum用户
提问于 2021-05-12 05:35:43
回答 1查看 222关注 0票数 1

Tx.origin是利用msg.sender后面的处理地址的一种旧方法。但是,假设我,作为一个用户,正在调用一个合同,而这个合同称为一个合同。合同B有什么办法..。具体来说,只接收来自合同A的电话,意思是,在msg.sender前面有什么东西,比如tx.origin在msg.sender后面。

示例

我=>合同A =>合同B

Tx.origin => Msg.sender => ??

如果我从“我”的地址打电话到合同A,那么合同B有什么办法来说明“嘿,只有合同A才能打电话给我”?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2021-05-12 05:48:29

您唯一的选择是tx.originmsg.sendertx.origin是发送事务的原始EOA (外部拥有的帐户),而msg.sender是当前(内部)事务的发件人。

从合同的角度来看,msg.sender始终是调用链中的前一个契约或EOA。因此,在"EOA => ContractA => ContractB“链中,在ContractB的上下文中,msg.sender就是ContractA。在ContractA的上下文中,msg.sender是EOA。

如果链为"EOA => ContractA = ContractB => ContractC",则ContractC无法知道中间有ContractA。

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

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

复制
相关文章

相似问题

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