рд╡реЗрдм 3.0 рд╡реЗрд╡ рдХреА рд╕рд╡рд╛рд░реА рдХрд░реЗрдВ

рдбреЗрд╡рд▓рдкрд░ рдХреНрд░рд┐рд╕реНрдЯреЛрдл рд╡рд░реНрджреЛрдЯ рдиреЗ рдСрдирд▓рд╛рдЗрди рдХреЛрд░реНрд╕ ' рдорд╛рд╕реНрдЯреЗрд░рд┐рдВрдЧ рд╡реЗрдм 3.0 рд╡рд┐рде рд╡реЗрд╡реНрд╕ ' рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рд╣реИ, рдЬрд┐рд╕реЗ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред



рдЕрдкрдиреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдмрддрд╛рдПрдВред рдЗрд╕ рдХреЛрд░реНрд╕ рдореЗрдВ рдЖрдкрдХреА рдХреНрдпрд╛ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ?

рдореИрдВ рд▓рдЧрднрдЧ 15 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реВрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдлреНрд░реАрд▓рд╛рдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВред

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

рдирддреАрдЬрддрди, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди, рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рд╕рдВрдЧрдарди рдФрд░ рдмреИрдВрдХ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рдереЗ, рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЬрд▓реНрдж рд╣реА рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреАред

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

рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рдХреМрди рд╕реЗ рдкрд╣рд▓реВ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд▓рдЧреЗ рдФрд░ рдЬреЛ рд╕рдмрд╕реЗ рдХрдард┐рди рдереЗ?

рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕рдордп рдерд╛ред рдкрд╛рдареНрдпрдХреНрд░рдо рдХрд╛ рдЕрд░реНрде рдХреБрдЫ рд╕реАрдЦрдирд╛ рд╣реИ, рдФрд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдмрд╣реБрдд рд╕реБрд▓рдн рдереЗ, рдФрд░ рдЪрд┐рддреНрд░ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдкрдХ рдереЗред рдЗрд╕рдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╖рдпреЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдФрд░ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХреАред

рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдкреВрд░рд╛ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрднреА-рдХрднреА рдЕрдкрдиреЗ рджрдо рдкрд░ рдХреБрдЫ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣ рдХреБрдЫ рд╕реАрдЦрдиреЗ рдФрд░ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдХрдИ рдмрд╛рд░ рдЬрдм рддрдХ рдореИрдВрдиреЗ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рддрдм рддрдХ рдореИрдВ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рднрд╛рдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╕рдордЭ рдкрд╛рдпрд╛ред рд╣рдореЗрдВ 'рдХреЙрдкреА / рдкреЗрд╕реНрдЯ' рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рдереА, рд╕рднреА рдХреЛрдбреЛрдВ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдФрд░ рдЗрд╕рд╕реЗ рд╣рд░ рдЪреАрдЬ рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реАред

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

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

рд╣рдореЗрдВ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛рдПрдВ рдЬреЛ рдЖрдкрдиреЗ рдкреВрд░реЗ рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ - 'рдХреВрдкрди рдмрд╛рдЬрд╝рд╛рд░'? рдХреНрдпрд╛ рдореИрдВ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рднреА рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ?

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



рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдХреВрдкрди рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ рд╕рддреНрдпрд╛рдкрди рдХрд╛рд░реНрдп рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдХреВрдкрди рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред



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

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

{-# STDLIB_VERSION 3 #-} {-# CONTENT_TYPE DAPP #-} {-# SCRIPT_TYPE ACCOUNT #-} letownerPublicKey = base58'H8ndsHjBha6oJBQQx33zqbP5wi8sQP7hwgjzWUv3q95M' @Verifier(tx) funcverify() = { matchtx { cases: SetScriptTransaction=>sigVerify(tx.bodyBytes, tx.proofs[0], ownerPublicKey) cased: DataTransaction=>true case_ =>false } } 

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

рдХреЛрд░реНрд╕ рдХреЗ рджреМрд░рд╛рди рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрдЯрд╛ рд▓реЗрдирджреЗрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдмрд╛рдЬрд╝рд╛рд░ рдореЗрдВ рдХреВрдкрди рдЬреЛрдбрд╝ рд░рд╣реЗ рдереЗ:

 letdatajson = { "title": "t-shirt with , vote 1", "coupon_price": 10000000, "old_price": 1000000000, "new_price": 100000000, "address": "Universe", "description": "I want you to make love, not war, i know you've heard it before", "image": "https://bit.ly/2EXTghg" } it('add item', asyncfunction(){ letts = invokeScript({ dApp: dappAddress, call:{ function:"addItem", args:[ { type:"string", value: datajson.title }, { type:"integer", value: datajson.coupon_price }, { type:"string", value: JSON.stringify(datajson) } ]}, payment: [] }, accountSupplierSeed) lettx = awaitbroadcast(ts) awaitwaitForTx(tx.id) }) 

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

рдпрд╣рд╛рдБ AddItem рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкреНрд░рдпреБрдХреНрдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 @Callable(i) funcaddItem(title: String, price: Int, data: String) = { letsupplierAddress = toBase58String(i.caller.bytes) letitem = getKeyItem(supplierAddress, title) if( price <= 0) thenthrow("purchase amount cannot be less than item price") elseif( getValueItemSupplier(item) !=NONE ) thenthrow("an item is already exist") else{ WriteSet([ DataEntry(getKeyItemSupplier(item), supplierAddress), DataEntry(getKeyItemPrice(item), price), DataEntry(getKeyItemData(item), data) ]) } } 

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

рдкреНрд░рддрд┐рдмрджреНрдз рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИрд╢ рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдирдордХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдП рдЧрдП рд╡реЛрдЯреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

"рдкреНрд░рдХрдЯ" рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╡реЛрдЯреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд╣реИрд╢ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЧрдП рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

 @Callable(i) funcvoteCommit(item: String, hash: String) = { letuser = toBase58String(i.caller.bytes) letcommits = getValueCommitsCount(item) letstatus = getValueItemStatus(item) if( commits >=VOTERS) thenthrow("reached max num of voters") elseif(getValueCommit(item, user) !=NONE) thenthrow("user has already participated") elseif(getKeyItemSupplier(item) ==NONE) thenthrow("item does not exist") elseif(status !=NONE && status !=VOTING) thenthrow("voting is not possible") else{ WriteSet([ DataEntry(getKeyCommit(item, user), hash), DataEntry(getKeyCommitsCount(item), commits +1), DataEntry(getKeyItemStatus(item),if(commits ==VOTERS) thenREVEAL elseVOTING) ]) } } > 

рдЖрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдо рд╕реЗ рдФрд░ рдХреНрдпрд╛ рд╕реАрдЦрд╛?

рдкрд╛рдареНрдпрдХреНрд░рдо рдореЗрдВ рдЯреЛрдХреЗрдирд╛рдЗрдЬреЗрд╢рди рдФрд░ рдиреЙрди-рдлрдВрдЬреЗрдмрд▓ рдЯреЛрдХрди (рдПрдирдПрдлрдЯреА) рднреА рд╢рд╛рдорд┐рд▓ рдереЗ - рдХреБрдЫ рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрдВрдЯрд░рдПрдХреНрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЯреЛрдХрдиред

рдЖрдЦрд┐рд░реА рд╕рдмрдХ рдУрд░рд╛рдХрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ред рдЪреВрдВрдХрд┐ рдмреНрд▓реЙрдХрдЪреЗрди рдмрд╛рд╣рд░реА рджреБрдирд┐рдпрд╛ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП oracles рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдорд╛рд░реНрдХреЗрдЯрдкреНрд▓реЗрд╕ рдХреЗ рд▓рд┐рдП, рдСрд░реЗрдХрд▓ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдПрдХ рдЖрдкреВрд░реНрддрд┐рдХрд░реНрддрд╛ рдХреЛ рдмреНрд▓реИрдХрд▓рд┐рд╕реНрдЯ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреЗрдЪреЗ рдЧрдП рдХреВрдкрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

 funcgetExtValueItemWhiteListStatus(item:String) = { item +"_verifier_status" } letverifier = "3Mx9qgMyMhHt7WUZr6PsaXNfmydxMG7YMxv" letVERIFIED = "verified" letBLACKLISTED = "blacklist" @Callable(i) funcsetstatus(supplier: String, status: String) = { letaccount = toBase58String(i.caller.bytes) if( account !=verifier ) thenthrow("only oracle verifier are able to manage whitelist") elseif( status !=VERIFIED && status !=BLACKLISTED) thenthrow("wrong status") else{ WriteSet([ DataEntry(getExtValueItemWhiteListStatus(supplier), status) ]) } } 

рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдХреНрдпрд╛ рдерд╛?

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

рдЖрдкрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЬреЛ рд╕реАрдЦрд╛ рд╣реИ, рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрдкрдХреА рдпреЛрдЬрдирд╛ рдХреНрдпрд╛ рд╣реИ?

рд╢реБрд░реБрдЖрдд рд╕реЗ рд╣реА, рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереА рдХрд┐ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдПрдХ рдирдП рд╕реНрддрд░ рдкрд░ рд▓рд╛рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдЕрдм RIDE рдкрд░ рд╕рд╛рдЗрди-web.app рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХрд╛ рдерд╛ред рдореМрдЬреВрджрд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рдорд╛рдгрди рдХреЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди RIDE рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕рдордЭрдиреЗ рдпреЛрдЧреНрдп рд╣реЛрдЧрд╛, рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рдХрд╛рд░реНрдп рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдореЗрдВ рдИрдореЗрд▓ рдХрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг, рдХрдИ рдкрдХреНрд╖реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдордЭреМрддреЗ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдкрд╛рдареНрдпрдХреНрд░рдо рдиреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдирдП рд╡рд┐рдЪрд╛рд░ рдереЗред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдордиреЗ рдЖрдПрдВрдЧреЗред

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


All Articles