在Corda中,如何获取事务发生的时间戳?

在Corda中,如何获取事务发生的时间戳?,corda,Corda,我正在使用Corda 3.2。给定一个已签名交易,我如何确定交易记录的时间?没有直接的API来确定交易记录的时间。但是,您可以通过选中以下任一项来实现此目的: 当事务的一个输入被消耗时: val inputStateRef = signedTx.inputs[0] val queryCriteria = QueryCriteria.VaultQueryCriteria(stateRefs = listOf(inputStateRef)) val results = serviceHub.vaul

我正在使用Corda 3.2。给定一个
已签名交易
,我如何确定交易记录的时间?

没有直接的API来确定交易记录的时间。但是,您可以通过选中以下任一项来实现此目的:

  • 当事务的一个输入被消耗时:

    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!!
    
    val inputStateRef=signedTx.inputs[0]
    val queryCriteria=queryCriteria.VaultQueryCriteria(stateRefs=listOf(inputStateRef))
    val results=serviceHub.vaultService.queryBy(queryCriteria)
    val consumedTime=results.statesMetadata.single().consumedTime!!
    
  • 记录交易的一个输出时:

    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
    
    val ledgerTx=signedTx.toLedgerTransaction(serviceHub)
    val outputStateRef=StateRef(signedTx.id,0)
    val queryCriteria=queryCriteria.VaultQueryCriteria(stateRefs=listOf(outputStateRef))
    val results=serviceHub.vaultService.queryBy(queryCriteria)
    val recordedTime=results.statesMetadata.single().recordedTime
    

  • 没有用于确定何时记录事务的直接API。但是,您可以通过选中以下任一项来实现此目的:

  • 当事务的一个输入被消耗时:

    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!!
    
    val inputStateRef=signedTx.inputs[0]
    val queryCriteria=queryCriteria.VaultQueryCriteria(stateRefs=listOf(inputStateRef))
    val results=serviceHub.vaultService.queryBy(queryCriteria)
    val consumedTime=results.statesMetadata.single().consumedTime!!
    
  • 记录交易的一个输出时:

    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
    
    val ledgerTx=signedTx.toLedgerTransaction(serviceHub)
    val outputStateRef=StateRef(signedTx.id,0)
    val queryCriteria=queryCriteria.VaultQueryCriteria(stateRefs=listOf(outputStateRef))
    val results=serviceHub.vaultService.queryBy(queryCriteria)
    val recordedTime=results.statesMetadata.single().recordedTime