繁体   English   中英

Java Ledger API-在Submit命令中返回contractId

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM