代码之家  ›  专栏  ›  技术社区  ›  kleash

同一合同中的多个州在验证时失败

  •  2
  • kleash  · 技术社区  · 8 年前

    这是我在CordApp中实现的: CordApp

    现在在做流测试的时候,它一直通过到合同C。但是合同D的流测试失败了。根据记录, 它试图使用相同的命令验证所有状态(即i/p和o/p)。

    我发现了一个类似的问题: Transaction verification failed when using different type of states as input and output

    但如果这是真的,那么我的合同C流测试用例也应该失败?

    然而,正如在回答中提到的,我删除了对合同D中输入状态的验证,这样一个合同将只验证一个状态。但同样的错误还是会发生。

    有什么问题吗?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Joel    8 年前

    注意:

    • 合同不检验个别国家,而是检验整个交易
    • 在验证事务时,输入和输出状态的协定都将运行

    所以在你的情况下,如果我正确理解你的图表:

    • 第一个事务(从左起)没有输入、输出 StateA ,并通过运行 ContractA (与 斯塔塔 )
    • 第二个事务没有输入、输出 StateB ,并通过运行 ContractB (与 )
    • 第三个事务有输入 ,输出 StateC ,并通过运行 合同 (与 )以及 ContractC (与 )
    • 第四个事务(在最右边)有输入 斯塔塔 ,输出 StateD ,并通过运行 契约 (与 斯塔塔 ), 合同 (与 )以及 ContractD (与 规定的 )
    推荐文章