Target:
support contract upgrade.
support add the specified version of contract.
support get addresses of all versions of contract.
support get address of specified version of contract.
support delete contract.
support get all versions of contract.
Design:
Use blockchain evidence to store contract info, use the reback address as the unique Identification of the contract.
Use map to record between contract_version and contract_address, as version_contract_address_map.
Use map to record betwcontract_info_evidence_address and version_contract_address_map.
Code:
1 | pragma solidity ^0.4.24; |