рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХ) рдФрд░ рдирдИ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛

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

рддрдм рд╕реЗ, рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ (рдПрдХ рдореЗрдВ) рддрдХ TON рд╡рд┐рдХрд╛рд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЦрдмрд░ рдирд╣реАрдВ рдЖрдИ рд╣реИ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЪреИрдирд▓) рдкреЗрдЬ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджрд┐рдпрд╛ https://test.ton.org/download.html, рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВ:
тЧж рдЯрди-рдЯреЗрд╕реНрдЯ-рд▓рд╛рдЗрдЯрдХреНрд▓рд╛рдЗрдВрдЯ-рдлреБрд▓.рдЯрд╛рд░.xz - TON рдкрд░реАрдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕реНрд░реЛрдд;
тЧж рдЯрди-рд▓рд╛рдЗрдЯ-рдХреНрд▓рд╛рдЗрдВрдЯ-test1.config.json - рдкрд░реАрдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓;
тЧж README тАФ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА;
тЧж рдХреИрд╕реЗ тАФ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдмрдирд╛рдиреЗ рдкрд░ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢;
тЧж рдЯрди.рдкреАрдбреАрдПрдл - TON рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рддрдХрдиреАрдХреА рдЕрд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ (рджрд┐рдирд╛рдВрдХ 2 рдорд╛рд░реНрдЪ, 2019);
тЧж tvm.pdf - рдЯреАрд╡реАрдПрдо (рдЯреАрдУрдПрди рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди, рдЯреАрдУрдПрди рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдХрд╛ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг;
тЧж tblkch.pdf - TON рдмреНрд▓реЙрдХрдЪреЗрди рдХрд╛ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг;
тЧж рдкрд╛рдВрдЪрд╡рд╛рдВрдмреЗрд╕.рдкреАрдбреАрдПрдл - TON рдореЗрдВ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХреА рдЧрдИ рдирдИ Fift рднрд╛рд╖рд╛ рдХрд╛ рд╡рд┐рд╡рд░рдгред

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

рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдХреНрд▓рд╛рдЗрдВрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ - рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, README рдЗрд╕ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ macOS 10.14.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░реВрдВрдЧрд╛; рдореИрдВ рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдирд┐рд░реНрдорд╛рдг рдХреА рд╕рдлрд▓рддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ред

  1. рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЕрдирдкреИрдХ рдХрд░реЗрдВ рд╕реНрд░реЛрдд рдкреБрд░рд╛рд▓реЗрдЦ. рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдмреИрдХрд╡рд░реНрдб рд╕рдВрдЧрддрддрд╛ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред

  2. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдореЗрдХ, рд╕реЗрдореЗрдХ (рд╕рдВрд╕реНрдХрд░рдг 3.0.2 рдпрд╛ рдЙрдЪреНрдЪрддрд░), рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ (рд╕реА рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕рд╣рд┐рдд), рдЬреА++ рдпрд╛ рдХреНрд▓реИрдВрдЧ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред рдореБрдЭреЗ рдХреБрдЫ рднреА рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд рдПрдХ рд╕рд╛рде рдЖ рдЧрдпрд╛ред

  3. рдЖрдЗрдП рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╕реНрд░реЛрдд рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирдкреЕрдХ рдХрд┐рдП рдЧрдП рд╣реИрдВ ~/lite-client. рдЗрд╕рд╕реЗ рдЕрд▓рдЧ, рдЗрдХрдЯреНрдареЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ~/liteclient-build), рдФрд░ рдЗрд╕рд╕реЗ (cd ~/liteclient-build) рдЖрджреЗрд╢реЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ:

    cmake ~/lite-client
    cmake --build . --target test-lite-client

    рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХ) рдФрд░ рдирдИ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛

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

    cmake --build . --target fift

  4. рд╡рд░реНрддрдорд╛рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдкрд░реАрдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

  5. рдЕрдВрдд, рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

    ./test-lite-client -C ton-lite-client-test1.config.json

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХ) рдФрд░ рдирдИ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреБрдЫ рд╣реА рдХрдорд╛рдВрдб рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
тЧж help - рдЖрджреЗрд╢реЛрдВ рдХреА рдЗрд╕ рд╕реВрдЪреА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ;
тЧж quit - рдмрд╛рд╣рд░ рдЬрд╛рдУ;
тЧж time - рд╕рд░реНрд╡рд░ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕рдордп рджрд┐рдЦрд╛рдПрдВ;
тЧж status - рдХрдиреЗрдХреНрд╢рди рдФрд░ рд╕реНрдерд╛рдиреАрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рдПрдВ;
тЧж last - рдмреНрд▓реЙрдХрдЪреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ (рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ)ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдк рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
тЧж sendfile <filename> тАФ TON рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реЗрдХреНрд╢рди рд╣реЛрддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЦрд╛рддреЛрдВ рдХреЗ рдмреАрдЪ рдзрди рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз;
тЧж getaccount <address> - рд╡рд░реНрддрдорд╛рди рджрд┐рдЦрд╛рдПрдВ (рдЬрд┐рд╕ рд╕рдордп рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) last) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдХреЗ рд╕рд╛рде рдЦрд╛рддреЗ рдХреА рд╕реНрдерд┐рддрд┐;
тЧж privkey <filename> - рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдирд┐рдЬреА рдХреБрдВрдЬреА рд▓реЛрдб рдХрд░реЗрдВред

