首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Corda LinearState设置中两种未使用状态的FlowTest

Corda LinearState设置中两种未使用状态的FlowTest
EN

Stack Overflow用户
提问于 2018-02-06 14:16:55
回答 1查看 247关注 0票数 2

我正在尝试为带有FlowTest的流编写一个LinearState。在设置中,我需要创建一个LinearState,然后通过在第二个事务中使用第一个状态来创建该状态的第二个版本(具有相同的唯一标识符)。我遵循了v2.0教程中关于corda的步骤。

但是,当我查询保险库中的状态时,我会得到两个未使用的状态。我本以为他们中的一个已经被消耗掉了(因此有了Vault.StateStatus.UNCONSUMED)。

我已经为真正的代码编写了一个基于驱动程序的集成测试,这很好。所以我假设我已经为这种情况设置了错误的测试。

知道我该怎么做才能让保险库里只有一个未被消耗的状态?

复制这里的类似测试代码

非常感谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-07 10:47:57

在测试代码中,首先生成两个事务,然后使用以下代码同时记录这两个事务:

代码语言:javascript
复制
member1.database.transaction {
    member1.services.recordTransactions(tx1, tx2)
}

如果修改代码以便在第二个事务之前记录第一个事务,则流测试通过:

代码语言:javascript
复制
member1.database.transaction {
    member1.services.recordTransactions(tx1)
    member1.services.recordTransactions(tx2)
}

看起来,recordTransactions不一定按照它们作为参数传入的顺序记录这些事务。如果首先记录tx2,则无法找到要标记为已消费的tx1的输出状态。因此,tx1的输出状态仍未被消耗。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48645099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档