рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЧреНрд░рд╛рд╣рдХ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЦреБрд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ) рд░ рдирдпрд╛рдБ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

рддреНрдпрд╕рдмреЗрд▓рд╛рджреЗрдЦрд┐, рдХреЗрд╣реА рджрд┐рди рдЕрдШрд┐рд╕рдореНрдо TON рд╡рд┐рдХрд╛рд╕рдХреЛ рд╕реНрдерд┐рддрд┐рдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрдиреИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдорд╛рдЪрд╛рд░ рдЖрдПрдХреЛ рдЫреИрди (рдПрдХрдорд╛ рдЕрдиреМрдкрдЪрд╛рд░рд┐рдХ рдЪреНрдпрд╛рдирд▓рд╣рд░реВ) рдкреГрд╖реНрдардХреЛ рд▓рд┐рдЩреНрдХ рджреЗрдЦрд╛ рдкрд░реЗрди https://test.ton.org/download.html, рдХрд╣рд╛рдБ рдЕрд╡рд╕реНрдерд┐рдд рдЫрдиреН:
тЧж ton-test-liteclient-full.tar.xz - TON рдкрд░реАрдХреНрд╖рдг рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рд▓рд╛рдЧреА рдПрдХ рдкреНрд░рдХрд╛рд╢ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╕реНрд░реЛрдд;
тЧж ton-lite-client-test1.config.json тАФ рдкрд░реАрдХреНрд╖рдг рд╕рдЮреНрдЬрд╛рд▓ рдЬрдбрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓;
тЧж рдкрдвреНрдиреБрд╣реЛрд╕реН - рдЧреНрд░рд╛рд╣рдХ рдирд┐рд░реНрдорд╛рдг рд░ рд╕реБрд░реБрд╡рд╛рдд рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА;
тЧж рдХрд╕рд░реА - рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд░рдг-рджрд░-рдЪрд░рдг рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ;
тЧж ton.pdf тАФ TON рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрдирдХреЛ рд╕рд╛рде рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░рд┐рдПрдХреЛ рдХрд╛рдЧрдЬрд╛рдд (рдорд╛рд░реНрдЪ 2, 2019 рдорд┐рддрд┐);
тЧж tvm.pdf - TVM рдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдг (TON рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди, TON рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди);
тЧж tblkch.pdf - TON blockchain рдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╡рд┐рд╡рд░рдг;
тЧж fifthbase.pdf - рдирдпрд╛рдБ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛рдХреЛ рд╡рд┐рд╡рд░рдг, TON рдорд╛ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛред

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

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

рдкрд╣рд┐рд▓реЗ, рдПрдХ рдкрд░реАрдХреНрд╖рдг рдЧреНрд░рд╛рд╣рдХ рдирд┐рд░реНрдорд╛рдг рд░ рдЪрд▓рд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ - рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдкрдвреНрдиреБрд╣реЛрд╕реН рдпрд╕ рд╕рд░рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред рдо рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ macOS 10.14.5 рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрдиреЗрдЫреБ; рдо рдЕрдиреНрдп рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдирд┐рд░реНрдорд╛рдгрдХреЛ рд╕рдлрд▓рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╢реНрд╡рд╛рд╕рди рджрд┐рди рд╕рдХреНрджрд┐рдиред

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

  2. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдореЗрдХ, cmake (рд╕рдВрд╕реНрдХрд░рдг 3.0.2 рд╡рд╛ рдорд╛рдерд┐рдХреЛ рд╕рдВрд╕реНрдХрд░рдг), OpenSSL (C рд╣реЗрдбрд░ рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд╣рд┐рдд), g++ рд╡рд╛ clang рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред рдореИрд▓реЗ рдХреЗрд╣рд┐ рдкрдирд┐ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрдкрд░реНрджреИрди, рд╕рдмреИ рдХреБрд░рд╛ рддреБрд░реБрдиреНрддреИ рд╕рдБрдЧреИ рдЖрдпреЛред

  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

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

рднрд╛рд╖рд╛ рдкрд╛рдБрдЪ

