如果在合同中引用另一个状态,您是否需要升级这两个状态

时间:2018-06-08 15:54:29

标签: corda

场景:我contractV1ObligationV1 CashV1。 在Obligation.Settle命令中,它强制执行必须使用ObligationV1CashV1来履行义务。

假设需要将CashV1CashContractV1升级到V2。 因为义务合同对CashV1状态有一些依赖性,这是否意味着我必须将ObligationContractV1碰到V2,以便它可以强制在Settle命令期间必须消耗CashV2?没有必要升级Obligation状态,因为没有任何变化?)

1 个答案:

答案 0 :(得分:0)

如果您以ObligationContractV1CashV1紧密耦合的方式编写ObligationContractV1,那么是 - 您也必须升级Cash

但是,最好有一个所有CashVX个州都实现的抽象ObligationContractV1接口。然后在Cash中,您可以简单地强制执行其中一个状态为Cash的状态。然后,您的合同与特定的{{1}}版本没有紧密联系。