为基于角色的权限编写以太坊智能合约



如何编写智能合约来为交易提供基于角色的权限。 假设有五个人A,B,C,D和E。A 想向 B 发送一些以太币。但除非C,D和E确认/批准,否则交易将不会发生。

可以用以太坊智能合约吗?有人可以给我相同的示例代码吗?

提前谢谢。

您可以创建这样的智能合约,尽管在这种情况下使用多重签名帐户会更好。

您可以编写一个简单的合约,在收到所需的不同签名后验证交易。 e..克 :

contract C{
address A;
address B;
address C;

mapping (address=>bool) permission;
function send_permission(address _to, uint value)
{
if(permission[A]&&permission[A]&&permission[A])
_to.transfer(value);
}

function set_permission(bool state)
{
permission[msg.sender]=state;
}
}

对于动态解决方案,您需要创建 2 个映射,一个用于可以批准交易的用户(为简单起见,我们称他们为版主(,另一个用于权限

逻辑是,当用户发送交易时,我们会在批准映射中看到他是否获得批准,如果是,则通过交易,否则将还原。

您需要为用户创建一个函数才能获得批准。

以及一个允许主持人批准地址的功能,我们将在其中检查版主映射中是否存在主持人。 如果是,他可以将未批准的用户添加到批准的映射中。

请记住,在此解决方案中,一旦地址获得批准,该地址就可以发送多个交易而无需检查,但是如果要限制哪个地址可以发送哪个事务,则必须将第二个映射修改为嵌套映射,在其中跟踪地址,交易编号和布尔值

最新更新