【问题标题】:How to upgrade stateV1 to V2 without changing the Contract version?如何在不更改合约版本的情况下将 stateV1 升级到 V2?
【发布时间】:2018-06-29 17:47:01
【问题描述】:
我有一个ObligationV1 和两个状态ObligationStateV1 和ObligationStateV2。
如何在不更改合约版本的情况下实现状态从 V1 到 V2 的A state is upgraded while the contract stays the same.。基于示例exampleLink、docs
在你有一个新的 ObligationContractV2 的地方,代码最终看起来会像这样吗?该示例试图实现
This CorDapp shows how to upgrade a state without upgrading the Contract. 但是我看不到实现实际上如何证明新状态仍然指的是旧合同?
公开课 ObligationContractV2 : UpgradedContractWithLegacyConstraint {
覆盖 val legacyContract: ContractClassName = ObligationContractV1.id
覆盖 val legacyContractConstraint: AttachmentConstraint = AlwaysAcceptAttachmentConstraint
覆盖有趣的升级(oldState:ObligationStateV1)= ObligationContractV2.ObligationStateV2(oldState.a,oldState.b,0)
数据类 ObligationStateV2(val a: AbstractParty, val b: AbstractParty, val value:Int ) : ContractState {
覆盖 val 参与者 get() = listOf(a, b)
}
覆盖有趣的验证(tx:LedgerTransaction){}
}
【问题讨论】:
标签:
corda