daml表示法中的'signatory'关键字是什么意思?

时间:2019-06-09 11:50:51

标签: daml

在DAML合同中,signatory关键字有什么作用?例如,在Iou合同中,signatory issuer, owner行实际上是什么意思?

这是否意味着所有者和发行者都应该相同?

1 个答案:

答案 0 :(得分:0)

DAML作为建模语言的引人注目的功能之一是,它旨在帮助解决涉及授权和委派的问题。为了实现此DAML具有代表独立分类帐参与者的一流类型Party帐簿上的每个合同都必须由一个或多个当事方授权可以创建。

模板中的signatory表达式定义了谁必须授权创建此模板的合同实例。这样做是根据提议的合同实例中包含的数据进行的-这意味着任何能够看到试图创建合同的交易的一方,也都具有足够的数据来验证创建是否得到了适当授权。

就Iou合同而言:

template Iou
  with
    issuer : Party
    owner : Party
    currency : Text
    amount : Decimal
    observers : [Party]
  where
    signatory issuer, owner
  ...

希望创建借据的一方必须填写以下记录:issuerownercurrency等。然后,他们必须将该记录传递给create函数在提交到分类帐的交易中。对create的调用必须得到issuerowner的授权,但不需要observers的授权,因为它们没有被列为签署人。

请注意,issuerowner是同一方是合法的。实际上,这是将create合法地直接提交到分类账的唯一方法,因为单个分类账交互只能由单方授权。更大的授权集必须作为更大事务的一部分而出现,要使用总账中已有其他合同的委托授权。

有关此问题的更多信息,尤其是有关如何进行授权委派的信息,请参阅DAML文档:https://docs.daml.com/concepts/ledger-model/ledger-structure.html

有关工作示例,请参见:https://docs.daml.com/daml/patterns/initaccept.html和DAML文档的模式部分中的其他示例。