如何限制由network.can中的任何帐户调用的智能契约?我告诉EVM本身检查(验证帐户)是否允许在进入智能契约执行之前调用智能契约。
发布于 2018-10-22 07:34:01
作为合同开发人员,您可以选择将您的合同函数编程为只能通过某些帐户访问。然而,这只能作为智能契约执行的一部分,而不是事先。在运行任何合同逻辑之前,今天不可能添加这样的限制。
这在smart契约中很常见,其中OnlyOwner修饰符用于只应由合同的“所有者”调用的函数。
您可以看到在这里定义了OnlyOwner修饰符:OpenZeppelin - Ownable.sol
最后,代码非常简单,它添加了以下要求:
require(msg.sender == _owner);如果调用地址与先前定义的_owner值不匹配,则该行将失败。
您可以在任何函数前面添加类似于此的代码,如果未经授权的用户试图访问这些函数,则这些函数调用将失败。您可以想象将_owner变量转换为有权调用函数的地址的数组或映射,然后更新修饰符以检查是否基于该列表授权了msg.sender。
https://ethereum.stackexchange.com/questions/60970
复制相似问题