我正在尝试通过 Corda CRaSH 外壳检查已消耗和未消耗的现金状态。从文档(https://docs.corda.net/releases/release-V2.0/shell.html?highlight=crash%20shell(中,它说可以使用shell中的run命令调用RPC。有没有比 YAML 链接更好的指南?如何通过外壳调用已用和未用的现金状态?
非常感谢
语法记录在此处:https://docs.corda.net/shell.html#querying-the-vault。您可以通过 shell 查询节点的保管库以获取现金状态,如下所示:
run vaultQuery contractStateType: net.corda.finance.contracts.asset.Cash$State
但是,这默认为仅返回未使用的状态。理论上,您可以使用以下语法查询已使用和未使用的状态:
run vaultQueryByCriteria
criteria: { status: net.corda.core.node.services.Vault.StateStatus.ALL },
contractStateType: net.corda.finance.contracts.asset.Cash$State
但是,criteria
参数的类型是 QueryCriteria
,这是一个抽象类。无法通过 shell 指定要使用具体的子类VaultQueryCriteria
。因此,您得到以下错误:
无法解析为命令:无法构造
net.corda.core.node.services.vault.QueryCriteria
的实例(不存在创建者,如默认构造(:抽象类型要么需要映射到具体类型,要么具有自定义反序列化程序,要么包含其他类型信息