从分类帐中获取当前状态的最佳方法

Best approach to get current state from ledger

鉴于状态列表显示在 Web 界面上,并且该界面上有一个 "update" 选项(因此,我需要实施修正流程),最好的方法是什么获取当前状态的 StateAndRef?

  1. 存储来自创建命令的事务 ID 并使用它来获取当前的 StateAndRef
  2. 通过当前状态的linearID
  3. 没关系

谢谢 马卡

对于 LinearState,我建议使用其 linearId:

检索您要花费的状态的最新版本
val queryCriteria = QueryCriteria.LinearStateQueryCriteria(linearId = listOf(linearId))
val iouStateAndRef = serviceHub.vaultQueryService.queryBy<IOUState>(queryCriteria).states.single()

第一行创建一个查询对象来检索 linearId 的状态。默认情况下,查询仅检索状态链的最新版本("head")。第二行使用查询从保险库中检索对象。

详情见https://docs.corda.net/api-vault-query.html