рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдмрдЯреБрдЖ рдкрджрд╛рдиреБрдХреНрд░рдо (рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо)

рдпрд╣ рдкрд╛рда рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдПрд╕реНрдХреНрд░реЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЖрд░реНрдерд┐рдХ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдзрдирд░рд╛рд╢рд┐ рдЬрдорд╛ рдХрд░рдирд╛ рдХрд┐рд╕реА рднреА рд▓реЗрдирджреЗрди рдХрд╛ рдПрдХ рдореВрд▓рднреВрдд рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рддрд┐рдкрдХреНрд╖ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдзреЛрдЦрд╛рдзрдбрд╝реА рдХрд╛ рдЦрддрд░рд╛ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ рд╡рд┐рдХреЗрдВрджреНрд░реАрдХреГрдд рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдПрдХ рд╡рд┐рд╡рд╛рдж рд╕рдорд╛рдзрд╛рди рдореЙрдбрд▓, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЗрдирджреЗрди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбрд▓, рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЗрдирджреЗрди рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдРрд╕рд╛ рдореЙрдбрд▓ рдЦреБрд▓рд╛ рд╣реИред рдорд▓реНрдЯреА-рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЧрдП рд╕рднреА рд▓реЗрдирджреЗрди рд╣рдореЗрдВ рд╕рдордХрдХреНрд╖реЛрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрд░реНрдерд┐рдХ рд╕рдВрдмрдВрдзреЛрдВ рдореЗрдВ рдирдП рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдзреЛрдЦрд╛рдзрдбрд╝реА рдпреЛрдЬрдирд╛рдУрдВ рд╕реЗ рдЦреБрдж рдХреА рд░рдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

рд╕рд╛рдордЧреНрд░реА


1 рдкрд░рд┐рдЪрдп
2 рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдмрдЯреБрдП рдХрд╛ рд╡рд┐рд╡рд░рдг
рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ 3 рддрд░реАрдХреЗ
4 рдорд▓реНрдЯреА-рдбреЗ рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕
5 рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕реНрдЯреНрд░реАрдо
5.1 рдорд╛рдирдХ рдмрд╛рддрдЪреАрдд рдкреНрд░рд╡рд╛рд╣
5.2 рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкреНрд░рд╡рд╛рд╣
рел.рей рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдкреНрд░рд╡рд╛рд╣
6 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ESCB9
7 рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХреАрдХрд░рдг рдФрд░ ESCB9 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз
8 рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЬреЛ ESCB9 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ
8.1 AirBnb рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж рдирд┐рдЬреА рдХрд┐рд░рд╛рдпреЗ рдмрд╛рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз
8.2 рдлрд╛рдЗрдЯ рдордиреА рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдкреНрдЯреЛрдХреНрдпреВрд░реЗрдВрд╕реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдФрд░ рдПрдХ рд╡рд┐рдХреЗрдиреНрджреНрд░реАрдХреГрдд рдореЛрдб рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз
9 рдЖрд░реНрдмрд┐рдЯреНрд░реЗрд╢рди рдиреЛрдбреНрд╕
10 рд╢рдмреНрджрдХреЛрд╢

1. рдкрд░рд┐рдЪрдп


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

2. рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдмрдЯреБрдП рдХрд╛ рд╡рд┐рд╡рд░рдг


рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдЬреЛ рдЖрдкрдХреЛ рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдпрд╛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдХреЗрд╡рд▓ рдЕрдЧрд░ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд╣рдорддрд┐ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡реЙрд▓реЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рд▓реЗрдирджреЗрди рдПрдХ рдкрд░рдорд╛рдгреБ рдСрдкрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдпрд╛ рд╕рдорд╛рди рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдореВрд░реНрдд рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдирд┐рдореНрди рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдкрддреЗ рдФрд░ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
    constructor(address[]:members, uint256:requiredConfirmationCount) 

  2. рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕
    1. рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getMembers() -> address[]:address 

    2. рд╕рджрд╕реНрдп рдХрд╛ рдкрддрд╛ рджреЗрдЦреЗрдВ
       static getMember(uint256:indexNumber) -> address:address 

    3. рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
       static isMember(address:address) -> bool:value 

    4. рдмрдЯреБрдП рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getMaxMemberCount() -> uint256:value 

    5. рдиреНрдпреВрдирддрдо рд╕рд╣рдорддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐
       static getRequiredConfirmationCount() -> uint256:value 

    6. рдПрдХ рдирдП рд╕рджрд╕реНрдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдШрдЯрдирд╛
       event MemberAddition() -> address:member 

    7. рд╕рджрд╕реНрдп рд╡рд┐рд▓реЛрдкрди рдШрдЯрдирд╛
       event MemberRemoval() -> address:member 

    8. рдШрдЯрдирд╛ рдХреА рдШрдЯрдирд╛ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╖реНрдЯрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
       event RequiredConfirmationCountChange() -> uint256:count 

    9. рд╕рджрд╕реНрдп рдЬреЛрдбрд╝реЗрдВ
       execute addMember(address:member) -> void:value 

    10. рд╕рджрд╕реНрдп рд╡рд┐рд▓реЛрдкрди
       execute removeMember(address:member) -> void:value 

    11. рд╕рджрд╕реНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
       execute replaceMember(address:currentMember, address:newMember) -> void:value 
    12. рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреБрд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
       execute changeRequiredConfirmationCount(uint256:count) -> void:value 


  3. рд▓реЗрди-рджреЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕
    1. рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рдкрддреЗ рдкрд░ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
       static getConfirmationByAddress(uint256:indexNumber, address:addressMember) -> bool:value 

    2. рд▓реЗрди-рджреЗрди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionInfo(uint256:indexNumber) -> [address:destination, uint256:value, bytes:data, bool:executed] 
    3. рдЗрд╕ рд╡реЙрд▓реЗрдЯ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionCount() -> uint256:value 
    4. рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static isConfirmed(uint256:transactionId) -> bool:value 
    5. рдкреБрд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getConfirmationCount(uint256:transactionId) -> uint256:count 
    6. рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionCount(bool:pending, bool:executed) -> uint256:count 
    7. рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getConfirmations(uint256:transactionId) -> address[]:confirmations 
    8. рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЕрд╡рдзрд┐ рдореЗрдВ рдЯрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рд▓реЗрдирджреЗрди рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionIds(uint256:from, uint256:to, bool:pending, bool:executed) -> uint256[]:transactionIds 
    9. рдкрд╛рд░реНрдЯреА рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдШрдЯрдирд╛
       event Confirmation() -> [address:sender, uint256:transactionId, uint256:timeStamp] 
    10. рд▓реЗрди-рджреЗрди рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреА рд╡рд╛рдкрд╕реА рдХреА рдШрдЯрдирд╛
       event Revocation() -> [address:sender, uint256:transactionId, uint256:timeStamp] 
    11. рдХрддрд╛рд░ рд▓реЗрдирджреЗрди рдШрдЯрдирд╛ рдЬреЛрдбрд╝реЗрдВ
       event Submission() -> [uint256:transactionId] 
    12. рд▓реЗрдирджреЗрди рдирд┐рд╖реНрдкрд╛рджрди рдШрдЯрдирд╛
       event Execution() -> [uint256:transactionId] 
    13. рд▓реЗрди-рджреЗрди рддреНрд░реБрдЯрд┐ рдШрдЯрдирд╛
       event ExecutionFailure -> [uint256:transactionId] 
    14. рдмрдЯреБрдЖ рдкреБрдирдГрдкреВрд░реНрддрд┐ рдШрдЯрдирд╛
       event Deposit -> [address:sender, uint256:amount] 
    15. рд╕рджрд╕реНрдп рдЬреЛрдбрд╝рдиреЗ рд▓реЗрдирджреЗрди
       execute submitTransaction(address:destination, uint256:value, bytes:data) -> uint256:transactionId 
    16. рдкреНрд░рддрд┐рднрд╛рдЧреА рджреНрд╡рд╛рд░рд╛ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐
       execute confirmTransaction(uint256:transactionId) -> void:value 
    17. рдкреНрд░рддрд┐рднрд╛рдЧреА рджреНрд╡рд╛рд░рд╛ рдкреБрд╖реНрдЯрд┐ рдХреА рд╡рд╛рдкрд╕реА
       execute revokeConfirmation(uint256:transactionId) -> void:value 
    18. рдореИрдиреБрдЕрд▓ рд▓реЗрдирджреЗрди
       execute executeTransaction(uint256:transactionId) -> void:value 



рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдиреЗ рдХреЗ 3 рддрд░реАрдХреЗ


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

4 рдорд▓реНрдЯреА-рдбреЗ рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕


