【发布时间】:2018-10-01 15:32:05
【问题描述】:
是否可以通过 vault query 获取在 vault_state 中可以看到的交易消耗时间?
【问题讨论】:
标签: corda
是否可以通过 vault query 获取在 vault_state 中可以看到的交易消耗时间?
【问题讨论】:
标签: corda
是的。您可以使用查询结果的statesMetadata 字段找到状态消耗的时间。
在流中:
@Suspendable
override fun call() {
val results = serviceHub.vaultService.queryBy(ContractState::class.java)
val statesAndMetadata = results.states.zip(results.statesMetadata)
statesAndMetadata.forEach { (stateAndRef, metadata) ->
val consumedTime = metadata.consumedTime
}
}
在 RPC 客户端中:
fun main(args: Array<String>) {
require(args.size == 1) { "Usage: TemplateClient <node address>" }
val nodeAddress = parse(args[0])
val client = CordaRPCClient(nodeAddress)
// Can be amended in the com.template.MainKt file.
val cordaRPCOps = client.start("user1", "test").proxy
val results = cordaRPCOps.vaultQueryBy<ContractState>()
val statesAndMetadata = results.states.zip(results.statesMetadata)
statesAndMetadata.forEach { (stateAndRef, metadata) ->
val consumedTime = metadata.consumedTime
}
}
【讨论】: