рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

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

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

рдЬрдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ WASM рдЕрдиреБрдмрдВрдз рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛

рдПрдХ рдЕрдиреБрдмрдВрдз рдмрдирд╛рдПрдБ

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

рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

рдпрд╣ рдЙрддреНрдкрдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдВрд░рдЪрдирд╛:

рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

Cargo.toml рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдирд┐рд░реНрднрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХрд╛ [lib] рдЦрдВрдб рдХреНрд░реЗрдЯ-рдЯрд╛рдЗрдк = ["cdylib"] рдкрд░ рд╕реЗрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред lib.rs рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреБрдмрдВрдз рддрд░реНрдХ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ Cargo.toml рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ [рдирд┐рд░реНрднрд░рддрд╛] рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

рдЗрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдмреНрд▓реЙрдХрдЪреЗрди рдФрд░ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдЬреИрд╕реЗ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдиреБрдмрдВрдз рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕рдорд╛рд░реЛрд╣

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

рд▓реЗрдирджреЗрди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдирд╡реЛрдХ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ?

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

рдЕрдиреБрдмрдВрдз рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдХреИрд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

ontio_std рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд░рдирдЯрд╛рдЗрдо :: ret рдлрд╝рдВрдХреНрд╢рди рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред

рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЖрд╣реНрд╡рд╛рди рд╕рдорд╛рд░реЛрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдУрдиреНрдЯреЛрд▓реЙрдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ WebAssembly рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ? рднрд╛рдЧ 1: рдЬрдВрдЧ

рдЕрдиреБрдмрдВрдз рдбреЗрдЯрд╛ рдХреЛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдФрд░ рдбреАрд╕реЗрд░рд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛

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

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

рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ: рдмрд╛рдЗрдЯ, u16, u32, u64, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛ рдХреЛ рд╕реАрдзреЗ рдмрд╛рдЗрдЯ рд╕рд░рдгреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ buf рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ; рдЧреИрд░-рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП, рд▓рдВрдмрд╛рдИ рдХреЛ рдкрд╣рд▓реЗ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ Ddata (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЬреНрдЮрд╛рдд рдЖрдХрд╛рд░ рдХреЗ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХ, u16, u32, рдпрд╛ u64, рдЖрджрд┐ рд╕рд╣рд┐рдд)ред

Deserialization рдЗрд╕рдХреЗ рдареАрдХ рд╡рд┐рдкрд░реАрдд рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рдорд╛рдВрдХрди рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдорд╛рди рдЕрдХреНрд░рдорд╛рдВрдХрди рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИред Deserialization рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЛ рдлрд╝реАрд▓реНрдб buf рдФрд░ pos рд╣реИрдВред Buf рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрдЯрд╛ рдХреЛ deserialized рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рдкрдврд╝рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pos рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбреЗрдЯрд╛ рдкрдврд╝рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, рдпрджрд┐ рдЖрдк рдЙрд╕рдХреА рд▓рдВрдмрд╛рдИ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕реЗ рд╕реАрдзреЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЬреНрдЮрд╛рдд рд▓рдВрдмрд╛рдИ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдПтАФрдкрд╣рд▓реЗ рд▓рдВрдмрд╛рдИ рдкрдврд╝реЗрдВ, рдлрд┐рд░ рд╕рд╛рдордЧреНрд░реА рдкрдврд╝реЗрдВред

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

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

  • рдбреЗрдЯрд╛рдмреЗрд╕ :: рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдХреБрдВрдЬреА) - рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореБрдЦреНрдп рдЕрдиреБрд░реЛрдз AsRef рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ;
  • рдбреЗрдЯрд╛рдмреЗрд╕ :: рдкреБрдЯ (рдХреБрдВрдЬреА, рдорд╛рди) - рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреБрдВрдЬреА AsRef рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИ, рдФрд░ рдорд╛рди рдПрдирдХреЛрдбрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ;
  • рдбреЗрдЯрд╛рдмреЗрд╕ :: рд╣рдЯрд╛рдПрдВ (рдХреБрдВрдЬреА) - рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдХреБрдВрдЬреА AsRef рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИред

рдЕрдиреБрдмрдВрдз рдкрд░реАрдХреНрд╖рдг

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

рдЕрдиреБрдмрдВрдз рдбрд┐рдмрдЧрд┐рдВрдЧ

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

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

рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИрд╢рд░реЗрдЯ рдПрдВрдб рд╢реЗрдпрд░реНрд╕ рдХреЗ рд╕рдВрдкрд╛рджрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдУрдиреНрдЯреЛрд▓реЙрдЬреА рд░реВрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрд▓рд┐рдХ

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

рдЖрдВрдЯрд▓рдЬреА

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