场景:我contractV1
和ObligationV1
CashV1
。
在Obligation.Settle
命令中,它强制执行必须使用ObligationV1
和CashV1
来履行义务。
假设需要将CashV1
和CashContractV1
升级到V2。
因为义务合同对CashV1
状态有一些依赖性,这是否意味着我必须将ObligationContractV1
碰到V2,以便它可以强制在Settle命令期间必须消耗CashV2?没有必要升级Obligation状态,因为没有任何变化?)
答案 0 :(得分:0)
如果您以ObligationContractV1
与CashV1
紧密耦合的方式编写ObligationContractV1
,那么是 - 您也必须升级Cash
。
但是,最好有一个所有CashVX
个州都实现的抽象ObligationContractV1
接口。然后在Cash
中,您可以简单地强制执行其中一个状态为Cash
的状态。然后,您的合同与特定的{{1}}版本没有紧密联系。