daml - 如何使用 Ledger API - Python 版本获取已执行的合约 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
,您可以检查新创建的合同并从中执行。
推荐阅读
- html - 底部和顶部页面的 HTML 链接
- sql-server - SQL Server:借记卡条件交易
- angular - ResizeTextArea 角度为 5
- css - 带有对话流的 ionic3 聊天 UI
- f# - 如何忽略异步块中异步函数的返回值?
- python - 使用烧瓶格式化电话号码以进行演示和数据库输入
- r - 线性回归:eval 中的错误(predvars、data、env):找不到对象“G3”
- reactjs - 使用 setState() 值不会改变,反应嵌套 API 调用
- neural-network - 调试 GAN 覆盖错误
- c# - 我可以在 ASP.NET Core 解决方案中使用 EF 6 吗?