我试图获取已执行命令的最新合同 ID。当合约被执行时,Ledger API 中的 CommandService 没有返回最新的合约 ID。我可以看到 SubmitAndWait 根据以下文档链接返回空值。
https://docs.daml.com/app-dev/ledger-api-introduction/proto-docs.html#commandservice
有没有其他方法可以帮助我们获取已执行/创建的合约 ID?
另外,有什么方法可以帮助我根据合同 ID 提取合同信息?
我试图获取已执行命令的最新合同 ID。当合约被执行时,Ledger API 中的 CommandService 没有返回最新的合约 ID。我可以看到 SubmitAndWait 根据以下文档链接返回空值。
https://docs.daml.com/app-dev/ledger-api-introduction/proto-docs.html#commandservice
有没有其他方法可以帮助我们获取已执行/创建的合约 ID?
另外,有什么方法可以帮助我根据合同 ID 提取合同信息?
您可以使用事务服务订阅事务流,并将传入事务与command_id
您用于发送创建/执行命令的事务进行匹配。
更新:从DAML SDK 0.12.15(发布于 2019-05-06)开始,我们向CommandService添加了一些新的服务方法,使您想做的事情变得更加容易:
SubmitAndWaitForTransaction
SubmitAndWaitForTransactionTree
两种服务方法都采用SubmitAndWaitRequest
(就像SubmitAndWait
),响应分别包含结果Transaction
或TransactionTree
,您可以检查新创建的合同并从中执行。