【发布时间】:2021-09-30 13:04:39
【问题描述】:
我有兴趣跟踪各州的保险库更新。每当在交易中产生或使用特定合约状态类型的状态时,比如Token,我都想接收更新。我使用以下查询条件
val queryCriteria = QueryCriteria.VaultQueryCriteria(Vault.StateStatus.ALL)
.and(
QueryCriteria.VaultQueryCriteria(
timeCondition = QueryCriteria.TimeCondition(
QueryCriteria.TimeInstantType.RECORDED,
ColumnPredicate.BinaryComparison(
BinaryComparisonOperator.GREATER_THAN_OR_EQUAL,
offset
)
)
)
)
一起
ops.vaultTrackByWithSorting(
TokenState::class.java,
queryCriteria,
Sort(
setOf(
Sort.SortColumn(
SortAttribute.Standard(Sort.VaultStateAttribute.RECORDED_TIME),
Sort.Direction.ASC
),
Sort.SortColumn(
SortAttribute.Standard(Sort.CommonStateAttribute.STATE_REF_INDEX),
Sort.Direction.ASC
)
)
)
)
有趣的是,我确实看到了产生Tokens 的更新,但是当Tokens 被消耗时我看不到任何更新。我正在使用 Corda 4.6。
我知道_trackBy 在查询条件方面的限制,但是,根据我的理解,根据 Corda 的 vault api 文档,上述代码应该同时监听产生 (UNCONSUMED) 和消费(CONSUMED) 状态更新。这是一个已知的错误,还是我做错了什么?
【问题讨论】:
标签: corda