Java 账本 API - return 提交命令中的 contractId
Java Ledger API - return contractId in submit command
有没有办法自动 return 由如下命令生成的 contractId
:
client.getCommandSubmissionClient().submit(...).blockingGet();
如果不是,最好的方法是什么?
没有内置的同步 API 调用 returns 一个(成功的)命令提交的结果事务。命令服务仅returns命令完成(即success/fail)。
一种方法是使用 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()
请求分类帐结束,并使用该偏移量订阅交易。
有没有办法自动 return 由如下命令生成的 contractId
:
client.getCommandSubmissionClient().submit(...).blockingGet();
如果不是,最好的方法是什么?
没有内置的同步 API 调用 returns 一个(成功的)命令提交的结果事务。命令服务仅returns命令完成(即success/fail)。
一种方法是使用 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()
请求分类帐结束,并使用该偏移量订阅交易。