首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用smart契约

调用smart契约
EN

Ethereum用户
提问于 2018-10-22 07:13:18
回答 1查看 161关注 0票数 1

如何限制由network.can中的任何帐户调用的智能契约?我告诉EVM本身检查(验证帐户)是否允许在进入智能契约执行之前调用智能契约。

EN

回答 1

Ethereum用户

发布于 2018-10-22 07:34:01

作为合同开发人员,您可以选择将您的合同函数编程为只能通过某些帐户访问。然而,这只能作为智能契约执行的一部分,而不是事先。在运行任何合同逻辑之前,今天不可能添加这样的限制。

这在smart契约中很常见,其中OnlyOwner修饰符用于只应由合同的“所有者”调用的函数。

您可以看到在这里定义了OnlyOwner修饰符:OpenZeppelin - Ownable.sol

最后,代码非常简单,它添加了以下要求:

代码语言:javascript
复制
require(msg.sender == _owner);

如果调用地址与先前定义的_owner值不匹配,则该行将失败。

您可以在任何函数前面添加类似于此的代码,如果未经授权的用户试图访问这些函数,则这些函数调用将失败。您可以想象将_owner变量转换为有权调用函数的地址的数组或映射,然后更新修饰符以检查是否基于该列表授权了msg.sender

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

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

复制
相关文章

相似问题

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