рдХрд╛рдЧрдЬрд╛рддрдмрд╛рдЯ fifthbase.pdf рддрдкрд╛рдИрдВрд▓реЗ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЯреЛрд▓реАрд▓реЗ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдирдпрд╛рдБ рд╕реНрдЯреНрдпрд╛рдХ рднрд╛рд╖рд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХреЛ рдЫ рдкрд╛рдБрдЪ (рдЕрдВрдХрдмрд╛рдЯ рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдкрд╛рдБрдЪреМрдВ, Forth рдЬрд╕реНрддреИ, рдПрдХ рднрд╛рд╖рд╛ рдЬрд╕рд╕рдБрдЧ рдкрд╛рдБрдЪреМрдВрдорд╛ рдзреЗрд░реИ рд╕рдорд╛рдирддрд╛ рдЫ)ред

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

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

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

рдпрд╣рд╛рдБ рднрд╛рд╖рд╛рдХреЛ рд▓рдЧрднрдЧ рд╕рдореНрдкреВрд░реНрдг рдЖрдиреНрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред рдЕрд░реВ рд╕рдмреИ рдХреБрд░рд╛ (рдирд┐рдпрдиреНрддреНрд░рдг рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рд╕рд╣рд┐рдд) рд╢рдмреНрджрд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ (рдпрд╛ рдд рдЖрдиреНрддрд░рд┐рдХ, рдЬрд╕реНрддреИ рдЕрдВрдХрдЧрдгрд┐рдд рд╕рдЮреНрдЪрд╛рд▓рди рд░ рдирдпрд╛рдБ рд╢рдмреНрджрд╣рд░реВрдХреЛ рдкрд░рд┐рднрд╛рд╖рд╛; рд╡рд╛ "рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп" рдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред Fift.fif, рдЬреБрди рдлреЛрд▓реНрдбрд░рдорд╛ рдЫ crypto/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 рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд▓рд╛рдЧрд┐ рдпрд╣рд╛рдБ рдЕрд░реНрдХреЛ рдПрд╕реЗрдореНрдмрд▓реА рднрд╛рд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫ (рдо рдпрд╕рдорд╛ рд╡рд┐рд╕реНрддреГрдд рд░реВрдкрдорд╛ рдмрд╕реНрдиреЗ рдЫреИрди), рдЬрд╕рдХрд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдмреНрд▓рдХрдЪреЗрдирдорд╛ рд░рд╛рдЦрд┐рдиреЗрдЫред

рдпрд╕рд░реА, TVM рдХреЛ рд▓рд╛рдЧрд┐ рдПрд╕реЗрдореНрдмрд▓рд░ рдлрд┐рдлреНрдЯрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ - рдпрд╕ рдПрд╕реЗрдореНрдмрд▓рд░рдХрд╛ рд╕реНрд░реЛрддрд╣рд░реВ рдлрд╛рдЗрд▓рдорд╛ рдЫрдиреНред crypto/fift/Asm.fif рд░ рдХреЛрдбрдХреЛ рдорд╛рдерд┐рдХреЛ рдЯреБрдХреНрд░рд╛рдХреЛ рд╕реБрд░реБрдорд╛ рдЬрдбрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред

рдо рдХреЗ рднрдиреНрди рд╕рдХреНрдЫреБ, рд╕реНрдкрд╖реНрдЯ рд░реВрдкрдорд╛ рдирд┐рдХреЛрд▓рд╛рдИ рджреБрд░реЛрднрд▓реЗ рдирдпрд╛рдБ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдорди рдкрд░рд╛рдЙрдБрдЫрдиреН :)

рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ рд░ TON рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИ

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

TON рдорд╛ рдЦрд╛рддрд╛рд╣рд░реВ

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

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

-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d

рдпреЛ "рдХрдЪреНрдЪрд╛" рдврд╛рдБрдЪрд╛ рд╣реЛ: рдкрд╣рд┐рд▓реЗ workchain ID, рддреНрдпрд╕рдкрдЫрд┐ рдПрдЙрдЯрд╛ рдХреЛрд▓реЛрди, рд░ рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рдиреЛрдЯреЗрд╢рдирдорд╛ рдЦрд╛рддрд╛ IDред

рдердк рд░реВрдкрдорд╛, рддреНрдпрд╣рд╛рдБ рдЫреЛрдЯреЛ рдврд╛рдБрдЪрд╛ рдЫ - workchain рдирдореНрдмрд░ рд░ рдЦрд╛рддрд╛ рдареЗрдЧрд╛рдирд╛ рдмрд╛рдЗрдирд░реА рдлрд╛рд░рдордорд╛ рдЗрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд┐рдиреАрд╣рд░реВрдорд╛ рдПрдХ рдЪреЗрдХрд╕рдо рдердкрд┐рдПрдХреЛ рдЫ, рд░ рдпреЛ рд╕рдмреИ Base64 рдорд╛ рдЗрдиреНрдХреЛрдб рдЧрд░рд┐рдПрдХреЛ рдЫ:

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}

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

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

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

рдпрд╕ рдлрд╛рдЗрд▓рд▓рд╛рдИ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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

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

рд╣рд╛рдореАрд▓реЗ рдлрд╛рдЗрд▓ рдирд╛рдордХреЛ рд╕рд╛рде рдлрд┐рдлреНрдЯ рд╕реБрд░реВ рдЧрд░реЗрдХрд╛ рдЫреМрдВ 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 тАФ рдпреЛ рдЧреНрд░рд╛рдордорд╛ рднрдПрдХреЛ рд░рдХрдо рд╣реЛ рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рд░рд╣рдиреБрднрдПрдХреЛ рдЫ (реиреж рднрдиреНрджрд╛ рдмрдвреА рд╣реЛрдЗрди)ред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдкреВрд░реНрдг рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рджрд╢рдорд▓рд╡ рдмрд┐рдиреНрджреБ рдЫреЛрдбреНрдиреБрд╣реЛрд╕реНред

рдЕрдиреНрддрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рд▓рд╛рдЗрди рд╕рдЪреНрдпрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫ 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 рдЧреНрд░рд╛рд╣рдХ рдорд╛ред рдпрд╕ рдкрдЫрд┐, blockchain рдХреЛ рд╕реНрдерд┐рддрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН (last) рд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореНрд░реЛ рд╡рд╛рд▓реЗрдЯрдХреЛ рдмреНрдпрд╛рд▓реЗрдиреНрд╕ рд░ рд╕реЗрдХреНрдиреЛ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЫ (getaccount <account_id>).

рд╕реНрдорд╛рд░реНрдЯ рдЕрдиреБрдмрдВрдзрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЧреНрд░рд╛рд╣рдХ TON (рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЦреБрд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ) рд░ рдирдпрд╛рдБ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

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

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

  • рд╣реЛ, рдпреЛ рдлрд┐рдлреНрдЯ рднрд╛рд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдкрдвреНрди рд░реЛрдЪрдХ рдЫ

  • рд╣реЛ, рдо TON рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд░ рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдПрд╕реЗрдореНрдмрд▓рд░ рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрди рдЪрд╛рд╣рдиреНрдЫреБ

  • рд╣реЛрдЗрди, рдпреЛ рдХреБрдиреИ рдкрдирд┐ рд░реЛрдЪрдХ рдЫреИрди

39 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 12 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

TON рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордХреЛ рдпреЛрдЬрдирд╛ рдмрд╛рд░реЗ рддрдкрд╛рдЗрдБ рдХреЗ рд╕реЛрдЪреНрдиреБрд╣реБрдиреНрдЫ?

  • рдорд▓рд╛рдИ рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдмрд╛рдЯ рдзреЗрд░реИ рдЖрд╢рд╛ рдЫ

  • рдо рдЪрд╛рд╕реЛрдХрд╛ рд╕рд╛рде рдпрд╕рдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдБрджреИрдЫреБред

  • рдо рд╢рдВрдХрд╛рд╕реНрдкрдж рдЫреБ рд░ рдпрд╕рдХреЛ рд╕рдлрд▓рддрд╛рдорд╛ рд╢рдВрдХрд╛ рдЧрд░реНрдЫреБред

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

47 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 12 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди