VersionLogic

https://github.com/zcom-cloud-blockchain/solidity/blob/master/contracts/VersionLogic.sol

概要

Contractのロジックの実装を行うコントラクトの親クラスとなります。。

Versions(Image)

VersionLogicコントラクト自体はほとんどなにもしていないですが、さらに親クラスのCNSController にて、CNSアドレスを保有し、各Logic実装でアクセスコントロールを容易にできるようにしています。

サブコントラクト実装方針

  • 呼出元の限定

    各Logic実装は、ContractNameService#isVersionContract() を使用して呼出元を限定する処理を実装する必要があります。

    (上記の図では、呼び出し元をCNSに"Someone"として登録されたコントラクトに限定する必要がありいます。)

  • コントラクトの継承方針

    バージョンアップにより、次のバージョンをリリースする際には、前のバージョンを継承『しない』ようにします。

    これは、継承によるロジック肥大化の問題 対応するためで、各バージョンを分割して個々のコントラクトのサイズを抑えます。

参考となる実装クラス

results matching ""

    No results matching ""