如何解决如何在Daml中将四方中的一方定义为控制方
我有五方,即 A、B、C、D 和 E。A 方定义为签约方,其余四方为控制方,但我的要求是任何一方都可以担任控制方,但我不确切知道哪一方是控制者,我怎么能做到这一点? 我的尝试:
控制器[b,c,d,e] 可以 批准:ContractId 测试 和 ... 得到错误说需要授权人 b,e 但只给出 b
我希望四方(b、c、d、e)中的任何一方都可以选择“批准”。请帮帮我
谢谢
解决方法
controller [b,c,d,e]
要求所有四方都是控制者,而不是四方之一。为了允许后者,您可以使用名为 flexible controllers 的功能。这允许您使用范围内的选择参数定义控制器。然后您可以检查选择本身,该派对是您想要的四个之一。这是一个完整的示例,请注意我们明确地让其他方观察者,controller
语法通常会为您隐式执行此操作,但此处使用的灵活语法不会自动执行此操作。
module Main where
import Daml.Script
template T
with
a : Party
b : Party
c : Party
d : Party
e : Party
where
signatory a
observer [b,e]
choice Approve : ()
with
actor : Party
controller actor
do assert (actor `elem` [b,e])
pure ()
test = script do
a <- allocateParty "a"
b <- allocateParty "b"
c <- allocateParty "c"
d <- allocateParty "d"
e <- allocateParty "e"
cid <- submit a $ createCmd (T a b c d e)
submit b $ exerciseCmd cid (Approve b)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。