科多州可以与多个合同一起工作吗?

时间:2019-03-18 08:53:56

标签: corda

Corda API并未明确链接国家及其合同,这使我有可能在具有相同状态类的不同交易中使用不同的合同。

transactionBuilder1
    .addOutputState(MyState(), MyStateContract::class.qualifiedName!!)

...
transactionBuilder2
    .addOutputState(MyState(), SecondContract::class.qualifiedName!!)

在什么情况下我需要这种灵活性?指定合同名称和状态会有什么弊端?

// A hypothetical implementation of Corda API

@CordaSerializable
interface ContractState {
    val participants: List<AbstractParty>
    val contractClassName: String
}    

....
transactionBuilder
    .addOutputState(MyState())

免责声明:

请注意,这是一个为什么问题。我只是在寻找可能会丢失的用例。一切都为我工作。我不需要解决方法。

1 个答案:

答案 0 :(得分:2)

是的,在Corda 3.x中,您可以引用给定状态的任何合同。可能会记住灵活性。

Corda 4.x通过允许您注释合同所管辖的州来为您建立州与合同之间的链接。如果状态是合同类的内部类,则此关联是自动的。 Relevant documentation

您可以阅读有关这方面的各种攻击面及其处理方法的讨论HERE