从公证人处请求 StateStatus
Request StateStatus from a Notary
CorDapp 是否可以通过任何方式询问公证人在交易中使用状态之前是否已使用状态?
背景:
我正在测试 FungibleToken
指向 EvolvableTokenType
的点。最终 EvolvableTokenType
的变化和非 EvolvableTokenType
参与者的代币持有者最终在他们的金库中的状态被不知不觉地消耗掉了。当他们尝试执行涉及这些状态的交易时,公证人将拒绝签名,因为它知道状态已被消耗。
我已经编写了联系参与者并请求缺失状态的流程。但是,如果我可以先询问公证人是否需要这样做,效率会更高(即,如果状态尚未被消耗,我不需要向参与者询问更新)。
你可以通过几种方式来做到这一点。
例如,在您的保险库查询中,您只需确保过滤 StateStatus = UNCONSUMED。这是您可以确保它按您期望的方式工作的一种方式,并且您永远不会得到不符合您标准的状态。
查看有关 vaultQuery 的文档的这一部分:https://docs.corda.net/docs/corda-os/4.7/api-vault-query.html#querycriteria-interface
我推荐的另一种可能也有效的方法是将此过滤器包含在交易的合同验证中,但在流程级别执行此操作只会早日发现问题。
CorDapp 是否可以通过任何方式询问公证人在交易中使用状态之前是否已使用状态?
背景:
我正在测试 FungibleToken
指向 EvolvableTokenType
的点。最终 EvolvableTokenType
的变化和非 EvolvableTokenType
参与者的代币持有者最终在他们的金库中的状态被不知不觉地消耗掉了。当他们尝试执行涉及这些状态的交易时,公证人将拒绝签名,因为它知道状态已被消耗。
我已经编写了联系参与者并请求缺失状态的流程。但是,如果我可以先询问公证人是否需要这样做,效率会更高(即,如果状态尚未被消耗,我不需要向参与者询问更新)。
你可以通过几种方式来做到这一点。
例如,在您的保险库查询中,您只需确保过滤 StateStatus = UNCONSUMED。这是您可以确保它按您期望的方式工作的一种方式,并且您永远不会得到不符合您标准的状态。
查看有关 vaultQuery 的文档的这一部分:https://docs.corda.net/docs/corda-os/4.7/api-vault-query.html#querycriteria-interface
我推荐的另一种可能也有效的方法是将此过滤器包含在交易的合同验证中,但在流程级别执行此操作只会早日发现问题。