我正在使用Corda中的事件计划功能。我在一种状态下添加了相同的内容。现在,我想在现有状态被接受时自动创建另一个状态。接受功能与一方有关,而触发创建另一个状态的动作必须与另一方本身有关。当我尝试这样做时,两个启动器都是相同的。创建新状态流时如何将另一方设置为发起方?
PS:我们正在遵循一个项目结构,该结构具有用于合同状态和流程的单独模块。
答案 0 :(得分:0)
实现此目标的一种方法是:
这里是一个例子:
@InitiatingFlow
@SchedulableFlow
class InitiatorFlow(val counterparty: Party) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
// We send a flag message to the counterparty, causing them to start their responder flow.
val session = initiateFlow(counterparty)
session.send(true)
}
}
@InitiatedBy(InitiatorFlow::class)
class InitiatedFlow(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
// We process and discard the flag message.
counterpartySession.receive<Boolean>()
// TODO: Create the new state based on the acceptance.
}
}