在Corda交易中需要特定的当事人签名

时间:2019-02-07 13:26:55

标签: kotlin corda

我在网络上有一个特定的节点/参与者(例如银行),必须是某种类型的交易的签名者,我该如何反映呢? (例如,partyA想创建一个帐户,而我每次都需要银行进行验证)

目前,我正试图在合同中找到一种方法

private fun verifyCreate(tx: LedgerTransaction) = requireThat {
      "There should be an actual output to the creation" using (tx.outputsOfType<StockAccountState>().size == 1)

      val outStockAccountState =tx.outRefsOfType<StockAccountState>().single();
       "There should be No inputs when creating an account" using (tx.inputs.isEmpty())
       val neededParty = Party(???) // How do I get either the certificate or the name and publickey ?? 
        val expectedSigners = listOf(outStockAccountState.state.data.custodian, neededParty)

}

基本上,我需要创建银行方来检查实际的签名者,但我不知道如何签名。

也许还有另一种方法,但我不知道哪一个

1 个答案:

答案 0 :(得分:0)

您必须确保您的StockAccountState有一个名为val bank :Party的字段,因此您的合同要验证签名者是否由outStockAccountState.bank组成。