问题描述
我正在做一些练习来了解 daml,其中一个练习涉及将资产从一方转移到另一方。一切正常,但我注意到前一个资产合约的所有者被标记为新资产合约的“见证人”(在 Assets.Asset:Asset
,ID 为 #8:2
的合约有 {{1} } 用 Alice
、W
标记)。
我对此很感兴趣。一方作为合同的“见证人”是什么意思,其含义是什么?我在文档中没有找到答案......
这是我使用过的一些代码。我已经应用了提议-接受模式。
Witness
解决方法
这意味着 Alice
看到了新合约 (#8:2
) 的创建,因为她是旧合约 (#6:2
) 的一方,在它被 {{ 1}} 在 Bob
上锻炼 AcceptAssetTransfer
。这意味着 HolderRole
可以看到 Alice
成为 Bob
的新所有者,但不会看到任何涉及 Asset
的未来事件,例如由于将资产发送给另一方。
此外,即使 Asset
看到/见证了新合同的创建,但在她目睹的一次性事件之后,她也无法查询。
有时文档有点难搜索,所以这里有一些相关链接:
- A simple overview of the meaning of S,O,W,and D in the Script output
- The ledger privacy model
- A more detailed explanation on witnessing and divulgence
- An explanation of contract consumption in general
因为这个问题也在我们的论坛 further discussion may be located here 上同时被问到。