对方@InitiatedBy流如何接收参数?

时间:2018-09-08 10:46:53

标签: corda

交易对手流程(例如,TwoPartyTradeFlow中的买方)如何接收参数?文档没有向我很清楚地解释这一点。

到目前为止,在我看来,在TwoPartyTradeFlow中,卖方通过了另一方流程会话,尽管您也可以使用initiateFlow(party)自己对此进行初始化。在我看到的其他示例中,交易对手接收发起方的流程会话。但是,在此代码段中,买方会收到其他参数,例如公证,价格等。这些参数如何传递?

open class Buyer(private val sellerSession: FlowSession,
                 private val notary: Party,
                 private val acceptablePrice: Amount<Currency>,
                 private val typeToBuy: Class<out OwnableState>,
                 private val anonymous: Boolean) : FlowLogic<SignedTransaction>() {

    @Suspendable
    override fun call(): SignedTransaction {
        TODO()
    }
}

此代码摘自此处的第一个代码段。 https://docs.corda.net/head/flow-state-machines.html

1 个答案:

答案 0 :(得分:2)

TwoPartyTradeFlow.SellerTwoPartyTradeFlow.Buyer是内联流。调用它们的实际流是

启动SellerFlow here

BuyerFlow here发起

SellerFlow将抢先向买方发送一些有效负载,其中BuyerFlow作为响应者将收到它们,然后将TwoPartyTradeFlow.Buyer(...)用给定的参数进行子流处理。

有关内联流如何工作的有用链接here