Corda 合同如何规定只有某些当事人才能度过线性状态?

Corda 合同如何规定只有某些当事人才能度过线性状态?,corda,Corda,假设有三个参与方的线性状态。合同如何强制规定只有借款人才能将线性状态从一个生命周期转移到另一个生命周期 到目前为止,我使用的方法是在响应方,我正在执行require(义务.借款人==otherFlow.对手方)不确定如何在合同中执行,因为合同无法访问发起交易的人 signers==allParticipantsKeys只强制所有已签名的人,但不强制谁应该/不应该在州内消费 通过某种方式获得州/历史TXE的非参与者是否能够以某种方式使用它 Lender : Party Borrower : Par

假设有三个参与方的线性状态。合同如何强制规定只有借款人才能将线性状态从一个生命周期转移到另一个生命周期

到目前为止,我使用的方法是在响应方,我正在执行
require(义务.借款人==otherFlow.对手方)
不确定如何在合同中执行,因为合同无法访问发起交易的人

signers==allParticipantsKeys
只强制所有已签名的人,但不强制谁应该/不应该在州内消费

通过某种方式获得州/历史TXE的非参与者是否能够以某种方式使用它

Lender : Party
Borrower : Party
Bank : Party
participants = listOf(Lender, Borrower, Bank)

您不能强制执行有关谁提出交易的规则

但是,您可以通过在合同中写下如下内容来强制执行借款人是必要的签字人:

requireThat {
    val linearState = tx.inputsOfType<MyLinearState>().single()
    val allRequiredSigners = tx.commands.flatMap { it.signers }

    "The borrower is a required signer." using 
        allRequiredSigners.contains(linearState.borrower)
}
requireThat{
val linearState=tx.InputSoftType().single()
val allRequiredSigners=tx.commands.flatMap{it.signers}
“借款人是必要的签字人。”使用
allRequiredSigners.contains(linearState.借款人)
}
然后,您只需编写流程,这样,如果借款人不是交易的提议人,他们将拒绝签字