首页 > 解决方案 > 3rd 方可以检查他不知道的状态,并将此状态添加到流中作为输入状态吗?

问题描述

这是我在github上的deliverydemo源代码

我的场景:

  1. A 向 B 发放代币
  2. B 向 C 下订单
  3. C 将货物交付给 B,并尝试启动从 B 取回令牌的流程。

我的问题:


根据 Joel 的建议,我尝试在我的 OrderDeliveredFlow 中发送一些请求并从 PartyB 上的 PartyC 接收 StateAndRef。

不幸的是,似乎 JAVA 不支持“解包”,但 Kotlin 支持。在我添加一个用于发送和接收 Java.String 的小段并在一个可行的流程中解开它之后 - 我的令牌发布流程,这个流程会引发这个错误 - "missing parameter name at index 0 {}"

我认为一个可能的解决方案是在 Kotlin 中创建一个新流程,就像“CollectSignaturesFlow”一样。否则,我必须将我的 Java 代码翻译成 Kotlin。

标签: corda

解决方案


C 不知道令牌状态的存在,因此不能自己将它们添加到事务中。

相反,C 应该要求 B 发送她想要花费的令牌状态,并将它们添加到交易中。

流程代码如下所示:

val otherPartySession = initiateFlow(otherParty)
val tokenState = otherPartySession.receive<StateAndRef<Cash.State>>().unwrap { it }
txBuilder.addInputState(tokenState)

推荐阅读