Вот пример RPC-клиента, который возвращает все состояния, сохраненные узлом после времени x
:
fun main(args: Array<String>) {
// Getting an RPC connection to the node.
require(args.size == 2) { "Usage: ExampleClientRPC <node address> <time>" }
val nodeAddress = NetworkHostAndPort.parse(args[0])
val client = CordaRPCClient(nodeAddress)
val rpcOps = client.start("user1", "test").proxy
val startTime = Instant.parse(args[2])
val queryAfterTimeExpression = TimeCondition(
RECORDED, BinaryComparison(GREATER_THAN_OR_EQUAL, startTime))
val queryAfterTimeCriteria = VaultQueryCriteria(
status = Vault.StateStatus.ALL,
timeCondition = queryAfterTimeExpression)
val queryAfterTimeResults = rpcOps.vaultTrackBy<ContractState>(queryAfterTimeCriteria)
val afterTimeStates = queryAfterTimeResults.updates
}