有人知道调用外部契约时EVM的堆栈和内存发生了什么吗?
堆栈和内存是为了外部契约执行其代码而被“清理”,还是在前面的代码之上添加了新变量(在我看来,这可能是潜在的危险,因为外部契约可以操作原始的契约变量值……)?
我知道当调用外部契约时,上下文会发生变化,我只会假设堆栈和内存也会发生同样的情况(基本上,我认为堆栈和内存是调用之间交换的上下文的一部分),但是我在任何地方都找不到确认.
发布于 2022-06-01 00:15:34
您可以在另一个问题中找到答案:堆栈是否通过外部调用持久存在?
收件人合同没有访问调用方合同堆栈的权限。有两个独立的堆栈:一个本地堆栈,其中推送和删除变量(仅对正在执行的契约实例可访问);一个存储调用的全局调用堆栈(合同无法访问)。
记忆也是如此。
https://ethereum.stackexchange.com/questions/129293
复制相似问题