[英]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.