ΠΡΠ΅Π΄ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΡΠ°Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π·Π° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡΡΠ° Π½Π° Telegram Π΄Π° ΠΏΡΡΠ½Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° Π΄Π΅ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΌΡΠ΅ΠΆΠ° ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠ°. Π’ΠΎΠ³Π°Π²Π° ΡΡΠ°Π½Π° Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΎΠ±Π΅ΠΌΠ΅Π½ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΊΠΎΠΉΡΠΎ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΡΡΠΎΠ² ΠΈ ΠΎΠΏΠΈΡΠ²Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π±ΡΠ΄Π΅ΡΠ°ΡΠ° ΠΌΡΠ΅ΠΆΠ°. ΠΠ° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π³ΠΎ ΠΏΡΠΎΠΏΡΡΠ½Π°Π»ΠΈ, ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ°Ρ ΠΌΠΎΡ ΠΏΡΠ΅ΡΠ°Π·ΠΊΠ°Π· Π½Π° ΡΠΎΠ·ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ (
ΠΡΡΠΎΠ³Π°Π²Π° Π½Π΅ Π΅ ΠΈΠΌΠ°Π»ΠΎ Π·Π½Π°ΡΠΈΠΌΠΈ Π½ΠΎΠ²ΠΈΠ½ΠΈ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° TON Π΄ΠΎ ΠΏΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π½ΠΈ (Π² Π΅Π΄ΠΈΠ½ ΠΎΡ
β¦
β¦
β¦
β¦
β¦
β¦
β¦
β¦
ΠΠΎΠ²ΡΠ°ΡΡΠΌ, Π½ΡΠΌΠ°ΡΠ΅ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ ΠΏΠΎΡΠ²ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ ΠΎΡ Telegram, Π½ΠΎ ΠΎΠ±Π΅ΠΌΡΡ Π½Π° ΡΠ΅Π·ΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΈ Π³ΠΈ ΠΏΡΠ°Π²ΠΈ Π΄ΠΎΡΡΠ° ΠΏΡΠ°Π²Π΄ΠΎΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π° ΡΠ²ΠΎΠΉ ΡΠΈΡΠΊ.
ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ
ΠΠ°ΡΠΎ Π½Π°ΡΠ°Π»ΠΎ, Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΊΠ»ΠΈΠ΅Π½Ρ - Π΄ΠΎΠ±ΡΠ΅,
-
ΠΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ ΠΈ ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅
ΠΈΠ·Ρ ΠΎΠ΄Π΅Π½ Π°ΡΡ ΠΈΠ² . ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π½Π΅ Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½Π° Π½Π° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ. -
Π£Π²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Π½Π°ΠΉ-Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° make, cmake (Π²Π΅ΡΡΠΈΡ 3.0.2 ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π°), OpenSSL (Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ C Π·Π°Π³Π»Π°Π²ΠΊΠΈ), g++ ΠΈΠ»ΠΈ clang, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ Π½Π° Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠ΅ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ Π½ΠΈΡΠΎ, Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π½Π°ΡΠ΅Π΄ΠΈ Π²Π΅Π΄Π½Π°Π³Π°.
-
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈΡΠ΅ ΡΠ° ΡΠ°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΏΠ°ΠΏΠΊΠ°
~/lite-client
. ΠΡΠ΄Π΅Π»Π½ΠΎ ΠΎΡ Π½Π΅Π³ΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ°Π·Π½Π° ΠΏΠ°ΠΏΠΊΠ° Π·Π° ΡΠ³Π»ΠΎΠ±Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ (Π½Π°ΠΏΡ.~/liteclient-build
), ΠΈ ΠΎΡ Π½Π΅Π³ΠΎ (cd ~/liteclient-build
) ΠΈΠ·Π²ΠΈΠΊΠ°ΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅:cmake ~/lite-client cmake --build . --target test-lite-client
ΠΠ° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π΅Π·ΠΈΠΊΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° Fift Π·Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ (ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρ), Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°ΠΌΠ΅cmake --build . --target fift
-
ΠΠ·ΡΠ΅Π³Π»ΡΠ½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠΈΡ
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π΅Π½ ΡΠ°ΠΉΠ» Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ Ρ ΡΠ΅ΡΡΠΎΠ²Π°ΡΠ° ΠΌΡΠ΅ΠΆΠ° ΠΈ Π΄Π° Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Ρ Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ. -
ΠΡΠ°ΠΉ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°:
./test-lite-client -C ton-lite-client-test1.config.json
ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠΎΠ³Π°Π²Π° ΡΡΡΠ±Π²Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ:
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠΌΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°Π»ΠΈΡΠ½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
β¦ 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
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΏΠΎ-ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ Π½Π΅ΡΠ° - Π½Π°ΡΡΠ΅ΡΠ΅ Π΅Π·ΠΈΠΊΠ° Π½Π° Fift, ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ Π΄Π° ΡΡΡΡΠ°Π²ΠΈΡΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΡΡΡΠ΅ΠΉΠ»), ΠΊΠ°ΡΠ΅ΡΠ΅ Π³ΠΎ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΠΈ ΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ Π΄Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΌΠ΅ΡΠΊΠΈ.
ΠΠ΅Ρ Π΅Π·ΠΈΠΊ
ΠΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡΡ Π΅ Π΄ΠΎΡΡΠ° ΠΎΠ±Π΅ΠΌΠ΅Π½, 87 ΡΡΡΠ°Π½ΠΈΡΠΈ, ΠΈ Π½ΡΠΌΠ° Π΄Π° ΠΏΡΠ΅ΡΠ°Π·ΠΊΠ°Π·Π²Π°ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ (ΠΏΠΎΠ½Π΅ Π·Π°ΡΠΎΡΠΎ Π°Π· ΡΠ°ΠΌΠΈΡΡ Π½Π΅ ΡΡΠΌ Π³ΠΎ ΠΏΡΠΎΡΠ΅Π» :). Π©Π΅ ΡΠ΅ ΡΠΏΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ Π΄Π°ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π·Π° ΠΊΠΎΠ΄ Π½Π° ΡΠΎΠ·ΠΈ Π΅Π·ΠΈΠΊ.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π½ΠΎ Π½ΠΈΠ²ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡΡ Π½Π° Fift Π΅ Π΄ΠΎΡΡΠ° ΠΏΡΠΎΡΡ: Π½Π΅Π³ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄ΡΠΌΠΈ, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΈΠ»ΠΈ Π½ΠΎΠ² ΡΠ΅Π΄ (ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ: Π½ΡΠΊΠΎΠΈ Π΄ΡΠΌΠΈ Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΠ΅Π» ΡΠ»Π΅Π΄ ΡΠ΅Π±Π΅ ΡΠΈ). ΠΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΠΌΠ°ΡΠ° Π΅ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π½Π° ΠΊΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΡΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ Π·Π½Π°ΡΠΈ, ΠΊΠΎΡΡΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° (Π³ΡΡΠ±ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΏΡΠ΅Π²ΠΎΠ΄Π°ΡΡΡ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΡΠ΅ΡΠ½Π΅ ΡΠ°Π·ΠΈ Π΄ΡΠΌΠ°). ΠΠΊΠΎ Π½ΡΠΌΠ° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡ Π½Π° Π΄ΡΠΌΠ°ΡΠ°, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΊΠ°ΡΠΎ ΡΠΈΡΠ»ΠΎ ΠΈ Π΄Π° Ρ ΠΏΠΎΡΡΠ°Π²ΠΈ Π² ΡΡΠ΅ΠΊΠ°. ΠΠ΅ΠΆΠ΄Ρ Π΄ΡΡΠ³ΠΎΡΠΎ, ΡΠΈΡΠ»Π°ΡΠ° ΡΡΠΊ - ΠΈΠ·Π²Π΅Π΄Π½ΡΠΆ - ΡΠ° 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
(Π Π΅Π΄ΡΡ β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 Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Fift - ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡΡ ΠΊΠΎΠ΄ Π·Π° ΡΠΎΠ·ΠΈ Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ Π΅ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° crypto/fift/Asm.fif
ΠΈ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠ³Π° Π΄Π° ΠΊΠ°ΠΆΠ°, ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ ΠΠΈΠΊΠΎΠ»Π°ΠΉ ΠΡΡΠΎΠ² ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΠΈΡΠ° Π΄Π° ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅π
Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ TON
ΠΠ° ΠΊΠ°ΠΆΠ΅ΠΌ, ΡΠ΅ ΡΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° TON ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Π½Π° Fift, ΠΊΠ°ΠΊΡΠΎ Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ
ΠΌΠ΅ Ρ Π΅Π·ΠΈΠΊΠ°. ΠΠ°ΠΊ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΡΠ΅Π³Π°? Π’ΠΎΠ²Π° Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΠ² ΡΠ°ΠΉΠ»Π°.
Π‘ΠΌΠ΅ΡΠΊΠΈ Π² TON
ΠΠ°ΠΊΡΠΎ ΠΎΠΏΠΈΡΠ°Ρ
Π²
Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΡΠ°Π±ΠΎΡΠ½Π° Π²Π΅ΡΠΈΠ³Π° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΠΊΠ°ΡΠ½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ account_id. ΠΠ° masterchain ΠΈ null workchain ΡΠ΅ ΡΠ° Π΄ΡΠ»Π³ΠΈ 256 Π±ΠΈΡΠ°. Π’Π°ΠΊΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠ°:
-1:8156775b79325e5d62e742d9b96c30b6515a5cd2f1f64c5da4b193c03f070e0d
Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ: ΠΏΡΡΠ²ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π² ΡΠ΅ΡΡΠ½Π°Π΄Π΅ΡΠ΅ΡΠΈΡΠ΅Π½ Π·Π°ΠΏΠΈΡ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΠΈΠΌΠ° ΡΡΠΊΡΠ°ΡΠ΅Π½ ΡΠΎΡΠΌΠ°Ρ - Π½ΠΎΠΌΠ΅ΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΈ Π°Π΄ΡΠ΅ΡΡΡ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Π² Π΄Π²ΠΎΠΈΡΠ½Π° ΡΠΎΡΠΌΠ°, ΠΊΡΠΌ ΡΡΡ ΡΠ΅ Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΡΠΌΠ° ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΎ Π² 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}
ΠΠΈΠΆΠ΄Π°ΠΌΠ΅ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π² DHT Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ½Π° Π²Π΅ΡΠΈΠ³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΏΠΎΠ»Π΅ΡΠΎ storage.balance
Π΅ ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΠ°Π»Π΄ΠΎ ΠΏΠΎ ΡΠΌΠ΅ΡΠΊΠ°ΡΠ°, Π² storage.state.code
Π΅ ΠΊΠΎΠ΄ΡΡ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, Π° Π² storage.state.data
- ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΠΌΡ Π΄Π°Π½Π½ΠΈ. ΠΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ TON - ΠΊΠ»Π΅ΡΠΊΠ°, ΠΊΠ»Π΅ΡΠΊΠΈ - Π΅ Π΄ΡΡΠ²ΠΎΠ²ΠΈΠ΄Π½ΠΎ, Π²ΡΡΠΊΠ° ΠΊΠ»Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΊΠ°ΠΊΡΠΎ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π΄ΡΡΠ΅ΡΠ½ΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΡΠΎ ΠΎΡΡΡΡΠΏ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅.
ΠΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠ°ΠΌΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΊΠ°Π²Π° ΡΡΡΡΠΊΡΡΡΠ° (Π½Π°ΡΠΈΡΠ° ΡΠ΅ BOC - ΡΠΎΡΠ±Π° Ρ ΠΊΠ»Π΅ΡΠΊΠΈ), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π·ΠΈΠΊΠ° Fift. ΠΠ° ΡΠ°ΡΡΠΈΠ΅, Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΠΌΠΈ Π΄Π° ΠΏΠΈΡΠ΅ΡΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ΅Π½ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ - Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° crypto/block
ΠΎΡ ΠΈΠ·Ρ
ΠΎΠ΄Π½ΠΈΡ Π°ΡΡ
ΠΈΠ² ΠΈΠΌΠ° ΡΠ°ΠΉΠ» new-wallet.fif
, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½ΠΎΠ² ΠΏΠΎΡΡΡΠ΅ΠΉΠ». ΠΠΎΠΏΠΈΡΠ°ΠΉΡΠ΅ Π³ΠΎ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Ρ Π°ΡΠ΅ΠΌΠ±Π»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ (~/liteclient-build
Π°ΠΊΠΎ ΡΡΠ΅ ΡΠ»Π΅Π΄Π²Π°Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈΡΠ΅ ΠΏΠΎ-Π³ΠΎΡΠ΅). ΠΠΎ-Π³ΠΎΡΠ΅ ΡΠΈΡΠΈΡΠ°Ρ
ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΡ ΠΊΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΊΠΎΠ΄ Π²ΡΠ² Fift.
ΠΠΈΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ», ΠΊΠ°ΠΊΡΠΎ ΡΠ»Π΅Π΄Π²Π°:
./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)
Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΏΠΎΡΡΡΠ΅ΠΉΠ»ΡΡ Ρ ID -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) ΠΈ Π½ΠΎΠΌΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠ΅ΠΉΠ» (ΡΠΎ Π΅ ΡΠ°Π²Π½ΠΎ Π½Π° 1 ΡΠ»Π΅Π΄ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΡΠ΅ΠΉΠ»Π° ΠΈ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Ρ 1 ΡΠ»Π΅Π΄ Π²ΡΡΠΊΠ° ΠΈΠ·Ρ
ΠΎΠ΄ΡΡΠ° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ - ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΎΡ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²Π°ΡΠΈΡ Π°ΠΊΠ°ΡΠ½Ρ). ΠΠ° ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΡΡΡΠ΅ΠΉΠ»Π° ΠΌΠΈ - 0x4fcd520b8fcca096b567d734be3528edc6bed005f6930a9ec9ac1aa714f211f2
.
ΠΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ (./crypto/fift wallet.fif
) ΡΠΊΡΠΈΠΏΡΡΡ ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π° Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠ΅ΠΉΠ» (ΠΎΡΠΊΡΠ΄Π΅ΡΠΎ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΡΡΠ΅) ΠΈ Π»ΠΈΡΠ½ΠΈΡ ΠΌΡ ΠΊΠ»ΡΡ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ new-wallet.addr
ΠΈ new-wallet.pk
ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π±ΡΠ΄Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π½Π° new-wallet-query.boc
.
ΠΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΈ, Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ°, Π½ΠΈΠ΅ ΡΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°ΠΌΠ΅ sendfile new-wallet-query.boc
Π² ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½Π° (last
) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ Π΄Π°Π»ΠΈ Π±Π°Π»Π°Π½ΡΡΡ ΠΈ seqno Π½Π° Π½Π°ΡΠΈΡ ΠΏΠΎΡΡΡΠ΅ΠΉΠ» ΡΠ° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠ»ΠΈ (getaccount <account_id>
).
Π’ΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΠ΅Π»ΠΈΠ³Π΅Π½ΡΠ½ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ Π² TON ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π·Π°ΡΠ²ΠΊΠΈ ΠΊΡΠΌ ΡΡΡ . ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²Π΅ΡΠ΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½Π°, Π·Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎ-ΠΏΡΠΈΡΡΠ΅Π»ΡΠΊΠΈ ΠΏΠΎΡΡΡΠ΅ΠΉΠ» Ρ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ (ΠΎΡΠ°ΠΊΠ²Π° ΡΠ΅ ΠΎΠ±Π°ΡΠ΅, ΡΠ΅ ΡΠ°ΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ΅ ΡΡΠ°Π½Π΅ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡΡΠ°).
Π Π°Π½ΠΊΠ΅ΡΠ°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΠ°ΡΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π»ΠΈ ΡΠ΅ ΠΎΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΡΠΈ ΡΡΠ°ΡΠΈΠΈ Ρ Π°Π½Π°Π»ΠΈΠ· Π½Π° TON, TVM, Fift?
-
ΠΠ°, ΡΠ°ΠΊΠ°ΠΌ Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΡΠ°ΡΠΈΠΈ Ρ ΠΎΠ±Ρ ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° TON
-
ΠΠ°, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π΅Π·ΠΈΠΊΠ° Fift
-
ΠΠ°, ΠΈΡΠΊΠ°ΠΌ Π΄Π° Π½Π°ΡΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π° TON ΠΈ Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π·Π° Π½Π΅Ρ
-
ΠΠ΅, Π½ΠΈΡΠΎ ΠΎΡ ΡΠΎΠ²Π° Π½Π΅ ΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°.
39 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ Π°. 12 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ Π°.
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΈΡΠ»ΠΈΡΠ΅ Π·Π° ΠΏΠ»Π°Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Telegram Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° TON?
-
ΠΡΠ·Π»Π°Π³Π°ΠΌ Π³ΠΎΠ»Π΅ΠΌΠΈ Π½Π°Π΄Π΅ΠΆΠ΄ΠΈ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ.
-
ΠΡΠΎΡΡΠΎ Π³ΠΎ ΡΠ»Π΅Π΄Ρ Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ.
-
Π‘ΠΊΠ΅ΠΏΡΠΈΡΠ΅Π½ ΡΡΠΌ, ΡΡΠΌΠ½ΡΠ²Π°ΠΌ ΡΠ΅ Π² ΡΡΠΏΠ΅Ρ Π° ΠΌΡ
-
Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ ΡΡΠΌ Π΄Π° ΡΠΌΡΡΠ°ΠΌ ΡΠ°Π·ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π° Π·Π° ΠΏΡΠΎΠ²Π°Π», Π½Π΅Π½ΡΠΆΠ΅Π½ Π·Π° ΡΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΌΠ°ΡΠΈ
47 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π³Π»Π°ΡΡΠ²Π°Ρ
Π°. 12 ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΡΠ΅ Π²ΡΠ·Π΄ΡΡΠΆΠ°Ρ
Π°.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com