рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдкрд░ рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 5: рдореВрд▓ рдирд┐рд╡рд╛рд╕реА рдПрдкреАрдЖрдИ

рдЫрд╡рд┐

рдкрд┐рдЫрд▓реЗ рдкрд╛рдпрдерди рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкреЛрд╕реНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдУрдВрдЯреЛрд▓реЙрдЬреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ
рднрд╛рдЧ 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 рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЦреЛрдЬреЗрдВред

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



рдХрд╣реАрдВ рдФрд░ рдСрдиреНрдХреЛрд▓реЙрдЬреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ


рдУрдВрдЯреЛрд▓реЙрдЬреА рд╡реЗрдмрд╕рд╛рдЗрдЯ
рдЧрд┐рддреВрдм / рдХрд▓рд╣
рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЕрдВрдЧреНрд░реЗрдЬреА / рд░реВрд╕реА
рдЯреНрд╡рд┐рдЯрд░ / рд░реЗрдбрд┐рдЯ

Source: https://habr.com/ru/post/hi474970/


All Articles