繁体   English   中英

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

[英]Writing Ethereum Smart Contracts for Role based permission

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

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

提前致谢。

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

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

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 个映射,一个用于可以批准交易的用户(为简单起见,我们称他们为主持人),一个用于权限

逻辑将是当用户发送交易时,我们会看到他是否在批准映射中获得批准,如果是 go 尽管交易否则会恢复。

您需要制作 function 才能让用户获得批准。

和一个 function 允许版主批准一个地址,我们将在该地址中检查版主是否存在于版主映射中。 如果是,他可以将未批准的用户添加到批准的映射中。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM