Version 0.1
API | Return Value | Description |
---|---|---|
Destroy | none | Destroy a smart contract |
Migrate | contract structure | Upgrade a smart contract. The existing contract will be replaced by the newly migrated contract |
For more details, you can view the API-doc and the source code here.
The existing contract will be deleted from the persistent storage area.
from ontology.interop.Ontology.Contract import Migrate
from ontology.interop.System.Contract import Destroy
from ontology.interop.System.Runtime import Notify
def Main(operation, args):
if operation == "destroy_contract":
return destroy_contract()
return False
def destroy_contract():
Destroy()
Notify(["The contract has been destoryed"])
return True
The existing contract will be replaced by the newly migrated contract. The data saved by the old contract will also be migrated to the new contract. The old contract will be deleted after migration.
Param | Description |
---|---|
script | avm code |
need_storage | Need persistent storage or not |
name | Author name |
version | Contract version |
author | Contract author |
Developer email | |
description | Contract description |
from ontology.interop.Ontology.Contract import Migrate
from ontology.interop.System.Contract import Destroy
from ontology.interop.System.Runtime import Notify
from ontology.libont import AddressFromVmCode
def Main(operation, args):
if operation == "migrate_contract":
if len(args) != 7:
return False
avm_code = args[0]
need_storage = args[1]
name = args[2]
version = args[3]
author = args[4]
email = args[5]
description = args[6]
return migrate_contract(avm_code, need_storage, name, version, author, email, description)
return False
def migrate_contract(avm_code, need_storage, name, version, author, email, description):
res = Migrate(avm_code, need_storage, name, version, author, email, description)
if res:
Notify(["Migrate successfully"])
new_contract_hash=AddressFromVmCode(avm_code)
Notify(new_contract_hash)
return True
else:
return False
Follow up question: How to improve this contract?
Answer: Add CheckWitness().
Please feel free to give any suggestion and help us make video better!
Contact: Yue Zhao
Wechat: 16621171248
Email: messixaviinsta0303@163.com