рдПрдХ рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдмрд╣реБ-рд╕рджрд╕реНрдпрддрд╛ рдмрдЯреБрдП рдХреЗ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдкрджрд╛рдиреБрдХреНрд░рдо рдФрд░ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╡рд┐рдирд┐рдпрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдХреЛ рдЬреЛрдбрд╝рдирд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрд╕реНрдердЧрд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ред
  1. рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рдмрдЯреБрдП рдХрд╛ рдкрддрд╛, рд╕рдВрд╕реНрдерд╛рдкрдХ рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рдкрддреЗ, рд▓реЗрди-рджреЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛, рд╕реЗрдХрдВрдб рдореЗрдВ рд╕реНрд╡рдд: рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕рдордп рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
     constructor(address:parent, address[]:members, uint256:requiredConfirmationCount, uint256:standardTimeAutoConfirmation) 

  2. рд╕рджрд╕реНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕
    1. рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getMembers() -> address[]:address 

    2. рдкреНрд░рддрд┐рднрд╛рдЧреА рдХрд╛ рдкрддрд╛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп
       static getMember(uint256:indexNumber) -> address:address 

    3. рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкрддреЗ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
       static isMember(address:address) -> bool:value 

    4. рдмрдЯреБрдЖ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getMaxMemberCount() -> uint256:value 

    5. рдиреНрдпреВрдирддрдо рд╕рд╣рдорддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐
       static getRequiredConfirmationCount() -> uint256:value 

    6. рдПрдХ рдирдП рд╕рджрд╕реНрдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдШрдЯрдирд╛
       event memberAddition() -> address:member 

    7. рд╕рджрд╕реНрдп рд╡рд┐рд▓реЛрдкрди рдШрдЯрдирд╛
       event memberRemoval() -> address:member 

    8. рдШрдЯрдирд╛ рдХреА рдШрдЯрдирд╛ рдХреЛ рдЕрдВрдЬрд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╖реНрдЯрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
       event requiredConfirmationCountChange() -> uint256:count 

    9. рд╕рджрд╕реНрдп рдЬреЛрдбрд╝реЗрдВ
       execute addMember(address:member) -> void:value 

    10. рд╕рджрд╕реНрдп рд╡рд┐рд▓реЛрдкрди
       execute removeMember(address:member) -> void:value 

    11. рд╕рджрд╕реНрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди
       execute replaceMember(address:currentMember, address:newMember) -> void:value 

    12. рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреБрд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
       execute changeRequiredConfirmationCount(uint256:count) -> void:value 


  3. рдкрджрд╛рдиреБрдХреНрд░рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕
    1. рдмрдЪреНрдЪреЗ рдХреА рд╕реВрдЪреА рдХреА рд╕реВрдЪреА
       static getChildren() -> address[]:wallets 

    2. рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдмрдЯреБрдЖ рдкрддрд╛ рд╡рд░реНрддрдорд╛рди рдХрд╛ рдмрдЪреНрдЪрд╛ рд╣реИ
       static isChild() -> bool:value 

    3. рдЬрд╛рдБрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдмрдЯреБрдЖ рдХрд╛ рдкрддрд╛ рд╡рд░реНрддрдорд╛рди рдХреЗ рд▓рд┐рдП рдкреИрддреГрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдЖрдЗрд╕реНрдХрд┐рд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    4. рд╕рд╣рдмрджреНрдз рдмрдЯреБрдЖ рд▓рдЧрд╛рд╡ рдШрдЯрдирд╛
       event childAttachment() -> [address:address,uint256:timeStamp] 

    5. рдмрдЪреНрдЪрд╛ рдмрдЯреБрдЖ рд╣рдЯрд╛рдиреЗ рдХреА рдШрдЯрдирд╛
       event childRemoval() -> [address:address,uint256:timeStamp] 

    6. рдПрдХ рдмрдЪреНрдЪреЗ рдмрдЯреБрдП affixing
       execute attachChild(addres:child) -> void:value 

    7. рдЪрд╛рдЗрд▓реНрдб рд╡реЙрд▓реЗрдЯ рдбрд┐рд▓реАрдЯ рдХрд░реЗрдВ
       execute removeChild(address:address) -> void:value 

    8. рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рдмрдЯреБрдП рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдмрджрд▓реЗрдВ
       execute replaceChild(address:newAddress) -> void:value 


  4. рд▓реЗрди-рджреЗрди рдЗрдВрдЯрд░рдлрд╝реЗрд╕
    1. рд▓реЗрди-рджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
       static getTransactionStatus(uint256:transactionId) -> enum:{submitted,completed,frozen,disputed,reverted} 

    2. рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
       static isTransactionStatus(uint256:transactionId, uint256:enumStatusNumber) -> bool:value 

    3. рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рдкрддреЗ рдкрд░ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд╛ рд╕рддреНрдпрд╛рдкрди
       static getConfirmationByAddress(uint256:transactionId, address:addressMember) -> bool:value 

    4. рд▓реЗрди-рджреЗрди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionInfo(uint256:transactionId) -> [address:destination, uint256:value, bytes:data, bool:executed] 

    5. рдмрдЯреБрдП рдореЗрдВ рд▓реЗрдирджреЗрди рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionCount() -> uint256:value 

    6. рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static isConfirmed(uint256:transactionId) -> bool:value 

    7. рдкреБрд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getConfirmationCount(uint256:transactionId) -> uint256:count 

    8. рдкреНрд░рдХрд╛рд░ рд╕реЗ рд▓реЗрдирджреЗрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionCount(bool:pending, bool:executed) -> uint256:count 

    9. рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getConfirmations(uint256:transactionId) -> address[]:confirmations 

    10. рд╕реНрд╡рддрдГ рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рд╕рдордп рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
       static getTimeAutoConfirmation(uint256:transactionId) -> uint256:timestamp 

    11. рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдЕрд╡рдзрд┐ рдореЗрдВ рдЯрд╛рдЗрдк рджреНрд╡рд╛рд░рд╛ рд▓реЗрдирджреЗрди рдЖрдИрдбреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getTransactionIds(uint256:from, uint256:to, bool:pending, bool:executed) -> uint256[]:transactionIds 

    12. рдкрд╛рд░реНрдЯреА рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдШрдЯрдирд╛
       event Confirmation() -> [address:sender, uint256:transactionId, uint256:timeStamp] 

    13. рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдШрдЯрдирд╛
       event AutoConfirmation() -> [uint256:transactionId, uint256:timeStamp] 

    14. рд▓реЗрди-рджреЗрди рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреА рд╡рд╛рдкрд╕реА рдХреА рдШрдЯрдирд╛
       event Revocation() -> [address:sender, uint256:transactionId, uint256:timeStamp] 

    15. рдХрддрд╛рд░ рд▓реЗрдирджреЗрди рдШрдЯрдирд╛ рдЬреЛрдбрд╝реЗрдВ
       event Submission() -> [uint256:transactionId] 

    16. рд▓реЗрдирджреЗрди рдирд┐рд╖реНрдкрд╛рджрди рдШрдЯрдирд╛
       event Execution() -> [uint256:transactionId] 

    17. рд▓реЗрди-рджреЗрди рддреНрд░реБрдЯрд┐ рдШрдЯрдирд╛
       event ExecutionFailure -> [uint256:transactionId] 

    18. рд▓реЗрди-рджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдЬрдореЗ рд╣реБрдП рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ
       event TransactionFrozen -> [uint256:transactionId] 

    19. рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ
       event TransactionDisputed -> [uint256:transactionId] 

    20. рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рд▓реМрдЯреА рдШрдЯрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ
       event TransactionReverted -> [uint256:transactionId] 

    21. рдмрдЯреБрдЖ рдкреБрдирдГрдкреВрд░реНрддрд┐ рдШрдЯрдирд╛
       event Deposit -> [address:sender, uint256:amount] 

    22. рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдЬреЛрдбрд╝реЗрдВ
       execute submitTransaction(address:destination, uint256:value, uint256:TimeAutoConfirmation, bytes:data) -> uint256:transactionId 

    23. рд▓реЗрди-рджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐
       execute confirmTransaction(uint256:transactionId) -> void:value 

    24. рдирд┐рд░рд╕реНрддреАрдХрд░рдг рдХреА рдкреБрд╖реНрдЯрд┐
       execute revokeConfirmation(uint256:transactionId) -> void:value 

    25. рдЬрдореЗ рд╣реБрдП рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдирджреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓реЗрдВ
       execute setTransactionStatus(uint256:transactionId, uint256:enumStatusNumber) -> void:value 

    26. рдореИрдиреБрдЕрд▓ рд▓реЗрдирджреЗрди
       execute executeTransaction(uint256:transactionId) -> void:value 


  5. рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрди
    1. рд░реЗрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getRatingByAddress(address:agent) -> [uint256:negativeRating, uint256:positiveRating, uint256:countRatingRecords] 

    2. рдкрддреЗ рдФрд░ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рд░реЗрдЯрд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
       static getRatingRecordForAddress(address:agent, uint256:indexNumber) -> void:value 

    3. рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдШрдЯрдирд╛
       event RatingRecordAdded -> [address:author, address:agent, bytes32:smartContractAddress, bool:positiveOrNegative, uin256:ratingNumber, bytes:comment, uint256:indexNumber] 

    4. рдкрддреЗ рдХреЗ рд▓рд┐рдП рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝реЗрдВ
       execute addRatingRecord(address:agent, bytes32:smartContractAddress, bool:positiveOrNegative, uin256:ratingNumber, bytes:comment) -> void:value 


  6. ESCB9 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг
    1. рдЗрд╕ рд╡реЙрд▓реЗрдЯ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз ESCB9 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрддреЗ рдкрд░ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ
        static isAttachedESCB9SmartContract(address:smartContract) -> bool:result 

    2. рдЗрд╕ рд╡реЙрд▓реЗрдЯ рд╕реЗ рдЬреБрдбрд╝реЗ ESCB9 рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
        static getDepositStatusForESCB9SmartContract(address:smartContract) -> enum:{awaiting,founded,returned} 

    3. ESCB9 рд╡реЙрд▓реЗрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛
       event AttachingESCB9SmartContract -> [address:smartContract] 

    4. ESCB9 рд╡реЙрд▓реЗрдЯ рд╕рдВрд▓рдЧреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рдШрдЯрдирд╛
       event ConfirmationForDepositESCB9SmartContract -> [address:smartContract, uint256:sum, bytes:notice] 

    5. ESCB9 рдХреЗ рдмрдЯреБрдП рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛
       execute attachESCB9SmartContract(address:smartContract) -> void:value 

    6. ESCB9 рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рдХреА рдкреБрд╖реНрдЯрд┐ред рдпрджрд┐ рдЬрдорд╛ рдмрд╛рд╣рд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реИ, рддреЛ рдиреЛрдЯрд┐рд╕ рдореЗрдВ рдПрдХ рд▓реЗрдмрд▓ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЬрдорд╛ рдИрдЯреАрдПрдЪ рдореЗрдВ рд╣реИ, рддреЛ рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдЬрдорд╛ рд░рд╛рд╢рд┐ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред
       execute fundDepositForESCB9SmartContract(address:smartContract, uint256:sum, bytes:notice) -> void:value 




