在Corda中,如何获取交易发生的时间戳? [英] In Corda, how to get the timestamp of when a transaction happened?
本文介绍了在Corda中,如何获取交易发生的时间戳?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Corda 3.2。给定 SignedTransaction
,如何确定何时记录?
I am using Corda 3.2. Given a SignedTransaction
, how can I establish when it was recorded?
推荐答案
没有直接的API可以确定何时记录交易。但是,您可以通过以下任一方法来实现此目的:
There is no direct API for determining when a transaction was recorded. However, you can achieve this by checking either:
-
当消耗了一笔交易的输入时:
When one of the transaction's inputs was consumed:
val inputStateRef = signedTx.inputs[0]
val queryCriteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(inputStateRef))
val results = serviceHub.vaultService.queryBy<ContractState>(queryCriteria)
val consumedTime = results.statesMetadata.single().consumedTime!!
记录到交易的输出之一时:
When one of the transaction's outputs was recorded:
val ledgerTx = signedTx.toLedgerTransaction(serviceHub)
val outputStateRef = StateRef(signedTx.id, 0)
val queryCriteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(outputStateRef))
val results = serviceHub.vaultService.queryBy<ContractState>(queryCriteria)
val recordedTime = results.statesMetadata.single().recordedTime
这篇关于在Corda中,如何获取交易发生的时间戳?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文