我正在尝试使用简单状态从一个帐户向另一帐户进行简单的资金转移。 2已创建一个用于发出转账请求的流程,其中包含现金转账,而创建的流程仅用于消耗该交易。我的问题是,是否可以在一个流中转移和消耗状态?
根据我的观点,交易必须在转移后使用,但也要在UI上显示。
Corda RPCQuery仅允许携带未使用状态的信息,如果我在上述事务中进行消耗,是否有办法显示已消耗事务的最后状态?
答案 0 :(得分:1)
CordaRPCOps
允许您查询未消耗状态,已消耗状态或两者。这是查询所有状态的简单方法:
val criteria = QueryCriteria.VaultQueryCriteria(Vault.StateStatus.ALL)
val results = proxy.vaultQueryBy<ContractState>(criteria)
要显示最后一个消耗状态,可以按消耗量降序检索所有消耗状态并抓取第一个状态,如下所示:
val criteria = QueryCriteria.VaultQueryCriteria(Vault.StateStatus.UNCONSUMED)
val sortColumn = Sort.SortColumn(SortAttribute.Standard(Sort.VaultStateAttribute.CONSUMED_TIME), Sort.Direction.DESC)
val sorting = Sort(listOf(sortColumn))
val results = proxy.vaultQueryBy<Obligation>(criteria, sorting = sorting)
val lastConsumedState = results.states[0]
答案 1 :(得分:0)