0

有没有办法自动返回contractId由如下命令生成的:

client.getCommandSubmissionClient().submit(...).blockingGet();

如果没有,最好的方法是什么?

4

2 回答 2

0

没有内置的同步 API 调用返回(成功)命令提交的结果事务。命令服务只返回命令完成(即成功/失败)。

做你想做的事情的一种方法是使用该commandId字段。它允许提交方关联命令提交和产生的交易。但是,您必须自己构建一个结合命令和事务服务的包装器。

于 2019-02-19T20:35:12.933 回答
0

查找您正在寻找的交易的一种简单方法是这样的:

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()在提交命令之前要求分类帐结束,并使用该偏移量来订阅交易。

于 2019-02-27T13:28:38.930 回答