
рдкрд┐рдЫрд▓реЗ рдкрд╛рдпрдерди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдУрдВрдЯреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ
рднрд╛рдЧ 1: рдмреНрд▓реЙрдХрдЪреЗрди рдФрд░ рдмреНрд▓реЙрдХ рдПрдкреАрдЖрдИ рдФрд░
рднрд╛рдЧ 2: рднрдВрдбрд╛рд░рдг рдПрдкреАрдЖрдИрднрд╛рдЧ 3: рд░рдирдЯрд╛рдЗрдо рдПрдкреАрдЖрдИрднрд╛рдЧ 4: рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдПрдкреАрдЖрдИ рдФрд░ ONT / ONG рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЖрдЬ рд╣рдо рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛ
рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдЕрдкрдЧреНрд░реЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред 2 рдПрдкреАрдЖрдИ рд╣реИрдВ:
рдирд╖реНрдЯ рдХрд░реЗрдВ рдФрд░
рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ ред
рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдЕрдм рдЖрдЗрдП рдЗрди 2 рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЬрд╛рдиреЗред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк
рдУрдиреНрдЯреЛрдЧреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг
рд╕реНрдорд╛рд░реНрдЯрдПрдХреНрд╕ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрдиреБрдмрдВрдз рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд▓рд┐рдВрдХ рд╕рдВрд▓рдЧреНрди рдХрд░реВрдВрдЧрд╛ред
рдЕрдкрдЧреНрд░реЗрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ
рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдЖрдкрдХреЛ рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 2 рдлрд╝рдВрдХреНрд╢рди рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
from ontology.interop.Ontology.Contract import Migrate from ontology.interop.System.Contract import Destroy
API рдХреЛ рдирд╖реНрдЯ рдХрд░реЗрдВ
рдирд╖реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреАрдЪреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рдХреЛрдб рдирдореВрдирд╛ рд╣реИред
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
API рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВ
рдорд╛рдЗрдЧреНрд░реЗрдЯ API рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореМрдЬреВрджрд╛ рдЕрдиреБрдмрдВрдз рдХреЛ рдирдП рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдП рдЧрдП рдЕрдиреБрдмрдВрдз рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреБрд░рд╛рдиреЗ рдЕрдиреБрдмрдВрдз рджреНрд╡рд╛рд░рд╛ рд╕рд╣реЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рднреА рдирдП рдЕрдиреБрдмрдВрдз рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдкреБрд░рд╛рдирд╛ рдЕрдиреБрдмрдВрдз рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛рдПрдЧреА, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдЖрдк рдЕрдкрдиреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред
рдорд╛рдЗрдЧреНрд░реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреА рдкреИрд░рд╛рдореАрдЯрд░ рд╕реВрдЪреА рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

рдорд╛рдЗрдЧреНрд░реЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЛрдб рдирдореВрдиреЗ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ:
from ontology.interop.Ontology.Contract import Migrate 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
рд╕реНрдорд╛рд░реНрдЯрдПрдХреНрд╕ рдкрд░ рдХреЛрдб рдирдореВрдиреЗ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:1. рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдорд╛рд░реНрдЯрдПрдХреНрд╕ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЗрдирдкреБрдЯ рдХрд░рддреЗ рд╕рдордп рджреЛ рдореБрджреНрджреЛрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдВ:
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ avm_code рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреА;
- рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХреЛ рдЙрдЪреНрдЪ рдЧреИрд╕ рд╕реАрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдлрд╝рдВрдХреНрд╢рди рдЪрд▓рд╛рддреЗ рд╕рдордп рдЧреИрд╕ рд╕реАрдорд╛ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
2. рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж, рдЖрдк рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдирдпрд╛ рдЕрдиреБрдмрдВрдз рд╣реИрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдирдпрд╛ рдЕрдиреБрдмрдВрдз рд╣реИрд╢ 4606c4663081b70f745ed9fc64d4c3b0d9c183 рд╣реИред

рд╕рд╛рд░рд╛рдВрд╢
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдУрдВрдЯреЛрд▓реЙрдЬреА рдмреНрд▓реЙрдХрдЪреИрди рдХреЗ рдЕрдкрдЧреНрд░реЗрдб рдПрдкреАрдЖрдИ рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд╖реНрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪреЗрди рдкрд░ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдЧреНрд░реЗрдЯ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдУрдиреНрдЯреЛрд▓реЛрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЗ рд╕реНрдереИрддрд┐рдХ рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯрд┐рдХ рдПрдВрдб рдбрд╛рдпрдиреЗрдорд┐рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдВрдЧреЗред
рдпрд╣рд╛рдБ GitHub рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЦреЛрдЬреЗрдВред
рдХреНрдпрд╛ рдЖрдк рдПрдХ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ? рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рддрдХрдиреАрдХреА рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░
рдбреЗрд╡рд▓рдкрд░ рдХреЗрдВрджреНрд░ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рд╡рд╣рд╛рдВ рдЖрдк рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓, рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╣реАрдВ рдФрд░ рдСрдиреНрдХреЛрд▓реЙрдЬреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
рдУрдВрдЯреЛрд▓реЙрдЬреА рд╡реЗрдмрд╕рд╛рдЗрдЯрдЧрд┐рддреВрдм /
рдХрд▓рд╣рдЯреЗрд▓реАрдЧреНрд░рд╛рдо
рдЕрдВрдЧреНрд░реЗрдЬреА /
рд░реВрд╕реАрдЯреНрд╡рд┐рдЯрд░ /
рд░реЗрдбрд┐рдЯ