5 рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╕реНрдЯреНрд░реАрдо


рдХрд┐рд╕реА рднреА рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛ рдорд▓реНрдЯреА-рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдкрд░реНрд╕ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХреАрдХрд░рдг рдореЗрдВ рдмрд╛рддрдЪреАрдд рдХреЗ рдкреНрд░рд╡рд╛рд╣ рд╣реЛрдВрдЧреЗред рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдХрдИ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рднреЗрдж рдХрд░рддреЗ рд╣реИрдВ:
  • рдорд╛рдирдХ ред рдЗрд╕ рд░реВрдк рдореЗрдВ, рд▓реЗрдирджреЗрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдмрдЯреБрдЖ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЕрдзрд┐рдХреГрдд рд╕рджрд╕реНрдпреЛрдВ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ред
  • рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рд╣реБрдЖ ред рдЗрд╕ рд░реВрдк рдореЗрдВ, рд▓реЗрди-рджреЗрди рдХрд╛ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕реЗ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЕрдзрд┐рдХреГрдд рд╕рджрд╕реНрдпреЛрдВ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж ред рдЗрд╕ рд░реВрдк рдореЗрдВ, рд▓реЗрди-рджреЗрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рддрд┐рднрд╛рдЧреА рд▓реЗрдирджреЗрди рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЙрд▓реЗрдЯ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЕрдзрд┐рдХреГрдд рд╕рджрд╕реНрдпреЛрдВ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЯреНрд░рд╕реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реЙрд▓реЗрдЯ рдореЗрдВ рдХрдИ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкреНрд▓реЗрдирд┐рдкреЛрдЯреЗрдВрдЯрд░реА рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдирд┐рд░реНрдгрдп рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдзрд╛рд░рдг рддрд░реНрдХ рдХреЗ рд▓рд┐рдП, рд╣рдо рдмрдЯреБрдП рдореЗрдВ рд╕рднреА рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ - рдордзреНрдпрд╕реНрде ред

5.1 рдорд╛рдирдХ рдмрд╛рддрдЪреАрдд рдкреНрд░рд╡рд╛рд╣


рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рд╕реНрддреБрдУрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рд╡рд╕реНрддреБ (рд╡рд╕реНрддреБ) рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдореЗрдВ рд▓рд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд╝рд┐рдПрдЯреА рдордиреА рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛, рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ (рд╕рд╛рдзрди) рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдкреНрдЯреЛрдХрд░реЗрдВрд╕реАред
рдкреНрд░рддрд┐рдкрдХреНрд╖, рд╡рд╕реНрддреБ рдХрд╛ рдорд╛рд▓рд┐рдХ рд╡рд┐рдирд┐рдордп рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдкрдХреНрд╖ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реМрджрд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдорд╛рд▓рд┐рдХ рдорд▓реНрдЯреА-рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдкрд░реНрд╕ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЕрдзрд┐рдХреГрдд рд╡реЙрд▓реЗрдЯреНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рд▓реЗрдирджреЗрди рднреЗрдЬрдХрд░ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдПрд╕реНрдХреНрд░реЛ рдЕрдиреБрдмрдВрдз рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдирджреЗрди рдХреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рджреНрд╡рд╛рд░рд╛ рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдкрдХреНрд╖, рдирд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдорд╛рд▓рд┐рдХ рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдзрди рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рд▓реЗрдирджреЗрди рдкрд░ рдПрдХ рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдорд╛рд▓рд┐рдХ рдлрдВрдб рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддрд╛ рд╣реИред рдирд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕реНрд╡рд╛рдореА рд╡рд╕реНрддреБ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрд╕рдиреЗ рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХреА, рддреЛ рдзрди рдХреЛ рд▓реЗрдирджреЗрди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдкреНрд░рддрд┐рдкрдХреНрд╖ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЖрд░рд╛рдо рд╕реЗ рд░реЗрдЯрд┐рдВрдЧ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдзрди рдХрд╛ рдорд╛рд▓рд┐рдХ рд▓реЗрди-рджреЗрди рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ рдмрд╛рддрдЪреАрдд рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдлрдВрдб рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдлрдВрдб рдХрд╛ рдорд╛рд▓рд┐рдХ рдирд┐рдпрдорди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдордп рдХреЗ рднреАрддрд░ рд╡рд┐рд╡рд╛рджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрджрд╛рдиреБрдХреНрд░рдо рд╕реНрддрд░ рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рдмрд╛рдж, рд▓реЗрди-рджреЗрди рдХреЗ рд▓рд┐рдП рд░реЗрдЯрд┐рдВрдЧ рджреЛрдиреЛрдВ рдкрдХреНрд╖реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ рдФрд░ рд▓реЗрдирджреЗрди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

5.2 рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдкреНрд░рд╡рд╛рд╣


рдпрджрд┐, рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдкрд░реЗ рдХреБрдЫ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд▓реЗрди-рджреЗрди рдХреА рд╕рдордп рд╕реАрдорд╛ рдмрдврд╝рд╛рдИ рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП, рддреЛ, рдкрд╛рд░реНрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рдордЭреМрддреЗ рд╕реЗ, рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкрджрд╛рдиреБрдХреНрд░рдо рд╡реЙрд▓реЗрдЯ (рдордзреНрдпрд╕реНрде) рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдордп рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдЗрдВрдЯрд░реИрдХреНрд╢рди рдлреНрд▓реЛ рдорд╛рдирдХ рдкреНрд░рд╡рд╛рд╣ рдХреЗ рддрд░реНрдХ рд╕реНрддрд░ рдкрд░ рд▓реМрдЯрддрд╛ рд╣реИред

рел.рей рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд╛ рд╡рд┐рд╡рд╛рджрд╛рд╕реНрдкрдж рдкреНрд░рд╡рд╛рд╣


рдпрджрд┐ рд▓реЗрди-рджреЗрди рдХреЗ рджреМрд░рд╛рди рд╡рд╕реНрддреБ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдкреНрд░рддрд┐рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХ рдЬреЛ рд╡рд╣ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдЯреНрд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрди-рджреЗрди рдЬрдореЗ рд╣реБрдП рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдорд╛ рдХреЛ рдкреНрд░рддрд┐рдкрдХреНрд╖, рд╡рд╕реНрддреБ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рддрдм рддрдХ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд▓реЗрдирджреЗрди рдкрд░ рдХреЛрдИ рдлреИрд╕рд▓рд╛ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рдзрд┐рдпреЛрдВ рдХреЗ рдзрд╛рд░рдХ рдХреЛ рд▓реЗрдирджреЗрди рдХреЗ рдордзреНрдпрд╕реНрде рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдмреВрдд рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕рдХреЗ рдмрд╛рдж, рдордзреНрдпрд╕реНрде рдПрдХ рдкреНрд░рддрд┐рдкрдХреНрд╖ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдлреИрд╕рд▓рд╛ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд▓реЗрди-рджреЗрди рдХрд╛ рдХреЛрдИ рднреА рдкрдХреНрд╖ рдлреИрд╕рд▓реЗ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдкрд░реНрд╕ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдХреНрд░рдо рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рд╡реЙрд▓реЗрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдкрджрд╛рдиреБрдХреНрд░рдо рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╛ рддреЛ рдкрд╛рд░реНрдЯреА рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЛрдЯ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рдЕрд╕рд╛рдзрд╛рд░рдг рдЙрдкрд╛рдп рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реНрдг рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

6 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ ESCB9


