0

我试图获取已执行命令的最新合同 ID。当合约被执行时,Ledger API 中的 CommandService 没有返回最新的合约 ID。我可以看到 SubmitAndWait 根据以下文档链接返回空值。

https://docs.daml.com/app-dev/ledger-api-introduction/proto-docs.html#commandservice

有没有其他方法可以帮助我们获取已执行/创建的合约 ID?

另外,有什么方法可以帮助我根据合同 ID 提取合同信息?

4

1 回答 1

0

您可以使用事务服务订阅事务流,并将传入事务command_id您用于发送创建/执行命令的事务进行匹配。

更新:从DAML SDK 0.12.15(发布于 2019-05-06)开始,我们向CommandService添加了一些新的服务方法,使您想做的事情变得更加容易:

  • SubmitAndWaitForTransaction
  • SubmitAndWaitForTransactionTree

两种服务方法都采用SubmitAndWaitRequest(就像SubmitAndWait),响应分别包含结果TransactionTransactionTree,您可以检查新创建的合同并从中执行。

于 2019-04-08T07:03:41.480 回答