[英]Java Ledger API - return contractId in submit command
有没有一种方法可以自动返回由以下命令生成的contractId
:
client.getCommandSubmissionClient().submit(...).blockingGet();
如果没有,最好的方法是什么?
没有内置的同步API调用可返回(成功)命令提交的结果事务。 命令服务仅返回命令完成(即成功/失败)。
一种执行所需操作的方法是使用commandId
字段。 它允许提交方将命令提交与结果交易关联起来。 但是,您必须自己构建一个将命令和事务服务结合在一起的包装器。
查找所需交易的一种简单方法是:
client.getTransactionsClient()
.getTransactions(LedgerOffset.LedgerBegin.getInstance(), new FiltersByParty(Collections.singletonMap(party, NoFilter.instance)), false)
.filter(t => "MyCommandId".equals(t.getCommandId))
.singleOrError()
.blockingGet()
请注意,这里我们从LedgerBegin
阅读。 通常,您将在提交命令之前通过client.getTransactionsClient().getLedgerEnd()
要求分类帐结尾,并使用该偏移量来订阅交易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.