如何从Corda M12.1中的MockNode的vaultService获取合同状态?

时间:2017-07-14 07:24:31

标签: corda

我已经创建了用于测试CorDapp的MockNetwork和MockNodes。 然后我成功执行了Flows with State。它帮助我将状态存储在分类帐中。

我可以使用以下方法获取以前存储的状态:

mockNode1.rpcOps.vaultAndUpdates().first
        .filterStatesOfType<SsiState>()

但无法使用mockNode1的vaultService 获取相同的状态:

mockNode1.services.vaultService.track().first.states

mockNode1.vault.track().first.states

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

解决方案是改装为Corda M13。在M12.1中,新的保险库查询界面(query()track())仅部分实施,因此它的行为不符合预期。

或者,如果您希望继续使用M12.1,则可以使用mockNode1.services.vaultService.states()代替。值得注意的是,此方法将在以后弃用,以支持您最初尝试使用的新接口,并在此处定义:https://docs.corda.net/api-vault.html