首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查地址是否是Vyper中的活动合同?

如何检查地址是否是Vyper中的活动合同?
EN

Ethereum用户
提问于 2019-08-09 03:42:50
回答 2查看 241关注 0票数 1

通常出于安全原因,我希望将某些地址参数限制为合同中某些函数的非合同地址,即。在作为函数参数或作为msg.sender传入的地址上没有存储代码,因此为了确保地址不是一些攻击契约,这些攻击契约可能试图利用某些重入漏洞或有条件地阻塞以太网络等等。

考虑到可靠性,目前的标准方法似乎是使用内联程序集来检查地址上是否存储了代码。由于Vyper没有内联程序集,Vyper合同是否可以检查某些地址参数和/或事务发送方是否为契约?

EN

回答 2

Ethereum用户

发布于 2019-08-09 03:54:18

是的,您可以只做_address.is_contract,如果它是一个契约,它将返回true,如果不是,您可以从vyper:https://vyper.readthedocs.io/en/v0.1.0-beta.11/types.html读取更多的地址类型。

票数 1
EN

Ethereum用户

发布于 2019-08-09 03:49:12

在发布这个问题之后,我发现在vyper中,地址类型有一个名为“码大小”的成员,我猜这个成员可以用来检查一个地址是否是一个活动的契约,而在最新的vyper版本中,它似乎甚至有一个名为"is_contract“的新成员。

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

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

复制
相关文章

相似问题

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