рд╕рд╛рд░ рдореЗрдВ ESCB9 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдПрдХ рд╕рд╛рд░ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд░реВрдк рдореЗрдВ (рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ рдФрд░ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдЕрдзреАрди рд╣реИ)
 contract ESCB9 { /** * Modificator for arbitrage */ modifier onlyArbitrage() { require(msg.sender == arbitrage()); _; } /** * Modificator for checking deposit status */ modifier isDeposited { uint i; bytes memory _funcName = bytes4(keccak256("getDepositStatusForESCB9SmartContract(address)")); bytes memory _concat = new bytes(_funcName.length + 32); for(i=0; i < address(this).length; i++) { _concat[i] = address(this)[i]; } require(arbitrage().call.value(0)(_concat) == 1); // тАЬfoundedтАЭ for enum _; } event confirmed(uint256 unixtimestamp, bytes32 notice); event frozen(uint256 unixtimestamp, bytes32 notice); event disputed(uint256 unixtimestamp, bytes32 notice); event canceled(uint256 unixtimestamp, bytes32 notice); /** * @notice Function to approve escrow deal and confirm success * @return Success of operation **/ function confirm(notice) public onlyArbitrage returns(bool); /** * @notice Function to freeze escrow deal * @return Success of operation **/ function freeze(notice) public onlyArbitrage returns(bool); /** * @notice Function to dispute escrow deal * @return Success of operation **/ function dispute(notice) public onlyArbitrage returns(bool); /** * @notice Function to cancel escrow deal and confirm fail * @return Success of operation **/ function cancel(notice) public onlyArbitrage returns(bool); /** * @notice Function to get seller's address * @return Seller's address **/ function seller() public returns(address); /** * @notice Function to get custom type for ESCB9 smart contract * @return Type **/ function type() public returns(bytes); /** * @notice Function to get buyer's address * @return Buyer's address **/ function buyer() public returns(address); /** * @notice Function to get sum for deal * @return Sum of deal in wei **/ function depositedSum() public returns(uint256); /** * @notice Function to get arbitrage's address * @return Arbitrage's address **/ function arbitrage() public returns(address); } 


7 рдПрдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХреАрдХрд░рдг рдФрд░ ESCB9 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз


рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдкрд░реНрд╕ рдХреЗ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреА рдЯреНрд░рд╕реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ ESCB9 рдорд╛рдирдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдРрд╕реЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рд╣рд╛рдпрдХ рд╡реЙрд▓реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдорд▓реНрдЯреА-рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░реНрд╕ рдХреЛ "рдЗрдирдкреБрдЯ рдиреЛрдбреНрд╕" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рдЕрдкрд╕реНрдЯреНрд░реАрдо рдорд▓реНрдЯреА рд╕рд┐рдЧреНрдиреЗрдЪрд░ рд╡реЙрд▓реЗрдЯ рдХреЛ "рдЖрд░реНрдмрд┐рдЯреНрд░реЗрд╢рди рдиреЛрдбреНрд╕" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

8 рдЕрдиреБрдмрдВрдзреЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдЬреЛ ESCB9 рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ


8.1 AirBnb рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж рдирд┐рдЬреА рдХрд┐рд░рд╛рдпреЗ рдмрд╛рдЬрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз


 // Don't use this code, it can be not working or contain the vulnerability, for demonstration purpose only pragma solidity ^0.4.21; /// @title rentMyApartmentESCB9 - Allows rent object on market with escrow service. The safe way to do deal for counterparties. /// @author Konstantin Viktorov - <ceo@escrowblock.net> contract rentMyApartmentESCB9 is ESCB9 { // 2018-05-10 18:25 in unix timestamp uint256 constant public checkInTime = 1525965900; // 2018-05-20 18:25 in unix timestamp uint256 constant public checkOutTime = 1526829900; // Coordinates in bytes format. For example 56.865129,35.881540 bytes constant public coordinates = "0x35362e3836353132392c33352e383831353430"; // Google maps link, as example, but better add Url to landing page bytes constant public externalUrl = "0x68747470733a2f2f676f6f2e676c2f6d6170732f6e783563396b6737384170"; /** * Encrypted information, see https://github.com/ethereumjs/ethereumjs-wallet and * https://github.com/pubkey/eth-crypto/blob/master/tutorials/encrypted-message.md * For example you can leave here information about pin-code for smart lock **/ bytes constant private privateInformation = '0x0dfef623523483245687234'; modifier only_before_check_in { require(getNow() < checkInTime); _; } modifier only_after_check_out { require(getNow() > checkOutTime); _; } modifier only_during_renting { require(getNow() > checkInTime && getNow() < checkOutTime); _; } modifier only_not_in_during_renting { require(getNow() < checkInTime && getNow() > checkOutTime); _; } /** * @notice ESCB9 interface * @notice Function to get address of apartment owner * @return Seller's address **/ function seller() public returns(address) { return "0x27a36731337cdee360d99b980b73e24f6e188618"; } /** * @notice ESCB9 interface * @notice Function to get custom type for ESCB9 smart contract * @return Type **/ function type() public returns(bytes) { return "rent"; } /** * @notice ESCB9 interface * @notice Function to get address of renter * @return Buyer's address **/ function buyer() public returns(address) { return "0xb582baaF7e749d6aA98A22355A9d08B4c4d013C8"; } /** * @notice ESCB9 interface * @notice Function to get sum for deal * @return Sum of deal in wei **/ function depositedSum() public returns(uint256) { return 1000000000000000000; //1 ETH in weis } /** * @notice ESCB9 interface * @notice Function to get arbitrage's address * @return Arbitrage's address **/ function arbitrage() public returns(address) { return "0xe91065d8bb2392121a8fbe6a81e79782fbc89dd4"; } /** * @notice ESCB9 interface * @notice Function to approve escrow deal and confirm success * @param Some comment * @return Success of operation **/ function confirm(notice) public onlyArbitrage only_after_check_out returns(bool) { confirmed(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to freeze escrow deal * @param Some comment * @return Success of operation **/ function freeze(notice) public onlyArbitrage only_during_renting returns(bool) { frozen(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to dispute escrow deal * @return Success of operation **/ function dispute() public onlyArbitrage only_after_check_out returns(bool) { disputed(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to cancel escrow deal and confirm fail * @return Success of operation **/ function cancel() public onlyArbitrage only_not_in_during_renting returns(bool) { canceled(getNow(), notice); } /** * @notice Get current unix time stamp **/ function getNow() constant public returns (uint) { return now; } /** * @notice Get private information when renter will pay deposit **/ function getPrivateInformation() constant isDeposited public returns (bytes) { return privateInformation; } } 


8.2 рдлрд╛рдЗрдЯ рдордиреА рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреНрд░рд┐рдкреНрдЯреЛрдХреНрдпреВрд░реЗрдВрд╕реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдФрд░ рдПрдХ рд╡рд┐рдХреЗрдиреНрджреНрд░реАрдХреГрдд рдореЛрдб рдореЗрдВ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз


рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЖрдкрдХреЛ рдПрдХреНрд╕рдЪреЗрдВрдЬрд░реНрд╕ рдФрд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рд╕реЗрд╡рд╛рдУрдВ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛, рдмреАрдЯреАрд╕реА рдХреЛ рд╕реАрдзреЗ рдлрд┐рдПрдЯ рдХреЗ рдкреИрд╕реЗ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреАрдЯреАрд╕реА рд╡рд┐рдХреНрд░реЗрддрд╛ рдмреАрдЯреАрд╕реА рдмреНрд▓реЙрдХрдЪреЗрди рдореЗрдВ рдЬрдорд╛ рд░рд╛рд╢рд┐ рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЦрд░реАрджрд╛рд░, рдордзреНрдпрд╕реНрде рджреНрд╡рд╛рд░рд╛ рдЬрдорд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреБрдмрдВрдз рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд╛рд╢рд┐ рдХреЛ рдЕрдиреБрдмрдВрдз рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдЦрд╛рддрд╛ рдпрд╛ рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдХрд╛рд░реНрдб рдирдВрдмрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдордзреНрдпрд╕реНрде рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЕрдкреАрд▓ рдХреЗ рдмрд╛рдж рд▓реЗрдирджреЗрди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЬрдорд╛ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдкрд╛рд░реНрдЯрд┐рдпрд╛рдВ рдЖрдо рд╕рд╣рдорддрд┐ рд╕реЗ рд╕рд╣рдордд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рд╡рд┐рд╡рд╛рджрд┐рдд рдмрд╛рддрдЪреАрдд рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдЖрдЧреЗ рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдЕрдиреБрдмрдВрдз рд╡рд┐рд╡рд╛рджрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
 // Don't use this code, it can be not working or contain the vulnerability, for demonstration purpose only pragma solidity ^0.4.21; /// @title p2pExchangeESCB9 - Allows exchanging any cryptocurrencies on fiat money and back, directly between users. The safe way to do deal for counterparties. /// @desc This example shows as exchange fiat money on BTC (forward flow) /// @author Konstantin Viktorov - <ceo@escrowblock.net> contract p2pExchangeESCB9 is ESCB9 { // in minimal decimals, for example, 500.000 rubles is equal 50000000 kopeks uint256 constant public inputAmount = 50000000; // RUR in bytes bytes constant public inputCurrency = "0x525552"; // in minimal decimals, for example, 1 BTC is equal 100000000 satoshi uint256 constant public outputAmount = "100000000"; // BTC in bytes bytes constant public outputCurrency = "0x425443"; // Deposit can be place only before this time const bytes public closeTime = "1526829900"; // use "forward" way, when output currency will be deposited or "backward" if input currency will be deposited uint256 constant public depositWay = "forward"; /** * Encrypted information, see https://github.com/ethereumjs/ethereumjs-wallet and * https://github.com/pubkey/eth-crypto/blob/master/tutorials/encrypted-message.md **/ /** * Encrypted information for placing deposit, for example BTC address **/ bytes private externalDepositAddress = "0x3139333978476346484d6f464b465845564754415761706b3537694e6a3579556b52"; /** * Encrypted information for the amount of deposit, for example for BTC 8 decimals can be added 2-3 chars from 0-9 as pin-code for deal. See more in EscrowBlock WhitePaper * If output amount is equal 100000000, then deposited amount can be 100000123 **/ bytes private externalDepositAmount = "0x5f5e17b"; /** * Encrypted information for sending amount to seller, for example credit card number or bank account, for example 4242424242424242 **/ bytes private externalIncomingAddress = "0xf12765df4c9b2"; modifier only_before_close_time { require(getNow() < closeTime); _; } modifier only_after_close_time { require(getNow() > closeTime); _; } /** * @notice ESCB9 interface * @notice Function to get address of apartment owner * @return Seller's address **/ function seller() public returns(address) { return "0x27a36731337cdee360d99b980b73e24f6e188618"; } /** * @notice ESCB9 interface * @notice Function to get custom type for ESCB9 smart contract * @return Type **/ function type() public returns(bytes) { return "exchange"; } /** * @notice ESCB9 interface * @notice Function to get address of renter * @return Buyer's address **/ function buyer() public returns(address) { return "0xb582baaF7e749d6aA98A22355A9d08B4c4d013C8"; } /** * @notice ESCB9 interface * @notice Function to get sum for deal * @return Sum of deal in minimal decimals **/ function depositedSum() public returns(uint256) { rerurn outputAmount; } /** * @notice ESCB9 interface * @notice Function to get arbitrage's address * @return Arbitrage's address **/ function arbitrage() public returns(address) { return "0xe91065d8bb2392121a8fbe6a81e79782fbc89dd4"; } /** * @notice ESCB9 interface * @notice Function to approve escrow deal and confirm success * @param Some comment * @return Success of operation **/ function confirm(notice) public onlyArbitrage only_after_close_time returns(bool) { confirmed(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to freeze escrow deal * @param Some comment * @return Success of operation **/ function freeze(notice) public onlyArbitrage only_after_close_time returns(bool) { frozen(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to dispute escrow deal * @return Success of operation **/ function dispute() public onlyArbitrage only_after_close_time returns(bool) { disputed(getNow(), notice); } /** * @notice ESCB9 interface * @notice Function to cancel escrow deal and confirm fail * @return Success of operation **/ function cancel() public onlyArbitrage only_before_close_time returns(bool) { canceled(getNow(), notice); } /** * @notice Get current unix time stamp **/ function getNow() constant public returns (uint) { return now; } /** * @notice Get private information for buyer when seller sent deposit **/ function getExternalIncomingAddress() constant isDeposited public returns (bytes) { return externalIncomingAddress; } /** * @notice Get private information about amount for seller for sending deposit **/ function getExternalDepositAmount() constant public returns (bytes) { return externalDepositAmount; } /** * @notice Get private information about address for seller for sending deposit **/ function getExternalDepositAddress() constant public returns (bytes) { return externalDepositAddress; } } 


9 рдЖрд░реНрдмрд┐рдЯреНрд░реЗрд╢рди рдиреЛрдбреНрд╕


рдЯреНрд░рд╕реНрдЯ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд╛рдо рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдкрд░реНрд╕ рдХрд╛ рдПрдХ рдкрджрд╛рдиреБрдХреНрд░рдо рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрд░реНрдмрд┐рдЯреНрд░реЗрд╢рди рдиреЛрдбреНрд╕, рдпрд╛рдиреА рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдРрд╕реЗ рд╡реЙрд▓реЗрдЯреНрд╕ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рд╕рд╣рд╛рдпрдХ рд╡реЙрд▓реЗрдЯреНрд╕ рд╣реИрдВ, рд╡реЗ рд╡рд┐рд╡рд╛рдж рд╕рдорд╛рдзрд╛рди рдХреЗ рдЧрд╛рд░рдВрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдирд┐рдкреЛрдЯреЗрдВрдЯрд┐рдпрд░реАрдЬ рдХреЗрд╡рд▓ рдПрдХ рдмреЗрд╣рддрд░ рдкрджрд╛рдиреБрдХреНрд░рдо рджреНрд╡рд╛рд░рд╛ рдирд┐рдпреБрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧреА рдмрд╛рддрдЪреАрдд рдХреЗ рд╡рд┐рд╡рд╛рджрд┐рдд рдкреНрд░рд╡рд╛рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рднрд╛рдВрд╢ рдФрд░ рдмреЛрдирд╕ рд╡рд┐рддрд░рд┐рдд рдХрд░рдХреЗ рдПрдХ рдЗрдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдмреЛрдирд╕ рдЖрдХрд╛рд░ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдордзреНрдпрд╕реНрдерддрд╛ рдиреЛрдб рдореЗрдВ рдПрдХ рдЕрдзрд┐рдХреГрдд рднрд╛рдЧреАрджрд╛рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рдкрддреЗ рдкрд░ рдЯреЛрдХрди рдХреА рд╕рд░реНрд╡рд╕рдореНрдорддрд┐-рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░рд╛рд╢рд┐ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИредрдЗрд╕ рдкреНрд░рдХрд╛рд░, рдордзреНрдпрд╕реНрдерддрд╛ рдиреЛрдбреНрд╕ рдХреЗ рд╕рднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рднрд╛рдВрд╢ рдХреА рд╕реНрдерд┐рд░ рдкреНрд░рд╛рдкреНрддрд┐ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред рдПрдХ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд╛рд▓реЗ рдмрдЯреБрдП рдХрд╛ рдкрджрд╛рдиреБрдХреНрд░рдо рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдЙрддрдирд╛ рд╣реА рдЖрд╡рд╢реНрдпрдХ рдЯреЛрдХрди рдПрдХ рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рдкрддреЗ рдкрд░ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

10 рд╢рдмреНрджрдХреЛрд╢


Ethereum рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рддрдХрдиреАрдХ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╡рд┐рдХреЗрдВрджреНрд░реАрдХреГрдд, рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд▓реЗрдирджреЗрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЛ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдореЗрдВ рджрд░реНрдЬ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз - рд╕реЙрд▓рд┐рдбрд┐рдЯреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛, рдПрдереЗрд░рд┐рдпрдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рддрд░реНрдХ, рдЬреЛ рдЖрдкрдХреЛ рд▓реЗрдирджреЗрди рддрд░реНрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдмрд╣реБ-рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡реЙрд▓реЗрдЯ (рдЖрд░реНрдмрд┐рдЯрд░) рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╣реИ рдЬреЛ рдЕрдзрд┐рдХреГрдд рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд▓реЗрдирджреЗрди рдХреА рдкреБрд╖реНрдЯрд┐ рдпрд╛ рд░рджреНрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдорд▓реНрдЯреА-рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╡реЙрд▓реЗрдЯ рдХреЗ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЧреЗрдЯрд╡реЗ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпрд╛ рдзрдирд╡рд╛рдкрд╕реА рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХрд╛ рд╕реНрд╡рд╛рдореА - рдПрдХ рдЬрдореАрдВрджрд╛рд░, рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛, рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдЗрддреНрдпрд╛рджрд┐, рд╡рд╣ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдмреЗрдЪрддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдкреБрд░рд╕реНрдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдорд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдзрдирд░рд╛рд╢рд┐ рдХрд╛ рд╕реНрд╡рд╛рдореА - рдПрдХ рдХрд┐рд░рд╛рдпреЗрджрд╛рд░, рдЦрд░реАрджрд╛рд░, рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЧреНрд░рд╛рд╣рдХ, рдЖрджрд┐ рд╣реИ, рдЬреЛ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдЙрддреНрдкрд╛рдж рдпрд╛ рд╕реЗрд╡рд╛ рдХреЛ рдЦрд░реАрджрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕реНрддреБ рдкрд░ рдЬрдорд╛ рджреЗрддрд╛ рд╣реИред

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


All Articles