Corda 我如何向合同中添加一个限制谁可以调用特定命令的要求?
在开发我的第一个corDapp时,我认为能够从合同级别引用事务的发起方(流启动方)可能会很有用。原因是,尽管我的合同可以由任何一方调用,但我不一定要允许任何一方调用每个命令 在我的州,我有一个你可以称之为管理员的列表。这些管理员应该是唯一能够在此列表中发出命令的管理员,如RemoveAdmin()或AddAdmin() 根据发起人的引用,我不能从合同级别拒绝该命令(我认为应该在该级别拒绝该命令,因为这只是另一个命令约束),而是必须在响应者流级别拒绝该命令Corda 我如何向合同中添加一个限制谁可以调用特定命令的要求?,corda,smartcontracts,Corda,Smartcontracts,在开发我的第一个corDapp时,我认为能够从合同级别引用事务的发起方(流启动方)可能会很有用。原因是,尽管我的合同可以由任何一方调用,但我不一定要允许任何一方调用每个命令 在我的州,我有一个你可以称之为管理员的列表。这些管理员应该是唯一能够在此列表中发出命令的管理员,如RemoveAdmin()或AddAdmin() 根据发起人的引用,我不能从合同级别拒绝该命令(我认为应该在该级别拒绝该命令,因为这只是另一个命令约束),而是必须在响应者流级别拒绝该命令 还有人认为tx.initiator字段对
还有人认为tx.initiator字段对于我所描述的权限约束可能有用吗?如果没有,为什么在响应者流级别执行更好?我认为概念上的问题是,在Corda中,事务可以协同构建-例如,如果双方交换资产,并且部分tx被传递,以便他们可以使用各自的输入填充它。因此,在概念上并不总是有提议者/发起人。所以这个概念在Corda的数据模型中并不存在 尽管如此,您可以采取三种方法:
//确保运行此流的一方已经是管理员
if(AdminInputStateRef.state.data.participants中的Ouridenty!){
抛出IllegalArgumentException(“此流的发起人必须是管理员。”)
}