Corda Transaction Time получить из хранилища Query - PullRequest
0 голосов
/ 01 октября 2018

Возможно ли получить время транзакции, которое можно увидеть в vault_state через запрос хранилища?

1 Ответ

0 голосов
/ 01 октября 2018

Да.Время, в течение которого состояние было израсходовано, можно найти в поле 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
    }
}
...