рдпрджрд┐, рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╕рдордп, рдЖрдк рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрд╕рдореЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ -D, рдлрд┐рд░ рд╡рд╣ рдЗрд╕рдореЗрдВ рдорд╛рд╕реНрдЯрд░рдЪреЗрди рдХрд╛ рдЕрдВрддрд┐рдо рдмреНрд▓реЙрдХ рдЬреЛрдбрд╝ рджреЗрдЧрд╛:

./test-lite-client -C ton-lite-client-test1.config.json -D ~/ton-db-dir

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

рднрд╛рд╖рд╛ рдкрд╛рдБрдЪрд╡реАрдВ

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдкрд╛рдВрдЪрд╡рд╛рдВрдмреЗрд╕.рдкреАрдбреАрдПрдл рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЯреАрдо рдиреЗ рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рд╕реНрдЯреИрдХ рднрд╛рд╖рд╛ рдмрдирд╛рдИ рд╣реИ рдкрд╛рдБрдЪрд╡рд╛рдБ (рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдЕрдВрдХ рд╕реЗ рдкрд╛рдВрдЪрд╡рд╛рдВ, рдлреЛрд░реНрде рдХреЗ рд╕рдорд╛рди, рдПрдХ рдРрд╕реА рднрд╛рд╖рд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдлрд┐рдлреНрде рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рд╕рдорд╛рдирддрд╛ рд╣реИ)ред

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реИ, 87 рдкреГрд╖реНрда, рдФрд░ рдореИрдВ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ (рдХрдо рд╕реЗ рдХрдо рдЗрд╕рд▓рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкрдврд╝рдирд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ :)ред рдореИрдВ рдореБрдЦреНрдп рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕ рднрд╛рд╖рд╛ рдореЗрдВ рдХреБрдЫ рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред

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

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

рдпрд╣реАрдВ рдкрд░ рднрд╛рд╖рд╛ рдХреА рд▓рдЧрднрдЧ рд╕рдВрдкреВрд░реНрдг рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ (рдирд┐рдпрдВрддреНрд░рдг рд╕рдВрд░рдЪрдирд╛рдУрдВ рд╕рд╣рд┐рдд) рдХреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рддреЛ рдЖрдВрддрд░рд┐рдХ, рдЬреИрд╕реЗ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдирдП рд╢рдмреНрджреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛; рдпрд╛ "рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп" рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд) Fift.fif, рдЬреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реИ crypto/fift рд╕реВрддреНрд░реЛрдВ рдореЗрдВ)

Fift рдореЗрдВ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдкреНрд░реЛрдЧреНрд░рд╛рдо:

{ dup =: x dup * =: y } : setxy
3 setxy x . y . x y + .
7 setxy x . y . x y + .

рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдПрдХ рдирдпреЗ рд╢рдмреНрдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ setxy (рдЙрдкрд╕рд░реНрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ {, рдЬреЛ рд╕рдорд╛рдкрди рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдмреНрд▓реЙрдХ рдмрдирд╛рддрд╛ рд╣реИ } рдФрд░ рдЙрдкрд╕рд░реНрдЧ :, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рдмреНрдж рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред setxy рд╕реНрдЯреИрдХ рдХреЗ рд╢реАрд░реНрд╖ рд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд (рдпрд╛ рдкреБрдирдГ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХрд░рддрд╛ рд╣реИ рд╕реНрдерд┐рд░ x, рдФрд░ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╡рд░реНрдЧ рдПрдХ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ y (рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЪрд░ рдХрд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рднрд╛рд╖рд╛ рдореЗрдВ рдирд╛рдордХрд░рдг рдкрд░рдВрдкрд░рд╛ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реВрдВ)ред

рдЕрдЧрд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реНрдЯреИрдХ рдкрд░ рдПрдХ рдирдВрдмрд░ рдбрд╛рд▓реЗрдВ рдФрд░ рдХреЙрд▓ рдХрд░реЗрдВ setxy, рддреЛ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ x, y (рдпрд╣ рд╢рдмреНрдж рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ .), рджреЛрдиреЛрдВ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рднреА рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ:

3 9 12 ok
7 49 56 ok

(рд▓рд╛рдЗрди "рдУрдХреЗ" рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЗрдирдкреБрдЯ рдореЛрдб рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд▓рд╛рдЗрди рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рджреБрднрд╛рд╖рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдореБрджреНрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ)

рдЦреИрд░, рдПрдХ рдкреВрд░реНрдг рдХреЛрдб рдЙрджрд╛рд╣рд░рдг:

"Asm.fif" include

-1 constant wc  // create a wallet in workchain -1 (masterchain)

// Create new simple wallet
<{  SETCP0 DUP IFNOTRET INC 32 THROWIF  // return if recv_internal, fail unless recv_external
    512 INT LDSLICEX DUP 32 PLDU   // sign cs cnt
    c4 PUSHCTR CTOS 32 LDU 256 LDU ENDS  // sign cs cnt cnt' pubk
    s1 s2 XCPU            // sign cs cnt pubk cnt' cnt
    EQUAL 33 THROWIFNOT   // ( seqno mismatch? )
    s2 PUSH HASHSU        // sign cs cnt pubk hash
    s0 s4 s4 XC2PU        // pubk cs cnt hash sign pubk
    CHKSIGNU              // pubk cs cnt ?
    34 THROWIFNOT         // signature mismatch
    ACCEPT
    SWAP 32 LDU NIP 
    DUP SREFS IF:<{
      8 LDU LDREF         // pubk cnt mode msg cs
      s0 s2 XCHG SENDRAWMSG  // pubk cnt cs ; ( message sent )
    }>
    ENDS
    INC NEWC 32 STU 256 STU ENDC c4 POPCTR
}>c
// code
<b 0 32 u, 
   newkeypair swap dup constant wallet_pk 
   "new-wallet.pk" B>file
   B, 
b> // data
// no libraries
<b b{00110} s, rot ref, swap ref, b>  // create StateInit
dup ."StateInit: " <s csr. cr
dup hash dup constant wallet_addr
."new wallet address = " wc . .": " dup x. cr
wc over 7 smca>$ type cr
256 u>B "new-wallet.addr" B>file
<b 0 32 u, b>
dup ."signing message: " <s csr. cr
dup hash wallet_pk ed25519_sign_uint rot
<b b{1000100} s, wc 8 i, wallet_addr 256 u, b{000010} s, swap <s s, b{0} s, swap B, swap <s s, b>
dup ."External message for initialization is " <s csr. cr
2 boc+>B dup Bx. cr
"new-wallet-query.boc" tuck B>file
."(Saved to file " type .")" cr

рдпрд╣ рдбрд░рд╛рд╡рдиреА рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ - рдЗрд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ new-wallet-query.boc рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж. рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ TON рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛), рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рд░рдЦреЗ рдЬрд╛рдПрдВрдЧреЗред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЯреАрд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ рдлрд┐рдлреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдЗрд╕ рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИрдВ crypto/fift/Asm.fif рдФрд░ рдХреЛрдб рдХреЗ рдЙрдкрд░реЛрдХреНрдд рднрд╛рдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред

рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдирд┐рдХреЛрд▓рд╛рдИ рдбреНрдпреВрд░реЛрд╡ рдХреЛ рдирдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рд╣реИ :)

рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдмрдирд╛рдирд╛ рдФрд░ TON рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛

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

TON рдореЗрдВ рдЦрд╛рддреЗ

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

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

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

рдпрд╣ "рдХрдЪреНрдЪрд╛" рдкреНрд░рд╛рд░реВрдк рд╣реИ: рдкрд╣рд▓реЗ рд╡рд░реНрдХрдЪреЗрди рдЖрдИрдбреА, рдлрд┐рд░ рдПрдХ рдХреЛрд▓рди, рдФрд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рди рдореЗрдВ рдЦрд╛рддрд╛ рдЖрдИрдбреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреНрд░рд╛рд░реВрдк рд╣реИ - рд╡рд░реНрдХрдЪреЗрди рдирдВрдмрд░ рдФрд░ рдЦрд╛рддрд╛ рдкрддрд╛ рдмрд╛рдЗрдирд░реА рдлреЙрд░реНрдо рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдЪреЗрдХрд╕рдо рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рдм рдмреЗрд╕ 64 рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

Ef+BVndbeTJeXWLnQtm5bDC2UVpc0vH2TF2ksZPAPwcODSkb

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

getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓реЗрдЧрд╛:

[ 3][t 2][1558746708.815218925][test-lite-client.cpp:631][!testnode]    requesting account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D
[ 3][t 2][1558746708.858564138][test-lite-client.cpp:652][!testnode]    got account state for -1:8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D with respect to blocks (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F and (-1,8000000000000000,72355):F566005749C1B97F18EDE013EBA7A054B9014961BC1AD91F475B9082919A2296:1BD5DE54333164025EE39D389ECE2E93DA2871DA616D488253953E52B50DC03F
account state is (account
  addr:(addr_std
    anycast:nothing workchain_id:-1 address:x8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D)
  storage_stat:(storage_info
    used:(storage_used
      cells:(var_uint len:1 value:3)
      bits:(var_uint len:2 value:539)
      public_cells:(var_uint len:0 value:0)) last_paid:0
    due_payment:nothing)
  storage:(account_storage last_trans_lt:74208000003
    balance:(currencies
      grams:(nanograms
        amount:(var_uint len:7 value:999928362430000))
      other:(extra_currencies
        dict:hme_empty))
    state:(account_active
      (
        split_depth:nothing
        special:nothing
        code:(just
          value:(raw@^Cell 
            x{}
             x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
            ))
        data:(just
          value:(raw@^Cell 
            x{}
             x{0000000D}
            ))
        library:hme_empty))))
x{CFF8156775B79325E5D62E742D9B96C30B6515A5CD2F1F64C5DA4B193C03F070E0D2068086C000000000000000451C90E00DC0E35B7DB5FB8C134_}
 x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

рд╣рдо рд╡рд╣ рд╕рдВрд░рдЪрдирд╛ рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд░реНрдХрдЪреЗрди рдХреЗ DHT рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд╖реЗрддреНрд░ рдореЗрдВ storage.balance рдЪрд╛рд▓реВ рдЦрд╛рддрд╛ рд╢реЗрд╖ рд╣реИ, рдореЗрдВ storage.state.code - рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЛрдб, рдФрд░ рдореЗрдВ storage.state.data - рдЗрд╕рдХрд╛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛. рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ TON рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ - рд╕реЗрд▓, рд╕реЗрд▓ - рдкреЗрдбрд╝ рдХреА рддрд░рд╣ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдФрд░ рдЪрд╛рдЗрд▓реНрдб рд╕реЗрд▓ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рдЖрдЗрдП рдЕрдм рдРрд╕реА рд╕рдВрд░рдЪрдирд╛ рд╕реНрд╡рдпрдВ рдмрдирд╛рдПрдВ (рдЗрд╕реЗ рдмреАрдУрд╕реА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ - рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдереИрд▓рд╛) рдкрд╛рдБрдЪрд╡реАрдВ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЖрдкрдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрд╡рдпрдВ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ crypto/block рд╕реНрд░реЛрдд рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ new-wallet.fif, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рдирдпрд╛ рд╡реЙрд▓реЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЖрдЗрдП рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ (~/liteclient-build, рдпрджрд┐ рдЖрдкрдиреЗ рдКрдкрд░ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рд╣реИ)ред рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдлрд┐рдлреНрдЯ рдкрд░ рдХреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рд╣реИред

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

./crypto/fift -I"<source-directory>/crypto/fift" new-wallet.fif

рдпрд╣рд╛рдВ <source-directory> рдЕрдирдкреИрдХреНрдб рд╕реНрд░реЛрддреЛрдВ рдХреЗ рдкрде рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, "~" рдкреНрд░рддреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣рд╛рдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреВрд░реНрдг рдкрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ -I рдЖрдк рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ FIFTPATH рдФрд░ рдЗрд╕ рдкрде рдХреЛ рдЗрд╕рдореЗрдВ рдбрд╛рд▓реЗрдВ.

рдЪреВрдБрдХрд┐ рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде Fift рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рд╣реИ new-wallet.fif, рдпрд╣ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд░реВрдк рд╕реЗ рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:

StateInit: x{34_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

new wallet address = -1 : 4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 
0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ
signing message: x{00000000}

External message for initialization is x{89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001_}
 x{FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED54}
 x{0000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B}

B5EE9C724104030100000000D60002CF89FEE120E20C7E953E31546F64C23CD654002C1AA919ADD24DB12DDF85C6F3B58AE41198A28AD8DAF3B9588E7A629252BA3DB88F030D00BC1016110B2073359EAC3C13823C53245B65D056F2C070B940CDA09789585935C7ABA4D2AD4BED139281CFA1200000001001020084FF0020DDA4F260810200D71820D70B1FED44D0D31FD3FFD15112BAF2A122F901541044F910F2A2F80001D31F3120D74A96D307D402FB00DED1A4C8CB1FCBFFC9ED5400480000000055375F730EDC2292E8CB15C42E8036EE9C25AA958EE002D2DE48A205E3A3426B6290698B
(Saved to file new-wallet-query.boc)

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдИрдбреА рд╡рд╛рд▓рд╛ рд╡реЙрд▓реЗрдЯ -1:4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2 (рдпрд╛, рд╡рд╣реА рдХреНрдпрд╛ рд╣реИ, 0f9PzVILj8yglrVn1zS-NSjtxr7QBfaTCp7JrBqnFPIR8nhZ) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛. рд╕рдВрдмрдВрдзрд┐рдд рдХреЛрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реЛрдЧрд╛ new-wallet-query.boc, рдЙрд╕рдХрд╛ рдкрддрд╛ рд╣реИ new-wallet.addr, рдФрд░ рдирд┐рдЬреА рдХреБрдВрдЬреА рдЕрдВрджрд░ рд╣реИ new-wallet.pk (рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдпреЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЬрд╛рдПрдВрдЧреА)ред

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

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

рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛

рд╣рдо рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЧреНрд░рд╛рдо рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ crypto/block рдлрд╝рд╛рдЗрд▓ рдвреВрдВрдвреЗ testgiver.fif:

// "testgiver.addr" file>B 256 B>u@ 
0x8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
dup constant wallet_addr ."Test giver address = " x. cr

0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
constant dest_addr

-1 constant wc
0x00000011 constant seqno

1000000000 constant Gram
{ Gram swap */ } : Gram*/

6.666 Gram*/ constant amount

// b x --> b'  ( serializes a Gram amount )
{ -1 { 1+ 2dup 8 * ufits } until
  rot over 4 u, -rot 8 * u, } : Gram, 

// create a message (NB: 01b00.., b = bounce)
<b b{010000100} s, wc 8 i, dest_addr 256 u, amount Gram, 0 9 64 32 + + 1+ 1+ u, "GIFT" $, b>
<b seqno 32 u, 1 8 u, swap ref, b>
dup ."enveloping message: " <s csr. cr
<b b{1000100} s, wc 8 i, wallet_addr 256 u, 0 Gram, b{00} s,
   swap <s s, b>
dup ."resulting external message: " <s csr. cr
2 boc+>B dup Bx. cr
"wallet-query.boc" B>file

рд╣рдо рдЗрд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рднреА рд╕рд╣реЗрдЬреЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд╣рдо рдкрд╛рдВрдЪрд╡реАрдВ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕рд╣реА рдХрд░реЗрдВрдЧреЗ - рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ "constant dest_addr". рдЖрдЗрдП рдЗрд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдмрдирд╛рдП рдЧрдП рд╡реЙрд▓реЗрдЯ рдХреЗ рдкрддреЗ рд╕реЗ рдмрджрд▓реЗрдВ (рдкреВрд░реНрдг, рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ)ред рд╢реБрд░реБрдЖрдд рдореЗрдВ "-1:" рд▓рд┐рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ "0x" рд▓рд┐рдЦреЗрдВред

рдЖрдк рд▓рд╛рдЗрди рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ 6.666 Gram*/ constant amount тАФ рдпрд╣ рдЧреНрд░рд╛рдо рдореЗрдВ рд╡рд╣ рдорд╛рддреНрд░рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ (20 рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ)ред рднрд▓реЗ рд╣реА рдЖрдк рдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рджрд╢рдорд▓рд╡ рдмрд┐рдВрджреБ рдЫреЛрдбрд╝ рджреЗрдВред

рдЕрдВрдд рдореЗрдВ, рдЖрдкрдХреЛ рд▓рд╛рдЗрди рдХреЛ рд╕рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ 0x00000011 constant seqno. рдпрд╣рд╛рдВ рдкрд╣рд▓рд╛ рдирдВрдмрд░ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬреЛ рдЧреНрд░рд╛рдо рдЬрд╛рд░реА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЦрд╛рддреЗ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдБ:

last
getaccount -1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

рд╕рдмрд╕реЗ рдЕрдВрдд рдореЗрдВ, рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдбреЗрдЯрд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛

...
x{FF0020DDA4F260D31F01ED44D0D31FD166BAF2A1F80001D307D4D1821804A817C80073FB0201FB00A4C8CB1FC9ED54}
 x{0000000D}

рд╕рдВрдЦреНрдпрд╛ 0000000D (рдЖрдкрдХреА рдмрдбрд╝реА рд╣реЛрдЧреА) рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП testgiver.fif.

рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдБ (./crypto/fift testgiver.fif). рдЖрдЙрдЯрдкреБрдЯ рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреА wallet-query.boc. рдЗрд╕реА рд╕реЗ рдмрдирддрд╛ рд╣реИ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЗ рд▓рд┐рдП - рдПрдХ рдЕрдиреБрд░реЛрдз "рдЗрддрдиреЗ рдЧреНрд░рд╛рдо рдХреЛ рдЕрдореБрдХ рдЦрд╛рддреЗ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред"

рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЗрд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

> sendfile wallet-query.boc
[ 1][t 1][1558747399.456575155][test-lite-client.cpp:577][!testnode]    sending query from file wallet-query.boc
[ 3][t 2][1558747399.500236034][test-lite-client.cpp:587][!query]   external message status is 1

рдпрджрд┐ рдЖрдк рдЕрднреА рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ last, рдФрд░ рдлрд┐рд░ рдЙрд╕ рдЦрд╛рддреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рд╣рдордиреЗ рдЧреНрд░рд╛рдо рдорд╛рдВрдЧрд╛ рдерд╛, рдлрд┐рд░ рд╣рдореЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕рдХреА рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕реЗ рдмрдврд╝ рдЧрдИ рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рд╣рдорд╛рд░реЗ рдЦрд╛рддреЗ рдореЗрдВ рдкреИрд╕рд╛ рднреЗрдЬрд╛ рд╣реИред

рдЕрдВрддрд┐рдо рдЪрд░рдг рд╢реЗрд╖ рд╣реИ - рд╣рдорд╛рд░реЗ рд╡реЙрд▓реЗрдЯ рдХрд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдЗрд╕рдХреА рд╢реЗрд╖ рд░рд╛рд╢рд┐ рдкрд╣рд▓реЗ рд╣реА рднрд░ рджреА рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рдХреЛрдб рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗ)ред рд╣рдо рдирд┐рднрд╛рддреЗ рд╣реИрдВ sendfile new-wallet-query.boc - рдФрд░ рдмрд╕, рдЖрдкрдХреЗ рдкрд╛рд╕ TON рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд╡реЙрд▓реЗрдЯ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реЛ)ред

рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рд▓реЗрдирджреЗрди рдмрдирд╛рдирд╛

рдмрдирд╛рдП рдЧрдП рдЕрдХрд╛рдЙрдВрдЯ рдХреЗ рдмреИрд▓реЗрдВрд╕ рд╕реЗ рдкреИрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╛рдЗрд▓ рд╣реЛрддреА рд╣реИ crypto/block/wallet.fif, рдЬрд┐рд╕реЗ рдЕрд╕реЗрдВрдмрд▓ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рднреА рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

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

рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░ (./crypto/fift wallet.fif) рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреЗ рд╡реЙрд▓реЗрдЯ рдХрд╛ рдкрддрд╛ (рдЬрд╣рд╛рдВ рд╕реЗ рдЖрдк рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВ) рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрд╕рдХреА рдирд┐рдЬреА рдХреБрдВрдЬреА рд▓реЗрдЧреА new-wallet.addr ╨╕ new-wallet.pk, рдФрд░ рдкреНрд░рд╛рдкреНрдд рд╕рдВрджреЗрд╢ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ new-wallet-query.boc.

рдкрд╣рд▓реЗ рдХреА рддрд░рд╣, рд╕реАрдзреЗ рд▓реЗрдирджреЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░реЗрдВ sendfile new-wallet-query.boc рдЧреНрд░рд╛рд╣рдХ рдореЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж рдмреНрд▓реЙрдХрдЪреЗрди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ (last) рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡реЙрд▓реЗрдЯ рдХрд╛ рдмреИрд▓реЗрдВрд╕ рдФрд░ рд╕реЗрдХрдиреЛ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ (getaccount <account_id>).

