我可以用null方创建一个corda状态吗?

时间:2018-04-25 09:26:49

标签: corda

我想创建一个corda状态,其中一个派对字段最初应为空。在下一个流程中,我想更新该派对字段。

但是当我创建第一个流时,在tx.verify()期间,它的抛出错误为 格式错误的事务,索引0处的OUTPUTS_GROUP无法反序列化。

1 个答案:

答案 0 :(得分:0)

这在Corda 3中对我来说很好。

这是我的状态:

class MyState(val party: Party?) : ContractState {
    override val participants: List<AbstractParty> get() = listOf()
}

这是我的流程:

@InitiatingFlow
@StartableByRPC
class Initiator : FlowLogic<Unit>() {
    override val progressTracker = ProgressTracker()

    @Suspendable
    override fun call() {
        val myState = MyState(null)
        val txCommand = Command(MyContract.Commands.Command(), ourIdentity.owningKey)

        val notary = serviceHub.networkMapCache.notaryIdentities[0]
        val txBuilder = TransactionBuilder(notary)
                .addOutputState(myState, MY_CONTRACT_ID)
                .addCommand(txCommand)

        // Verifying the builder.
        txBuilder.verify(serviceHub)

        // Verifying the signed transaction.
        serviceHub.signInitialTransaction(txBuilder).verify(serviceHub)
    }
}

验证构建器或已签名的事务不会导致任何问题。在Kotlin和Java中都是如此。