рд╕реНрдорд╛рд░реНрдЯ рдХреЙрдиреНрдЯреНрд░реИрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдУрдкрди рдиреЗрдЯрд╡рд░реНрдХ) рдФрд░ рдирдИ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛

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

рдХреЗрд╡рд▓ рдкрдВрдЬреАрдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реА рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдореЗрдВ рднрд╛рдЧ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдЗрди рдЗрди рдХрд░реЗрдВрдХреГрдкрдпрд╛ред

рдХреНрдпрд╛ рдЖрдк TON, TVM, Fift рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ?

  • рд╣рд╛рдВ, рдореИрдВ TON рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд▓реЛрдХрди рдХреЗ рд╕рд╛рде рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

  • рд╣рд╛рдВ, рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ

  • рд╣рд╛рдВ, рдореИрдВ TON рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ

  • рдирд╣реАрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ

39 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 12 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

TON рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреА рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ?

  • рдореБрдЭреЗ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдмрд╣реБрдд рдЙрдореНрдореАрджреЗрдВ рд╣реИрдВ

  • рдореИрдВ рдмрд╕ рд░реБрдЪрд┐ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

  • рдореИрдВ рд╕рд╢рдВрдХрд┐рдд рд╣реВрдВ рдФрд░ рдЗрд╕рдХреА рд╕рдлрд▓рддрд╛ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рддрд╛ рд╣реВрдВред

  • рдореИрдВ рдЗрд╕ рдкрд╣рд▓ рдХреЛ рд╡реНрдпрд╛рдкрдХ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдЕрд╕рдлрд▓ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдорд╛рдирдиреЗ рдХреЛ рдЗрдЪреНрдЫреБрдХ рд╣реВрдВ

47 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдорддрджрд╛рди рдХрд┐рдпрд╛ред 12 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд░рд╣реЗред

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

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