ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π² TON
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ?
Π ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠ²Π°Ρ Π² ΠΏΡΡΠ²ΠΈΡ (ΠΎΡ Π΄Π²Π°) ΠΊΠΎΠ½ΠΊΡΡΡ Π½Π° Telegram Π·Π° Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½, Π½Π΅ Π·Π°Π΅Ρ ΠΏΡΠΈΠ·ΠΎΠ²ΠΎ ΠΌΡΡΡΠΎ ΠΈ ΡΠ΅ΡΠΈΡ Π΄Π° Π·Π°ΠΏΠΈΡΠ° ΠΎΠΏΠΈΡΠ° ΡΠΈ Π² ΡΡΠ°ΡΠΈΡ, Π·Π° Π΄Π° Π½Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π² Π·Π°Π±Π²Π΅Π½ΠΈΠ΅ ΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ, Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠ³ΠΎ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π΅ ΠΌΠΈ ΡΠ΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΈΡΠ° Π°Π±ΡΡΡΠ°ΠΊΡΠ΅Π½ ΠΊΠΎΠ΄, Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π½Π΅ΡΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠΎ, Π·Π° ΡΡΠ°ΡΠΈΡΡΠ° Π½Π°ΠΏΠΈΡΠ°Ρ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π·Π° ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½Π° Π»ΠΎΡΠ°ΡΠΈΡ ΠΈ ΡΠ°ΠΉΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ TON, Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°.
Π‘ΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π° Π·Π° ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π°Ρ ΡΠ²ΠΎΡ ΠΏΡΡΠ²ΠΈ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π² TON, Π½ΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΎΡ ΠΊΡΠ΄Π΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π°Ρ.
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½Π° Π»ΠΎΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° Π΄ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ Π½Π΅Π³ΠΎ ΠΈ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ° ΡΠ°ΠΉΡ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
ΠΠ° ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ°
ΠΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π° ΠΏΡΠ΅Π· ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ Telegram ΠΎΠ±ΡΠ²ΠΈ ΠΊΠΎΠ½ΠΊΡΡΡ ΠΏΠΎ Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½ Ρ Π½ΠΎΠ²ΠΈ Π΅Π·ΠΈΡΠΈ. Fift ΠΈ FunCΠ’ΡΡΠ±Π²Π°ΡΠ΅ Π½Π° ΠΈΠ·Π±ΠΎΡ Π΄Π° Π½Π°ΠΏΠΈΡΠ° Π½ΡΠΊΠΎΠΉ ΠΎΡ ΠΏΠ΅ΡΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. ΠΠΎΠΌΠΈΡΠ»ΠΈΡ
, ΡΠ΅ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ Ρ Π½Π΅ΡΠΎ Π½Π΅ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΎ, Π΄Π° ΠΈΠ·ΡΡΠ° Π΅Π·ΠΈΠΊΠ° ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ Π½Π΅ΡΠΎ, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π½Π΅ ΠΌΠΈ ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΏΠΈΡΠ° Π½Π΅ΡΠΎ Π΄ΡΡΠ³ΠΎ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΅ Π½Π° ΡΠ»ΡΡ
.
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΊΠ°ΠΆΠ°, ΡΠ΅ Π½ΡΠΌΠ°ΠΌ ΠΎΠΏΠΈΡ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈ.
ΠΠ»Π°Π½ΡΠ²Π°Ρ
Π΄Π° ΡΡΠ°ΡΡΠ²Π°ΠΌ Π΄ΠΎ ΡΠ°ΠΌΠΈΡ ΠΊΡΠ°ΠΉ, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΌΠΎΠ³Π°, ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ° ΠΏΡΠ΅Π³Π»Π΅Π΄Π½Π° ΡΡΠ°ΡΠΈΡ, Π½ΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈΡ
ΠΎΡΠ΅ Π½Π° ΠΏΡΡΠ²ΠΈΡ. ΠΠ· Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π½Π° FunC ΠΈ ΡΠΎΠΉ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅. ΠΠ·Π΅Ρ
Π·Π° ΠΎΡΠ½ΠΎΠ²Π° .
Π’ΠΎΠ³Π°Π²Π° ΡΡΠΈΡΠ°Ρ , ΡΠ΅ ΡΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ, Π·Π° Π΄Π° Π·Π°Π΅ΠΌΠ° ΠΏΠΎΠ½Π΅ Π½ΡΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠΈΠ·ΠΎΠ²ΠΎ ΠΌΡΡΡΠΎ. Π ΠΊΡΠ°Ρ Π½Π° ΠΊΡΠ°ΠΈΡΠ°ΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 40 ΠΎΡ 60 ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ ΡΡΠ°Π½Π°Ρ Π° Π½Π°Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΈ ΠΌΠ΅Π½ ΡΡΠ΅Π΄ ΡΡΡ Π½ΡΠΌΠ°ΡΠ΅. ΠΡΠΌΠ° Π½ΠΈΡΠΎ ΡΡΡΠ°ΡΠ½ΠΎ Π² ΡΠΎΠ²Π°, Π½ΠΎ ΠΌΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΠΈ Π΅Π΄Π½ΠΎ Π½Π΅ΡΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΠΎΠ±ΡΠ²ΠΈΡ Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅, ΡΠ΅ΡΠ΅Π½Π·ΠΈΡ Ρ ΡΠ΅ΡΡΠ° Π½Π° ΠΌΠΎΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π°, ΠΏΠΎΠΏΠΈΡΠ°Ρ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π² ΡΠ°ΡΠ° ΠΈΠΌΠ° Π»ΠΈ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠΉ, Π½Π° ΠΊΠΎΠ³ΠΎΡΠΎ ΠΌΡ Π»ΠΈΠΏΡΠ²Π°, Π½ΡΠΌΠ°ΡΠ΅.
Π―Π²Π½ΠΎ, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΎΠ±ΡΡΠ½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ° ΠΌΠΈ, Π΄Π²Π° Π΄Π½ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΡΠ΄ΠΈΠΈΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ Π° ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ ΠΈ ΡΠ°ΠΊΠ° ΠΈ Π½Π΅ ΡΠ°Π·Π±ΡΠ°Ρ Π΄Π°Π»ΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠ° ΠΏΡΠΎΠΏΡΡΠ½Π°Π»ΠΈ ΠΌΠΎΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΠ΅Π½ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ ΡΠ° ΡΠΌΠ΅ΡΠ½Π°Π»ΠΈ, ΡΠ΅ ΡΠΎΠΉ Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π»ΠΎΡ, ΡΠ΅ Π½Π΅ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ ΠΎΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°Ρ. ΠΠ°Π΄Π°Π΄ΠΎΡ Π²ΡΠΏΡΠΎΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΊΠΎΠΉ Π΅ ΠΎΡΠ΅Π½ΡΠ²Π°Π» β Π½Π΅ Π΅ ΡΠ°ΠΉΠ½Π°, Π½Π°ΠΏΠΈΡΠ°Ρ Π»ΠΈΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊΠ²ΠΈΡΠΎ ΡΡΠ΅ΡΠΎΡ Π·Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ.
ΠΠ΅ΡΠ΅ ΠΈΠ·ΡΠ°Π·Ρ ΠΎΠ΄Π²Π°Π½ΠΎ Π΄ΠΎΡΡΠ° Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ°ΡΠΈΡ. Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ, ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π΄Π° ΡΠ΅ ΡΠΏΠ΅ΡΡΠΈ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ.
ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ Π² TON
ΠΡΠ΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΡ ΠΊΠΎΡ ΡΡΡΠ°Π½Π° Π΄Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠΌ ΠΊΡΠΌ ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ. ΠΠ°ΡΠΎΠ²Π° ΡΠ΅Π³Π° ΡΠ΅ ΡΠ°Π·ΠΊΠ°ΠΆΠ° ΠΎΡ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ°ΡΡΠΈ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠΎ-ΡΠΎΡΠ½ΠΎ, ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ°ΡΡΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ, Π·Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΡΠ°Π±ΠΎΡΠ΅Ρ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ.
Π©Π΅ ΡΠ΅ ΡΡΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΠΌ Π²ΡΡΡ
Ρ Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ TON Virtual Machine (TVM), Fift ΠΈ FunC, Π·Π°ΡΠΎΠ²Π° ΡΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π½ΠΎΡΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. ΠΠ° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠ°Π±ΠΎΡΠΈ, ΡΡΠΊ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΡΠΏΠΈΡΠ°ΠΌΠ΅.
ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, Π·Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ TVM ΠΈ Π΅Π·ΠΈΠΊΠ° Fift , ΠΈΠΌΠ° Π΄ΠΎΠ±ΡΠ° ΠΎΡΠΈΡΠΈΠ°Π»Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°ΡΡΠΈΠ΅ΡΠΎ ΠΌΠΈ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ° ΠΈ ΡΠ΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΈΡΠ° ΡΠ΅ΠΊΡΡΠΈΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΡΠ°Ρ
ΠΊΡΠΌ Π½Π΅Ρ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π΅Π·ΠΈΠΊ, Π½Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΠΈΡΠ°Ρ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ β FunC. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½ΡΠΌΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° Π½Π΅Π³ΠΎ, Π·Π°ΡΠΎΠ²Π°, Π·Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½Π΅ΡΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ ΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈ ΡΠ°ΠΌΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° ΡΠ°ΠΌ, ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈ ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π΄Π²Π° ΠΊΠΎΠ½ΠΊΡΡΡΠ°. ΠΡΡΠ·ΠΊΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°.
ΠΠ° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠΌΠ΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Π½Π° FunC, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ΄Π° Π² Fift Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ.
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡΡ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΎΡΡΠ°Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½. ΠΠ° ΡΠ΅Π»ΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Fift, ΠΊΠΎΡΡΠΎ Π½Π° Π²Ρ
ΠΎΠ΄ ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΊΠΎΠ΄Π° Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΠΈ ΠΎΡΠ΅ Π½ΡΠΊΠΎΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π° Π½Π° ΠΈΠ·Ρ
ΠΎΠ΄Π° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ .boc (ΠΊΠΎΠ΅ΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π²Π° "bag of cells"), ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌ, Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈ Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°. ΠΠ° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ΅ Π½Π΅ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½, Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅.
ΠΠ° Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π² TON, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎΡΠΎ .boc ΡΠ°ΠΉΠ» ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π² Π±Π»ΠΎΠΊΡΠ΅ΠΉΠ½Π° ΡΡΠ΅Π· Π»Π΅ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ (Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ). ΠΠΎ ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅, Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° ΠΏΡΠ΅Ρ
Π²ΡΡΠ»ΠΈΠΌ Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡΡ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½. Π‘Π»Π΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Ρ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΉΠΊΠΈ ΠΌΡ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡΠ²ΡΠ½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π· Π»Π΅ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ) ΠΈΠ»ΠΈ ΠΎΡΠ²ΡΡΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅Π΄ΠΈΠ½ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π΄ΡΡΠ³ Π²ΡΡΡΠ΅ Π² TON).
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π·Π±ΡΠ°Ρ
ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΠΊΠΎΠ΄, Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π²Π° ΠΏΠΎ-Π»Π΅ΡΠ½ΠΎ. ΠΠΌΠ°ΠΌΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π° ΠΊΠ°ΠΊΠ²ΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΈ ΠΊΠ°ΠΊ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π°ΡΠ°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΡΡΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π²Π΅ΡΠ΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π² ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ°. Fift ΠΈ FunC Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
Π§Π΅ΡΡΠΎ ΡΡΡΡΠ΅Ρ ΠΏΠΎ ΠΊΠ»ΡΡΠΎΠ²ΠΈ Π΄ΡΠΌΠΈ Π² ΡΠ°ΡΠ° Π½Π° Telegram, ΠΊΡΠ΄Π΅ΡΠΎ Π±ΡΡ Π° ΡΡΠ±ΡΠ°Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΊΠΎΠ½ΠΊΡΡΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈ Π½Π° Telegram. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ ΡΡΠ±ΡΠ°Ρ Π° ΡΠ°ΠΌ ΠΈ Π·Π°ΠΏΠΎΡΠ½Π°Ρ Π° Π΄Π° ΠΎΠ±ΡΡΠΆΠ΄Π°Ρ Fift ΠΈ FunC. ΠΠΈΠ½ΠΊΡΡ Π΅ Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°.
ΠΡΠ΅ΠΌΠ΅ Π΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΡ ΡΠ΅ΠΎΡΠΈΡ ΠΊΡΠΌ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π½Π° ΡΡΠ΅Π΄Π° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ TON.
ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΠΈΡΡΠ°, Π½Π°ΠΏΡΠ°Π²ΠΈΡ Π½Π° MacOS ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ° Ubuntu 18.04 LTS Π½Π° Docker.
ΠΡΡΠ²ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅, Π΅ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΡΠ΅ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ lite-client, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² TON.
ΠΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΡΠ°ΠΉΡ ΠΎΠΏΠΈΡΠ²Π° Π΄ΠΎΡΡΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΈ ΡΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅, ΠΏΡΠΎΠΏΡΡΠΊΠ°ΠΉΠΊΠΈ Π½ΡΠΊΠΎΠΈ Π΄Π΅ΡΠ°ΠΉΠ»ΠΈ. Π‘Π»Π΅Π΄Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ°, ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ Π»ΠΈΠΏΡΠ²Π°ΡΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ
ΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° Ubuntu (Π½Π° MacOS ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
brew.).
apt -y install git
apt -y install wget
apt -y install cmake
apt -y install g++
apt -y install zlib1g-dev
apt -y install libssl-dev Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π²ΡΠΈΡΠΊΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ lite-client,, Fift, FunC.
ΠΡΡΠ²ΠΎ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΠΌΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° TON Π·Π°Π΅Π΄Π½ΠΎ Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅. ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠΌ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ~\/TON..
cd ~\/TON
git clone https:\/\/github.com\/ton-blockchain\/ton.git
cd .\/ton
git submodule update --init --recursiveΠ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΡΡΡΠΎ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅. Fift ΠΈ FunC.
Π‘Π΅Π³Π° ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠΎΠ΄ΡΡ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° ~\/TON\/ton.. Π ~\/TON. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠ° build ΠΈ ΡΡΠ±ΠΈΡΠ°ΠΌΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Π½Π΅Ρ.
mkdir ~\/TON\/build
cd ~\/TON\/build
cmake ..\/ton.Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π²ΡΠ·Π½Π°ΠΌΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΈΡΠ΅ΠΌ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, Π½Π΅ Π½ΠΈ ΡΡΡΠ±Π²Π° ΡΠ°ΠΌΠΎ lite-client,, Π½ΠΎ ΠΈ Fift Ρ FunC, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅ Π²ΡΠΈΡΠΊΠΎ. ΠΡΠΎΡΠ΅ΡΡΡ Π½Π΅ Π΅ Π±ΡΡΠ·, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΈΠ·ΡΠ°ΠΊΠ²Π°ΠΌΠ΅.
cmake --build . --target lite-client
cmake --build . --target fift
cmake --build . --target func.Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΠΉΡΠΎ ΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π½ΠΎΠ΄Π°, ΠΊΡΠΌ ΠΊΠΎΠΉΡΠΎ lite-client, ΡΠ΅ ΡΠ΅ ΡΠ²ΡΡΠ·Π²Π°.
wget https://test.ton.org/ton-lite-client-test1.config.jsonΠΡΠ°Π²ΠΈΠΌ ΠΏΡΡΠ²ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π² TON.
Π‘Π΅Π³Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ lite-client,.
cd ~/TON/build
./lite-client/lite-client -C ton-lite-client-test1.config.jsonΠΠΊΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π΅ ΡΡΠΏΠ΅ΡΠ½Π°, ΡΠ»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ Π²ΠΈΠ΄ΠΈΡΠ΅ Π»ΠΎΠ³ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° lite ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΊΡΠΌ Π½ΠΎΠ΄Π°.
[ 1][t 2][1582054822.963129282][lite-client.h:201][!testnode] conn ready
[ 2][t 2][1582054823.085654020][lite-client.cpp:277][!testnode] server version is 1.1, capabilities 7
[ 3][t 2][1582054823.085725069][lite-client.cpp:286][!testnode] server time is 1582054823 (delta 0)
...ΠΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°. help ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ.
helpΠΠ΅ΠΊΠ° ΠΈΠ·Π±ΡΠΎΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ.
ΡΠΏΠΈΡΡΠΊ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
last ΠΠ·Π΅ΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π±Π»ΠΎΠΊ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ ΠΎΡ ΡΡΡΠ²ΡΡΠ°
sendfile ΠΠ°ΡΠ΅Π΄Π΅ΡΠ΅ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ΅ΡΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ°
getaccount [<block-id-ext>] ΠΠ°ΡΠ΅ΠΆΠ΄Π° Π½Π°ΠΉ-ΡΠΊΠΎΡΠΎΡΠ½ΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΠΊΠ°Π·Π°Π½Π°ΡΠ° ΡΠΌΠ΅ΡΠΊΠ°ΡΠ°; Π΅ Π² formata [<workchain>:]<hex-or-base64-addr>
runmethod [<block-id-ext>] ... ΠΠ·ΠΏΡΠ»Π½ΡΠ²Π° GET ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΡΠΌΠ΅ΡΠΊΠ°ΡΠ° Ρ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈlast ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΡΠ·Π΄Π°Π΄Π΅Π½ Π±Π»ΠΎΠΊ ΠΎΡ ΡΡΡΠ²ΡΡΠ°.
sendfile ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΠ°ΠΉΠ» Ρ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² TON, ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΈ Π·Π°ΠΏΡΠΎΡΠΈΡΠ΅ ΠΊΡΠΌ Π½Π΅Π³ΠΎ.
getaccount Π·Π°ΡΠ΅ΠΆΠ΄Π° ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ ΡΠΊΠ°Π·Π°Π½ΠΎΡΠΎ Π°Π΄ΡΠ΅Ρ.
runmethod [<block-id-ext>] ΡΡΠ°ΡΡΠΈΡΠ° get-ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. Π‘Π΅Π³Π° ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
ΠΠ΄Π΅Ρ
ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΈΡΠ΅ΠΌ, Π΅ Π»ΠΎΡΠ°ΡΠΈΡ.
Π ΡΠΎΠ²Π° Π½Π΅ Π΅ Π»ΠΎΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΡΠΏΠΈΡΠ΅ Π±ΠΈΠ»Π΅Ρ ΠΈ Π΄Π° ΡΠ°ΠΊΠ°ΡΠ΅ ΡΠ°Ρ, Π΄Π΅Π½ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠ΅Ρ, Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½Π°, Π² ΠΊΠΎΡΡΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π° Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° N Π³ΡΠ°ΠΌΠΎΠ², ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎ 2 * N Π³ΡΠ°ΠΌΠΎΠ² ΠΈΠ»ΠΈ Π³ΡΠ±ΠΈ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΠ±Π΅Π΄Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠΊΠΎΠ»ΠΎ 40%. ΠΠΊΠΎ Π³ΡΠ°ΠΌΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠ»Π°ΡΠ°Π½Π΅ Π½Π΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ, ΡΠ΅ ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΡΠ° Π·Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅.
ΠΠ°ΠΆΠ½ΠΎΡΠΎ Π΅, ΡΠ΅ Π·Π°Π»ΠΎΠ·ΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π²ΠΈΠΆΠ΄Π°Ρ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ ΠΏΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡΠΈΠ½, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ Π΄Π°Π»ΠΈ Π΅ ΡΠΏΠ΅ΡΠ΅Π»ΠΈΠ» ΠΈΠ»ΠΈ Π·Π°Π³ΡΠ±ΠΈΠ». ΠΠ°ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ΅Π±ΡΠ°ΠΉΡ, ΠΊΠΎΠΉΡΠΎ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π·Π°Π»ΠΎΠ·ΠΈΡΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡ TON.
ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ
ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π° Π·Π° FunC, ΠΏΠ»ΡΠ³ΠΈΠ½ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ΅ΡΠΈ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Π² ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° Visual Studio Code; Π°ΠΊΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ, ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΠΏΠ»ΡΠ³ΠΈΠ½Π° Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΏΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠΉ Π΄ΡΡΠ³ Π±Π΅ΡΠ΅ ΡΡΠ·Π΄Π°Π» ΠΏΠ»ΡΠ³ΠΈΠ½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Fift, ΡΠΎΠΉ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ Π²ΡΠ² VSC.
ΠΠ΅ΠΊΠ° Π²Π΅Π΄Π½Π°Π³Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΠΊΠΎΠΌΠΈΡΠΈΠΌ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
ΠΠ° Π΄Π° ΡΠΈ ΡΠ»Π΅ΡΠ½ΠΈΠΌ ΠΆΠΈΠ²ΠΎΡΠ°, ΡΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ ΡΠ΅ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ ΡΡΠ°Π½Π΅ Π³ΠΎΡΠΎΠ². Π‘Π°ΠΌΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π³ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ Π² TON.
Π‘ΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ ΠΈΠΌΠ° Π΄Π²Π° Π²ΡΠ½ΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, Π΄ΠΎ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏ. ΠΡΡΠ²ΠΈΡΡ, recv_external() ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ, ΡΠΎΠ΅ΡΡ Π½Π΅ ΠΎΡ TON, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°ΠΌΠΈ ΡΠΎΡΠΌΡΠ»ΠΈΡΠ°ΠΌΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΡΠ΅Π· lite-client. ΠΡΠΎΡΠΈΡΡ, recv_internal() ΡΠΎΠ²Π° Π΅, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΡΡΠ΅ Π² ΡΠ°ΠΌΠΈΡ TON Π½ΡΠΊΠ°ΠΊΡΠ² ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΠ΅ ΠΎΠ±ΡΡΡΠ° ΠΊΡΠΌ Π½Π°ΡΠΈΡ. Π Π² Π΄Π²Π°ΡΠ° ΡΠ»ΡΡΠ°Ρ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°.
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π°ΠΊΠΎ Π³ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅, Π½ΠΎ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΎΡΡ Π² Π½Π΅Π³ΠΎ.
() recv_internal(slice in_msg) impure {
;; TODO: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
}
() recv_external(slice in_msg) impure {
;; TODO: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
}Π’ΡΠΊ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠΎΡΠ½ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ slice. ΠΡΠΈΡΠΊΠΈ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² TON Blockchain ΡΠ° ΠΊΠΎΠ»Π΅ΠΊΡΠΈΡ TVM cell ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ cell, Π² ΡΠ°ΠΊΠ°Π²Π° ΠΊΠ»Π΅ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ Π΄ΠΎ 1023 Π±ΠΈΡΠ° Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΠΎ 4 Π»ΠΈΠ½ΠΊΠ° ΠΊΡΠΌ Π΄ΡΡΠ³ΠΈ ΠΊΠ»Π΅ΡΠΊΠΈ.
TVM cell slice ΠΈΠ»ΠΈ slice Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° cell ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅ Π·Π° Π½Π΅ΠΉΠ½ΠΎΡΠΎ ΠΏΠ°ΡΡΠ²Π°Π½Π΅, ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ ΡΡΠ°Π½Π΅ ΡΡΠ½ΠΎ. ΠΠ°ΠΉ-Π²Π°ΠΆΠ½ΠΎΡΠΎ Π·Π° Π½Π°Ρ Π΅, ΡΠ΅ Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ slice ΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅ Π² recv_external() ΠΈΠ»ΠΈ recv_internal().
impure β ΠΊΠ»ΡΡΠΎΠ²Π° Π΄ΡΠΌΠ°, ΠΊΠΎΡΡΠΎ ΡΠΊΠ°Π·Π²Π°, ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠ°Π·ΠΈΠΌ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π² lottery-code.fc ΠΈ Π΄Π° Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅.
~\/TON\/build\/crypto\/func -APSR -o lottery-compiled.fif ~\/TON\/ton\/crypto\/smartcont\/stdlib.fc .\/lottery-code.fc Π‘ΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΡΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
~\/TON\/build\/crypto\/func -helpΠΠΎΠ»ΡΡΠΈΡ
ΠΌΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Fift-Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΊΠΎΠ΄ Π² lottery-compiled.fif:
// lottery-compiled.fif
"Asm.fif" include
// automatically generated from `/Users/rajymbekkapisev/TON/ton/crypto/smartcont/stdlib.fc` `./lottery-code.fc`
PROGRAM{
DECLPROC recv_internal
DECLPROC recv_external
recv_internal PROC:<{
// in_msg
DROP //
}>
recv_external PROC:<{
// in_msg
DROP //
}>
}END>cΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π·Π° ΡΠΎΠ²Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΠΌ ΡΡΠ΅Π΄Π°ΡΠ°.
ΠΠ°Π±Π΅Π»ΡΠ·Π²Π°ΠΌΠ΅, ΡΠ΅ Π² ΠΏΡΡΠ²ΠΈΡ ΡΠ΅Π΄ ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π° Asm.fif, ΡΠΎΠ²Π° Π΅ ΠΊΠΎΠ΄ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Fift Π·Π° Fift-Π°ΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π»ΠΎΠΊΠ°Π»Π½ΠΎ, ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΉΠ» lottery-test-suite.fif ΠΈ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄, Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄, ΠΊΠΎΠΉΡΠΎ Π·Π°ΠΏΠΈΡΠ²Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° code, Π·Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΈΠ½Π°:
"TonUtil.fif" include
"Asm.fif" include
PROGRAM{
DECLPROC recv_internal
DECLPROC recv_external
recv_internal PROC:<{
\/\/ in_msg
DROP \/\/
}>
recv_external PROC:<{
\/\/ in_msg
DROP \/\/
}>
}END>s constant code
ΠΠ°ΡΠ΅Π³Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΡΠ½ΠΎ, ΡΠ΅Π³Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΡΡΠΈΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° TVM.
0 tuple 0x076ef1ea , \/\/ magic
0 , 0 , \/\/ actions msg_sents
1570998536 , \/\/ unix_time
1 , 1 , 3 , \/\/ block_lt, trans_lt, rand_seed
0 tuple 100000000000000 , dictnew , , \/\/ remaining balance
0 , dictnew , \/\/ contract_address, global_config
1 tuple \/\/ wrap to another tuple
constant c7
0 constant recv_internal \/\/ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈ recv_internal()
-1 constant recv_external \/\/ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ° recv_external()Π c7 Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, ΡΠΎΠ΅ΡΡ Π΄Π°Π½Π½ΠΈΡΠ΅, Ρ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° TVM (ΠΈΠ»ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΡΠ΅ΠΆΠ°ΡΠ°). ΠΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΡΠ° Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π° ΠΊΠ°ΠΊ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° c7 ΠΈ Π³ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Ρ
. Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ rand_seed ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΎΡ Π½Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΈΡΠ»ΠΎ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ΠΎ, Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΡΠ΅ ΡΠ΅ Π²ΡΡΡΠ° ΡΡΡΠΎΡΠΎ ΡΠΈΡΠ»ΠΎ.
recv_internal ΠΈ recv_external ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈΡΠ΅ ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ 0 ΠΈ -1 ΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
Π‘Π΅Π³Π° ΡΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΡΠ²ΠΈΡ ΡΠ΅ΡΡ Π·Π° Π½Π°ΡΠΈΡ ΠΏΡΡΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ. ΠΠ° ΠΏΠΎ-ΡΡΠ½ΠΎ, ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ Π² ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ». lottery-test-suite.fif.
ΠΠ΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° storage ΠΈ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² Π½Π΅Ρ ΠΏΡΡΡ cell, ΡΠΎΠ²Π° ΡΠ΅ Π±ΡΠ΄Π΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
message ΡΠΎΠ²Π° Π΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ. Π Π½Π΅Π³ΠΎ ΡΡΡΠΎ ΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΠΌ Π·Π° ΡΠ΅Π³Π° ΠΏΡΡΡΠΎ.
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅
<b b> Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ !
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
<b b> ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ! Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈΡ
ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅, ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ TVM Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° runvmctx ΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° Π²Ρ
ΠΎΠ΄Π°.
message @
recv_external
code
storage @
c7
runvmctx Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° Fift.
Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄.
export FIFTPATH=~\/TON\/ton\/crypto\/fift\/lib \/\/ ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ Π²Π΅Π΄Π½ΡΠΆ Π·Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ
~\/TON\/build\/crypto\/fift -s lottery-test-suite.fif ΠΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π±Π΅Π· Π³ΡΠ΅ΡΠΊΠΈ ΠΈ Π² ΠΈΠ·Ρ ΠΎΠ΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π»ΠΎΠ³ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ:
execute SETCP 0
execute DICTPUSHCONST 19 (xC_,1)
execute DICTIGETJMPZ
execute DROP
execute implicit RET
[ 3][t 0][1582281699.325381279][vm.cpp:479] ΡΡΡΠΏΠΊΠΈ: 5 Π³Π°Π·: ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ=304, ΠΌΠ°ΠΊΡ=9223372036854775807, Π»ΠΈΠΌΠΈΡ=9223372036854775807, ΠΊΡΠ΅Π΄ΠΈΡ=0ΠΡΠ»ΠΈΡΠ½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ. ΠΡΡΠ²ΠΎ ΡΠ΅ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ Ρ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΈΠ΄Π²Π°Ρ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ Π² recv_external()
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡΡ ΡΠ°ΠΌ ΠΈΠ·Π±ΠΈΡΠ° ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅.
ΠΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ,
- Π½Π° ΠΏΡΡΠ²ΠΎ ΠΌΡΡΡΠΎ, ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° Π·Π°ΡΠΈΡΠΈΠΌ Π½Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΠ°ΠΊΠ°, ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΡΡ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π½Π΅Π³ΠΎ.
- Π½Π° Π²ΡΠΎΡΠΎ ΠΌΡΡΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² TON, ΠΈΡΠΊΠ°ΠΌΠ΅ ΡΠΎ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠΎΡΠ½ΠΎ Π²Π΅Π΄Π½ΡΠΆ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΠΈΠ·ΠΏΡΠ°ΡΠΊΠ° Π½Π° ΡΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ Π΄Π° Π³ΠΎ ΠΎΡΡ Π²ΡΡΠ»ΠΈ.
ΠΠ°ΡΠΎΠ²Π° ΠΏΠΎΡΡΠΈ Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΡΠ΅ ΡΠ΅ΡΠ°Π²Π°Ρ ΡΠ΅Π·ΠΈ Π΄Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠ½ΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π° Π½ΠΈΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ³ΡΠΈΠΆΠΈΠΌ Π·Π° ΡΠΎΠ²Π°.
Π©Π΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π² ΠΎΠ±ΡΠ°ΡΠ΅Π½ ΡΠ΅Π΄. ΠΡΡΠ²ΠΎ ΡΠ΅ ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ΡΠΎ, Π°ΠΊΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ Π²Π΅ΡΠ΅ Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΠ°ΠΊΠΎΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π³ΠΎ Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈΠ», ΡΠΎ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΎ Π²ΡΠΎΡΠΈ ΠΏΡΡ. Π ΠΏΠΎΡΠ»Π΅ ΡΠ΅ ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ°ΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΡΡΠ³ Π»ΠΈΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
ΠΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π©Π΅ Π΄Π΅ΠΉΡΡΠ²Π°ΠΌΠ΅ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½. Π ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π±ΡΠΎΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π½Π°ΡΠ°Π»Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡ 0. ΠΡΠΈ Π²ΡΡΠΊΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ Π½Π° Π±ΡΠΎΡΡΠ°. ΠΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π±ΡΠΎΡΡΠ° Π² ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΡΡΠ²ΠΏΠ°Π΄Π° ΡΡΡ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΡΠΎ Π½Π΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅, Π° Π°ΠΊΠΎ ΡΡΠ²ΠΏΠ°Π΄Π°, Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°ΠΌΠ΅ Π±ΡΠΎΡΡΠ° Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ 1.
ΠΡΡΡΠ°ΠΌΠ΅ ΡΠ΅ Π² lottery-test-suite.fif ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ Π²ΡΠΎΡΠΎΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π©Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π΅Π½ Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΠ΄ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠ° Π² Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π΄Π° Π±ΡΠ΄Π΅ ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΎ 166, Π° Π½ΠΈΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ 165.
<b 166 32 u, b> ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ !
<b 165 32 u, b> ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ !
ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ @
recv_external
ΠΊΠΎΠ΄
sΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ @
c7
runvmctx
drop
exit_code !
."ΠΠΎΠ΄ Π½Π° ΠΈΠ·Ρ
ΠΎΠ΄ " exit_code @ . cr
exit_code @ 33 - abort"Π’Π΅ΡΡ #2 ΠΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°ΡΠ°"Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅.
~\/TON\/build\/crypto\/fift -s lottery-test-suite.fif Π ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ, ΡΠ΅ ΡΠ΅ΡΡΡΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Ρ Π³ΡΠ΅ΡΠΊΠ°.
[ 1][t 0][1582283084.210902214][words.cpp:3046] lottery-test-suite.fif:67: abort": Π’Π΅ΡΡ #2 Π½Π΅ Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»
[ 1][t 0][1582283084.210941076][fift-main.cpp:196] ΠΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»Π° `lottery-test-suite.fif`: Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΠΉΠ» `lottery-test-suite.fif` : lottery-test-suite.fif:67: abort": Π’Π΅ΡΡ #2 Π½Π΅ Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π»ΠΠ° ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ lottery-test-suite.fif ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°ΡΠΎ .
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π±ΡΠΎΡΡΠ° Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π² lottery-code.fc.
() recv_internal(slice in_msg) impure {
;; TODO: ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ
}
() recv_external(slice in_msg) impure {
if (slice_empty?(in_msg)) {
return ();
}
int msg_seqno = in_msg~load_uint(32);
var ds = begin_parse(get_data());
int stored_seqno = ds~load_uint(32);
throw_unless(33, msg_seqno == stored_seqno);
}Π slice in_msg ΡΡΠ΄ΡΡΠΆΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅.
ΠΡΡΠ²ΠΎΡΠΎ Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ, Π΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΄Π°Π»ΠΈ Π² ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠΌΠ° Π΄Π°Π½Π½ΠΈ, Π°ΠΊΠΎ Π½ΡΠΌΠ°, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·Π»ΠΈΠ·Π°ΠΌΠ΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. in_msg~load_uint(32) Π·Π°ΡΠ΅ΠΆΠ΄Π° ΡΠΈΡΠ»ΠΎΡΠΎ 165, 32-Π±ΠΈΡΠΎΠ²ΠΎ unsigned int ΠΎΡ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ 32 Π±ΠΈΡΠ° ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ Π·Π°ΡΠ΅Π΄Π΅Π½ΠΎΡΠΎ ΡΠΈΡΠ»ΠΎ ΡΡΠ²ΠΏΠ°Π΄Π° Ρ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΎΡΠΎ, Π°ΠΊΠΎ Π½Π΅, ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ Π½Π΅ΡΡΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Π‘Π΅Π³Π° ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅.
~\/TON\/build\/crypto\/func -APSR -o lottery-compiled.fif ~\/TON\/ton\/crypto\/smartcont\/stdlib.fc .\/lottery-code.fc ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΊΠΎΠ΄ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π² lottery-test-suite.fif, Π½Π΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΠΊΠΈ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄.
ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΡΠ΅ΡΡΡΡ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°:
~\/TON\/build\/crypto\/fift -s lottery-test-suite.fifΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΈΡ Ρ Π°ΠΊΡΡΠ°Π»Π½ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ.
ΠΠ°Π±Π΅Π»ΡΠ·Π²Π°ΠΌΠ΅, ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π² ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π΅ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΠΎ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠΊΡΠΈΠΏΡ, ΠΊΠΎΠΉΡΠΎ Π΄Π° Π·Π°ΠΏΠΈΡΠ²Π° ΠΊΠΎΠ΄Π° Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ Π½Π°Ρ, Π° Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄ Π² Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° "include".
Π ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΉΠ» build.sh ΡΡΡ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅.
#!/bin/bash
~/TON/build/crypto/func -SPA -R -o lottery-compiled.fif ~/TON/ton/crypto/smartcont/stdlib.fc ./lottery-code.fcΠ©Π΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ.
chmod +x .\/build.shΠ‘Π΅Π³Π° ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΈΡ ΡΠΊΡΠΈΠΏΡ, Π·Π° Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°ΠΌΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. ΠΠΎ ΠΎΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°. codeΠΠ°ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π½ΠΎΠ² ΡΠ°ΠΉΠ». lotter-compiled-for-test.fif, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΠΌ Π²ΡΠ² ΡΠ°ΠΉΠ»Π°. lottery-test-suite.fif.
ΠΠΎΠ±Π°Π²ΡΠΌΠ΅ Π² sh ΡΠΊΡΠΈΠΏΡΠ° ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ Π΄ΡΠ±Π»ΠΈΡΠ° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ» Π² lotter-compiled-for-test.fif ΠΈ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π² Π½Π΅Π³ΠΎ.
# copy and change for test
cp lottery-compiled.fif lottery-compiled-for-test.fif
sed '$d' lottery-compiled-for-test.fif > test.fif
rm lottery-compiled-for-test.fif
mv test.fif lottery-compiled-for-test.fif
echo -n "}END>s constant code" >> lottery-compiled-for-test.fifΠ‘Π΅Π³Π°, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡ ΠΈ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΠΉΠ»Π° lottery-compiled-for-test.fif, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΠΌ Π² Π½Π°ΡΠΈΡ lottery-test-suite.fif
Π lottery-test-suite.fif ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ΅Π΄Π° "lottery-compiled-for-test.fif" include.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, Π·Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΠΌΠΈΠ½Π°Π²Π°Ρ.
~\/TON\/build\/crypto\/fift -s lottery-test-suite.fifΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅Π³Π°, Π·Π° Π΄Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΠΉΠ» test.sh, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° build.sh, Π° ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅.
touch test.sh
chmod +x test.shΠΡΡΡΠ΅ ΠΏΠΈΡΠ΅ΠΌ
.\/build.sh
echo "nΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° Π·Π°Π²ΡΡΡΠ΅Π½Π°n"
export FIFTPATH=~\/TON\/ton\/crypto\/fift\/lib
~\/TON\/build\/crypto\/fift -s lottery-test-suite.fifΠ©Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ test.sh ΠΈ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅, Π·Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΠΌ Π² ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅.
chmod +x .\/test.sh
.\/test.shΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ.
ΠΡΠ»ΠΈΡΠ½ΠΎ, ΡΠ΅Π³Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ test.sh Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅. ΠΡΠΎ Π²ΡΡΠ·ΠΊΠ°ΡΠ° ΠΊΡΠΌ .
ΠΠΊ, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ, Π½Π΅ΠΊΠ° Π·Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠ΅ Π½Π΅ΡΠΎ.
Π©Π΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΠΏΠΊΠ° build ΠΊΡΠ΄Π΅ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΊΠ»ΠΎΠ½, Π·Π°ΠΏΠΈΡΠ°Π½ Π² ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°. lottery-compiled.fif, lottery-compiled-for-test.fifΠ‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΠΏΠΊΠ° test ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ ΡΠ΅ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΡΠ°ΠΉΠ»ΡΡ Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ lottery-test-suite.fif ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. .
ΠΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
Π‘Π»Π΅Π΄Π²Π° ΡΠ΅ΡΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΈ Π±ΡΠΎΡΡΡΡ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎΡΠΎ ΡΠΈΡΠ»ΠΎ. ΠΠΎ ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΏΠΎΠΌΠΈΡΠ»ΠΈΠΌ Π·Π° ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
Π©Π΅ ΠΎΠΏΠΈΡΠ° Π²ΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°ΠΌΠ΅.
`seqno` 32-Π±ΠΈΡΠΎΠ²o ΡΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ - Π±ΡΠΎΡΡ.
`pubkey` 256-Π±ΠΈΡΠΎ ΡΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ - ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΊΠ»ΡΡ, Ρ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° Π½Π° Π²Ρ
ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, Π·Π° ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.
`order_seqno` 32-Π±ΠΈΡΠΎΠ²o ΡΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π±ΡΠΎΡ Π½Π° ΡΡΠ°Π²ΠΊΠΈΡΠ΅.
`number_of_wins` 32-Π±ΠΈΡΠΎΠ²o ΡΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡ
ΡΠ°Π½ΡΠ²Π° Π±ΡΠΎΡ Π½Π° ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅.
`incoming_amount` ΡΠΈΠΏ Π΄Π°Π½Π½ΠΈ Gram (ΠΏΡΡΠ²ΠΈΡΠ΅ 4 Π±ΠΈΡΠ° ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° Π΄ΡΠ»ΠΆΠΈΠ½Π°ΡΠ°), ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΎΠ±ΡΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΠΌΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
`outgoing_amount` ΠΎΠ±ΡΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΠΌΠΎΠ²Π΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΎ Π½Π° ΠΏΠΎΠ±Π΅Π΄ΠΈΡΠ΅Π»ΠΈΡΠ΅.
`owner_wc` Π½ΠΎΠΌΠ΅Ρ Π½Π° ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π°, 32-Π±ΠΈΡΠΎΠ²o (Π½Π° Π½ΡΠΊΠΎΠΈ ΠΌΠ΅ΡΡΠ° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π°, ΡΠ΅ Π΅ 8-Π±ΠΈΡΠΎΠ²o) ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π΄Π²Π΅ -1 ΠΈ 0.
`owner_account_id` 256-Π±ΠΈΡΠΎΠ²o ΡΡΠ»ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π°Π΄ΡΠ΅Ρ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ½Π° Π²Π΅ΡΠΈΠ³Π°.
`orders` ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° ΠΎΡ ΡΠΈΠΏ ΡΠ΅ΡΠ½ΠΈΠΊ, ΡΡΡ
ΡΠ°Π½ΡΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π²Π°Π΄Π΅ΡΠ΅Ρ ΡΡΠ°Π²ΠΊΠΈ. Π‘Π»Π΅Π΄Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΡΠ²Π°ΡΠ° Π΄Π° Π½Π°ΡΠ΅ΡΠ΅ΠΌ pack_state(), ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠΎ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. ΠΡΠΎΡΠ°ΡΠ°, Π΄Π° Π½Π°ΡΠ΅ΡΠ΅ΠΌ unpack_state() ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ° ΠΈ Π²ΡΡΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
_ pack_state(int seqno, int pubkey, int order_seqno, int number_of_wins, int incoming_amount, int outgoing_amount, int owner_wc, int owner_account_id, cell orders) inline_ref {
return begin_cell()
.store_uint(seqno, 32)
.store_uint(pubkey, 256)
.store_uint(order_seqno, 32)
.store_uint(number_of_wins, 32)
.store_grams(incoming_amount)
.store_grams(outgoing_amount)
.store_int(owner_wc, 32)
.store_uint(owner_account_id, 256)
.store_dict(orders)
.end_cell();
}
_ unpack_state() inline_ref {
var ds = begin_parse(get_data());
var unpacked = (ds~load_uint(32), ds~load_uint(256), ds~load_uint(32), ds~load_uint(32), ds~load_grams(), ds~load_grams(), ds~load_int(32), ds~load_uint(256), ds~load_dict());
ds.end_parse();
return unpacked;
}ΠΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ΅Π·ΠΈ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Π½Π°ΡΠ°Π»ΠΎΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. Π©Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ.
ΠΠ° Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅, Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ set_data() ΠΈ ΡΡ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ pack_state() Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
cell packed_state = pack_state(arg_1, .., arg_n);
set_data(packed_state);Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ΄ΠΎΠ±Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° Π·Π°ΠΏΠΈΡ ΠΈ ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ Π½Π°ΠΏΡΠ΅Π΄.
Π’ΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ Π²Ρ ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° (ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ).
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠ°Π·ΡΡ Π·Π° Π±ΡΠ΄Π΅ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°. ΠΠ°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ Ρ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠΈΡ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ.
ΠΡΠ΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΠΌ, Π½Π΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈ Π΄Π° Π³ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΌ Π² test/keys/owner.pk. ΠΠ° ΡΠ΅Π»ΡΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Fift Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅ΡΠΈΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.
`newkeypair` Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΈ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ Π² ΡΡΠ΅ΠΊΠ°.
`drop` ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π³ΠΎΡΠ½ΠΈΡ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΠΎΡ ΡΡΠ΅ΠΊΠ° (Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ)
`.s` ΠΏΡΠΎΡΡΠΎ Π·Π° Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ Π² ΡΡΠ΅ΠΊΠ° Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°
`"owner.pk" B>file` Π·Π°ΠΏΠΈΡΠ²Π° ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ Π²ΡΠ² ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅ΡΠΎ `owner.pk`.
`bye` ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π° Ρ ΡΠ°Π±ΠΎΡΠ° Ρ Fift. Π©Π΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΠΏΠΊΠ° keys Π²ΡΡΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° test ΠΈ ΡΠ°ΠΌ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ.
mkdir test/keys
cd test/keys
~/TON/build/crypto/fift -i
newkeypair
ok
.s
BYTES:128DB222CEB6CF5722021C3F21D4DF391CE6D5F70C874097E28D06FCE9FD6917 BYTES:DD0A81AAF5C07AAAA0C7772BB274E494E93BB0123AA1B29ECE7D42AE45184128
drop
ok
"owner.pk" B>file
ok
byeΠΠΈΠΆΠ΄Π°ΠΌΠ΅ Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° ΡΠ°ΠΉΠ» owner.pk.
ΠΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ ΠΎΡ ΡΡΠ΅ΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡ ΡΠ°ΡΡΠ½ΠΈΡ.
Π‘Π΅Π³Π° ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°. ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΡΠ΅ΡΡ. ΠΡΡΠ²ΠΎ, ΠΏΡΠΎΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ ΠΎΡ ΡΠ°ΠΉΠ»Π° Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° file>B ΠΈ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° owner_private_key, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° priv>pub ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ Π² ΠΏΡΠ±Π»ΠΈΡΠ΅Π½ ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠ° Π² owner_public_key.
variable owner_private_key
variable owner_public_key
"./keys/owner.pk" file>B owner_private_key !
owner_private_key @ priv>pub owner_public_key !Π Π΄Π²Π΅ΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΡΠ΅ Π½ΠΈ ΡΡΡΠ±Π²Π°Ρ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΡΡΡΠ°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ ΠΊΠ°ΡΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡΡΠ° pack_state()ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° storage.
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° owner_private_key
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° owner_public_key
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° orders
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° owner_wc
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° owner_account_id
".\/keys\/owner.pk" ΡΠ°ΠΉΠ»>B owner_private_key !
owner_private_key @ priv>pub owner_public_key !
dictnew orders !
0 owner_wc !
0 owner_account_id !
<b 0 32 u, owner_public_key @ b, gram, owner_wc i, owner_account_id 256 orders dict, b> ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ !Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ ΡΡΡΡΠ°Π²ΠΈΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π±ΡΠΎΡΡΠ°.
ΠΡΡΠ²ΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°ΠΌΠ΅ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Ρ ΡΠ°ΡΡΠ½ΠΈΡ ΠΊΠ»ΡΡ ΠΈ Π½Π°ΠΊΡΠ°Ρ ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅_Π·Π°_ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅_Π·Π°_ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅
ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡ
<b 0 32 u, b> ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅_Π·Π°_ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ !
ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅_Π·Π°_ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ @ Ρ
Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ_Π½Π°_ΡΠ°ΡΡΠ΅Π½_ΠΊΠ»ΡΡ @ ed25519_sign_uint ΠΏΠΎΠ΄ΠΏΠΈΡ !
<b signature @ b, 0 32 u, b> <s ! Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π² ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, Π΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° message_to_send, ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ hashu, ed25519_sign_uint ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ .
Π Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠ° ΠΎΡΠ½ΠΎΠ²ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅.
message_to_send @
recv_external
code
storage @
c7
runvmctxΡΠ°ΠΉΠ»ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΡΠΏΠΊΠ°.
ΠΠ΅ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠ° ΠΈ ΡΠΎΠΉ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»ΠΈ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΠΌ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΊΡΠ² ΡΠΎΡΠΌΠ°Ρ ΠΈ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ°.
ΠΡΡΠ²ΠΎ Π²Π·ΠΈΠΌΠ°ΠΌΠ΅ 512 Π±ΠΈΡΠ° ΠΏΠΎΠ΄ΠΏΠΈΡ ΠΈ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Π²Π·ΠΈΠΌΠ°ΠΌΠ΅ 32 Π±ΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π·Π° Π±ΡΠΎΡΡΠ°.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°, ΡΠ΅ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π±ΡΠΎΡΡΠ°, ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°. ΠΠΊΠΎ Π½Π΅ΡΠΎ Π½Π΅ ΡΡΠ²ΠΏΠ°Π΄Π°, ΡΠ΅ Ρ Π²ΡΡΠ»ΠΈΠΌ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡ ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ ΠΊΠΎΠ΄.
var signature = in_msg~load_bits(512);
var message = in_msg;
int msg_seqno = message~load_uint(32);
(int stored_seqno, int pubkey, int order_seqno, int number_of_wins, int incoming_amount, int outgoing_amount, int owner_wc, int owner_account_id, cell orders) = unpack_state();
throw_unless(33, msg_seqno == stored_seqno);
throw_unless(34, check_signature(slice_hash(in_msg), signature, pubkey));Π‘ΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ ΠΊΠΎΠΌΠΈΡ. .
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π²ΡΠΎΡΠΈΡΡ ΡΠ΅ΡΡ Π½Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°. ΠΠΎ Π΄Π²Π΅ ΠΏΡΠΈΡΠΈΠ½ΠΈ: Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π½Π° Π±ΠΈΡΠ° Π² ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π½Π° Π±ΠΈΡΠ° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ, Π·Π°ΡΠΎΠ²Π° ΠΊΠΎΠ΄ΡΡ Π½Π΅ ΠΌΠΈΠ½Π°Π²Π° ΠΏΡΠΈ ΠΏΠ°ΡΡΠ²Π°Π½Π΅ΡΠΎ. Π’ΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅, ΠΈ Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅ΡΡ.
ΠΡΠ² Π²ΡΠΎΡΠΈΡ ΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°. ΡΠΎΠ²Π° Π΅ Π²ΡΠ½ΡΠ½ΠΈΡΡ Π²ΠΈΠ΄ Π½Π° ΡΠ°ΠΉΠ»Π° Ρ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
Π©Π΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΠ²ΡΡΡΠΈ ΡΠ΅ΡΡ, Π² ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎ Ρ ΡΡΠΆΠ΄ΠΈΡ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ. Π©Π΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΎΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ ΠΈ ΡΠ΅ Π³ΠΎ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² ΡΠ°ΠΉΠ». not-owner.pk. Π‘ ΡΠΎΠ·ΠΈ ΡΠ°ΡΡΠ΅Π½ ΠΊΠ»ΡΡ ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΌ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ΅ ΡΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ. Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°.
Π‘Π΅Π³Π° Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ ΠΊΡΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°.
Π recv_external() ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π΄Π²Π° ΡΠΈΠΏΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΡΠΈΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΡΠ΅ Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ° Π·Π°Π³ΡΠ±ΠΈΡΠ΅ Π½Π° ΠΈΠ³ΡΠ°ΡΠΈΡΠ΅, ΡΠ΅Π·ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°Ρ Π½Π° ΡΡΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° Π»ΠΎΡΠ°ΡΠΈΡΡΠ°. ΠΠ΄ΡΠ΅ΡΡΡ Π½Π° ΠΏΠΎΡΡΡΠ΅ΠΉΠ»Π° Π½Π° ΡΡΠ·Π΄Π°ΡΠ΅Π»Ρ Π½Π° Π»ΠΎΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°.
Π ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ Π½ΠΈ Π΅ Π½ΡΠΆΠ½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΈΡΠ΅ Π½Π° Π·Π°Π³ΡΠ±ΠΈΠ»ΠΈΡΠ΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΈΡΠ΅ ΠΎΡ Π»ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ°.
ΠΠ΅ΠΊΠ° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΡΡΠ²ΠΎΡΠΎ. ΠΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°, ΡΠ΅ ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡΡ Π΅ Π·Π°ΠΏΠ°Π·ΠΈΠ» Π½ΠΎΠ²ΠΈΡ Π°Π΄ΡΠ΅Ρ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ Π² ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΎΡΠ²Π΅Π½ Π±ΡΠΎΡΡΠ° ΠΈ Π½ΠΎΠ²ΠΈΡ Π°Π΄ΡΠ΅Ρ, ΠΏΡΠ΅Π΄Π°Π²Π°ΠΌΠ΅ ΠΎΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 7-Π±ΠΈΡΠΎΠ²ΠΎΡΠΎ ΡΡΠ»ΠΎ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΠΌΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π² ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°.
<b 0 32 u, 1 @ 7 new_owner_wc i, new_owner_account_id 256 b> ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅_Π·Π°_ΠΏΠΎΠ΄ΠΏΠΈΡΠ²Π°Π½Π΅ !Π ΡΠ΅ΡΡΠ° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ°. storage Π Fift. ΠΠ΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠΏΠΈΡΠ°Π½Π° Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ Fift.
Ρ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡ.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠ° ΠΈ ΡΠ΅ ΡΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠΉ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»Ρ. Π‘Π΅Π³Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° Π»ΠΎΡΠ°ΡΠΈΡΡΠ°.
Π ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΠΏΠ°ΡΡΠ²Π°ΠΌΠ΅ message, ΡΠ΅ΡΠ΅ΠΌ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ ΡΠ΅ ΠΈΠΌΠ°ΠΌΠ΅ Π΄Π²Π΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅: ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π°Π΄ΡΠ΅ΡΠ° ΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΠΌΠΎΠ²Π΅.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅ΠΌ Π½ΠΎΠ²ΠΈΡ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ Π³ΠΎ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ.
ΠΠ°ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΡΠ΅ΡΠΈΡΡ ΡΠ΅ΡΡ ΡΠ΅ ΠΏΡΠΎΠ²Π°Π»Ρ. ΠΡΠΎΠ²Π°Π»Ρ ΡΠ΅, Π·Π°ΡΠΎΡΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ ΡΠ΅Π³Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠ°ΡΡΠ²Π° 7 Π±ΠΈΡΠ° ΠΎΡ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠΈΡΠΎ Π»ΠΈΠΏΡΠ²Π°Ρ Π² ΡΠ΅ΡΡΠ°. Π©Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ. ΠΊΠΎΠΌΠΈΡ Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π‘ΡΡΠ°Ρ
ΠΎΡΠ½ΠΎ.
Π‘Π΅Π³Π° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°Π½ΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π°Π΄ΡΠ΅Ρ.
ΠΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ΅ΡΡ. Π©Π΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π΄Π²Π° ΡΠ΅ΡΡΠ°: Π΅Π΄ΠΈΠ½, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π°Π»Π°Π½ΡΡΡ Π½Π΅ ΡΡΠΈΠ³Π°, ΠΈ Π²ΡΠΎΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π²ΡΠΈΡΠΊΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ. Π’Π΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΡΡ .
Π‘Π΅Π³Π° ΡΠ΅ Π΄ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΊΠΎΠ΄Π°. ΠΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π΄Π²Π° ΠΏΠΎΠΌΠΎΡΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΡΡΠ²ΠΈΡΡ Π΅ ΠΌΠ΅ΡΠΎΠ΄ Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅, Π·Π° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΡ Π±Π°Π»Π°Π½Ρ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
int balance() inline_ref method_id {
return get_balance().pair_first();
}Π Π²ΡΠΎΡΠΈΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° Π΄ΡΡΠ³ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ. Π’ΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠΎΠΏΠΈΡΠ°Ρ ΠΎΡ Π΄ΡΡΠ³ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ.
() send_grams(int wc, int addr, int grams) impure {
;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool src:MsgAddress -> 011000
cell msg = begin_cell()
;; .store_uint(0, 1) ;; 0 <= ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° int_msg_info$0
;; .store_uint(1, 1) ;; 1 <= ihr Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½
;; .store_uint(1, 1) ;; 1 <= ΠΏΡΡΠΆΠΈΠ½Π° = Π²ΡΡΠ½ΠΎ
;; .store_uint(0, 1) ;; 0 <= ΠΏΡΡΠΆΠΈΠ½Π°ΡΠ° = Π½Π΅Π²ΡΡΠ½ΠΎ
;; .store_uint(4, 5) ;; 00100 <= ΠΎΠΏΡΠΈΠΈ Π·Π° Π°Π΄ΡΠ΅Ρ, anycast = Π½Π΅Π²ΡΡΠ½ΠΎ, 8-Π±ΠΈΡΠΎΠ²Π° ΡΠ°Π±ΠΎΡΠ½Π° Π²Π΅ΡΠΈΠ³Π°
.store_uint (196, 9)
.store_int(wc, 8)
.store_uint(addr, 256)
.store_grams(grams)
.store_uint(0, 107) ;; 106 Π½ΡΠ»ΠΈ + 0 ΠΊΠ°ΡΠΎ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡ, ΡΠ΅ Π½ΡΠΌΠ° ΠΊΠ»Π΅ΡΠΊΠ° Ρ Π΄Π°Π½Π½ΠΈΡΠ΅.
.end_cell();
send_raw_message(msg, 3); ;; ΡΠ΅ΠΆΠΈΠΌ, 2 Π·Π° ΠΈΠ³Π½ΠΎΡΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, 1 Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΡΡ Π΄Π° ΠΏΠ»Π°ΡΠ° ΡΠ°ΠΊΡΠΈ, 64 Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π²Ρ
ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
}ΠΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΠ΅Π·ΠΈ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π° Π² ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ Π½Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ°. ΠΡΡΠ²ΠΎ ΠΏΠ°ΡΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΡΠΎ Π³ΡΠ°ΠΌΠΎΠ²Π΅ ΠΎΡ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π±Π°Π»Π°Π½ΡΠ°, Π°ΠΊΠΎ Π½Π΅ ΡΡΠΈΠ³Π°, Ρ Π²ΡΡΠ»ΡΠΌΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΡΠ΅Π΄, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π°Π΄ΡΠ΅Ρ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π±ΡΠΎΡΡΠ°.
int amount_to_send = message~load_grams();
throw_if(36, amount_to_send + 500000000 > balance());
accept_message();
send_grams(owner_wc, owner_account_id, amount_to_send);
set_data(pack_state(stored_seqno + 1, pubkey, order_seqno, number_of_wins, incoming_amount, outgoing_amount, owner_wc, owner_account_id, orders));ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ ΠΊΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ°. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ΅ ΡΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅, ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ.
ΠΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π²ΡΡΠΊΠΎ ΠΏΡΡ ΠΏΠ»Π°ΡΠ° ΡΠ°ΠΊΡΠ°. ΠΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΈΡΠΊΠ°Π½Π΅ΡΠΎ, ΡΠ»Π΅Π΄ Π±Π°Π·ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ accept_message().
Π‘Π΅Π³Π° ΡΠ΅ ΡΠ΅ Π·Π°Π΅ΠΌΠ΅ΠΌ Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΡΡΡΠ½ΠΎΡΡ, Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΠΈΠ³ΡΠ°ΡΠ° Π΄Π²ΠΎΠΉΠ½Π°ΡΠ° ΡΡΠΌΠ° ΠΏΡΠΈ ΠΏΠ΅ΡΠ°Π»Π±Π° ΠΈ ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° ΠΏΡΠΈ Π·Π°Π³ΡΠ±Π°.
ΠΡΡΠ²ΠΎ ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡ ΡΠ΅ΡΡ. ΠΠ° ΡΠΎΠ²Π° Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΅ΡΡΠΎΠ² Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅.
ΠΠ΄ΡΠ΅ΡΡΡ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ Π΄Π²Π΅ ΡΠΈΡΠ»Π°: 32-Π±ΠΈΡΠΎΠ²ΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° workchain ΠΈ 256-Π±ΠΈΡΠΎΠ²ΠΎ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΎ ΡΠΈΡΠ»ΠΎ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π² ΡΠΎΠ·ΠΈ workchain. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, -1 ΠΈ 12345, ΡΠΎΠ·ΠΈ Π°Π΄ΡΠ΅Ρ ΡΠ΅ Π·Π°ΠΏΠ°Π·ΠΈΠΌ Π² ΡΠ°ΠΉΠ».
ΠΠΎΠΏΠΈΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡΡΠ° Π·Π° Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° ΠΎΡ .
// ( wc addr fname -- ) Save address to file in 36-byte format
{ -rot 256 u>B swap 32 i>B B+ swap B>file } : save-addressΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΡΠ°, ΡΠΎΠ²Π° ΡΠ΅ Π½ΠΈ Π΄Π°Π΄Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Fift. Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Fift Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ.
~ /TON/build/crypto/fift -i ΠΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ°Π²ΡΠΌΠ΅ Π² ΡΡΠ΅ΠΊΠ° -1, 12345 ΠΈ ΠΈΠΌΠ΅ΡΠΎ Π½Π° Π±ΡΠ΄Π΅ΡΠΈΡ ΡΠ°ΠΉΠ» "sender.addr":
-1 12345 "sender.addr" Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° Π΅ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡΡΠ° -rot, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅ΡΡΠ²a ΡΡΠ΅ΠΊΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π° Π²ΡΡΡ
Π° Π½Π° ΡΡΠ΅ΠΊΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π²Π° ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°:
"sender.addr" -1 12345256 u>B ΠΏΡΠ΅Π²ΡΡΡΠ° 256-Π±ΠΈΡΠΎΠ²ΠΎ Π½Π΅ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ Π² Π±Π°ΠΉΡΠΎΠ²Π΅.
"sender.addr" -1 BYTES:0000000000000000000000000000000000000000000000000000000000003039swap ΡΠ°Π·ΠΌΠ΅Π½Ρ ΠΌΠ΅ΡΡΠ°ΡΠ° Π½Π° Π΄Π²Π°ΡΠ° Π½Π°ΠΉ-Π³ΠΎΡΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π° ΡΡΠ΅ΠΊΠ°.
"sender.addr" BYTES:0000000000000000000000000000000000000000000000000000000000003039 -132 i>B ΠΏΡΠ΅Π²ΡΡΡΠ° 32-Π±ΠΈΡΠΎΠ²ΠΎ ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ Π² Π±Π°ΠΉΡΠΎΠ²Π΅.
"sender.addr" BYTES:0000000000000000000000000000000000000000000000000000000000003039 BYTES:FFFFFFFFB+ ΡΠ²ΡΡΠ·Π²Π° Π΄Π²Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ ΠΎΡ Π±Π°ΠΉΡΠΎΠ²Π΅.
"sender.addr" BYTES:0000000000000000000000000000000000000000000000000000000000003039FFFFFFFFΠΡΠ½ΠΎΠ²ΠΎ swap.
BYTES:0000000000000000000000000000000000000000000000000000000000003039FFFFFFFF "sender.addr" Π Π½Π°ΠΊΡΠ°Ρ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π±Π°ΠΉΡΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ² ΡΠ°ΠΉΠ»Π° B>file. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π°ΡΠΈΡΡ ΡΡΠ΅ΠΊ Π΅ ΠΏΡΠ°Π·Π΅Π½. Π‘ΠΏΠΈΡΠ°ΠΌΠ΅ Fift. Π ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΉΠ» sender.addr. ΠΠ΅ΠΊΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π² ΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° test/addresses/.
Π©Π΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡ ΡΠ΅ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. .
Π‘Π΅Π³Π° ΡΠ΅ ΡΠ΅ Π·Π°ΠΉΠΌΠ΅ΠΌ Ρ Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° Π»ΠΎΡΠ°ΡΠΈΡΡΠ°.
ΠΡΡΠ²ΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ, Π΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ bounced ΠΈΠ»ΠΈ Π½Π΅, Π°ΠΊΠΎ bounced, ΡΠΎ Π³ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°ΠΌΠ΅. bounced ΡΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΡΡ ΡΠ΅ Π²ΡΡΠ½Π΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅ΡΠ΅, Π°ΠΊΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½ΡΠΊΠ°ΠΊΠ²Π° Π³ΡΠ΅ΡΠΊΠ°. ΠΡΠΌΠ° Π΄Π° Π²ΡΡΡΠ°ΠΌΠ΅ Π³ΡΠ°ΠΌΠΎΠ²Π΅ΡΠ΅, Π°ΠΊΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ Π³ΡΠ΅ΡΠΊΠ°.
ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π±Π°Π»Π°Π½ΡΠ°, Π°ΠΊΠΎ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΎΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ Π³ΡΠ°ΠΌ, ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°ΠΌΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π³ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°ΠΌΠ΅.
Π‘Π΅Π³Π° ΠΏΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π΅ Π΄ΠΎΡΠ»ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ.
Π§ΠΈΡΠ°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°ΠΌΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ Π·Π°Π»ΠΎΠ·ΠΈ ΠΎΡ ΠΈΡΡΠΎΡΠΈΡΡΠ°, Π°ΠΊΠΎ ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π²Π°Π΄Π΅ΡΠ΅Ρ. ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ
ΡΡΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. pack_order(), unpack_order(), remove_old_orders().
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π°, Π°ΠΊΠΎ Π±Π°Π»Π°Π½ΡΠ° Π½Π΅ Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ΅Π½ Π·Π° ΠΈΠ·ΠΏΠ»Π°ΡΠ°Π½Π΅, ΡΡΠΈΡΠ°ΠΌΠ΅, ΡΠ΅ ΡΠΎΠ²Π° Π½Π΅ Π΅ Π·Π°Π»ΠΎΠ³, Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ΡΠΎ Π² orders.
Π‘Π»Π΅Π΄Π²Π°ΡΠΎΡΠΎ Π½Π°ΠΊΡΠ°Ρ Π΅ ΡΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
ΠΡΡΠ²ΠΎ, Π°ΠΊΠΎ ΠΈΠ³ΡΠ°ΡΡΡ Π΅ Π·Π°Π³ΡΠ±ΠΈΠ», Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Π³ΠΎ Π² ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° Π·Π°Π»ΠΎΠ·ΠΈΡΠ΅ ΠΈ Π°ΠΊΠΎ ΡΡΠΌΠ°ΡΠ° Π΅ Π½Π°Π΄ 3 Π³ΡΠ°ΠΌΠ°, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ 1/3 Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ° Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
ΠΠΊΠΎ ΠΈΠ³ΡΠ°ΡΡΡ ΡΠΏΠ΅ΡΠ΅Π»ΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΡΠ΄Π²ΠΎΠ΅Π½Π°ΡΠ° ΡΡΠΌΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΈΠ³ΡΠ°ΡΠ° ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° Π·Π°Π»ΠΎΠ³Π° Π² ΠΈΡΡΠΎΡΠΈΡΡΠ°.
() recv_internal(int order_amount, cell in_msg_cell, slice in_msg) impure {
var cs = in_msg_cell.begin_parse();
int flags = cs~load_uint(4); ;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool
if (flags & 1) { ;; ΠΈΠ³Π½ΠΎΡΠΈΡΠ°ΠΉ Π²ΡΡΠ½Π°ΡΠΈΡΠ΅
return ();
}
if (order_amount < 500000000) { ;; ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΉ Π³ΡΠ°ΠΌΠΈ Π±Π΅Π· Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ
return ();
}
slice src_addr_slice = cs~load_msg_addr();
(int src_wc, int src_addr) = parse_std_addr(src_addr_slice);
(int stored_seqno, int pubkey, int order_seqno, int number_of_wins, int incoming_amount, int outgoing_amount, int owner_wc, int owner_account_id, cell orders) = unpack_state();
orders = remove_old_orders(orders, order_seqno);
if (balance() = 4) {
builder order = pack_order(order_seqno, 3, now(), order_amount, src_wc, src_addr);
orders~udict_set_builder(32, order_seqno, order);
set_data(pack_state(stored_seqno, pubkey, order_seqno + 1, number_of_wins, incoming_amount + order_amount, outgoing_amount, owner_wc, owner_account_id, orders));
if (order_amount > 3000000000) {
send_grams(owner_wc, owner_account_id, order_amount / 3);
}
return ();
}
send_grams(src_wc, src_addr, 2 * order_amount);
builder order = pack_order(order_seqno, 2, now(), order_amount, src_wc, src_addr);
orders~udict_set_builder(32, order_seqno, order);
set_data(pack_state(stored_seqno, pubkey, order_seqno + 1, number_of_wins + 1, incoming_amount, outgoing_amount + 2 * order_amount, owner_wc, owner_account_id, orders));
}Π ΡΠΎΠ²Π° Π΅ Π²ΡΠΈΡΠΊΠΎ. .
Π‘Π΅Π³Π° ΠΎΡΡΠ°Π²Π° ΠΏΡΠΎΡΡΠΎ, ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π³Π΅Ρ-ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈΡ ΡΠ²ΡΡ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° (ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π° ΠΏΡΠΎΡΠ΅ΡΠ΅ΠΌ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°).
. ΠΠ° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎ-Π΄ΠΎΠ»Ρ.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π·Π°Π±ΡΠ°Π²ΠΈΡ Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° Π·Π°ΡΠ²ΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΠΏΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. . Π ΠΎΡΠ΅ Π±ΡΠ³ Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° 1/3 ΠΎΡ ΡΡΠΌΠ°ΡΠ° Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊΠ°.
Π‘Π»Π΅Π΄Π²Π° Π΄Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. ΠΠ΅ΠΊΠ° ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΏΠ°ΠΏΠΊΠ° requests.
ΠΠ° ΠΎΡΠ½ΠΎΠ²Π° Π²Π·Π΅Ρ ΠΊΠΎΠ΄Π° Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ ΠΊΠΎΠΉΡΠΎ Π² ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎΡΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅.
ΠΡ ΡΠΎΠ²Π°, Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. Π‘ΡΠΎΡΠΌΠΈΡΠ°ΠΌΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΎΡΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΡΠΎΠ΅ΡΡ Π°Π΄ΡΠ΅ΡΡΡ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΎΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π² TON. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π½Π° ΡΠΎΠ·ΠΈ Π°Π΄ΡΠ΅Ρ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΡΠ°ΠΌΠ° ΠΈ ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΡΠ΅ ΡΠ°ΠΉΠ»Π° ΡΡΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΡΠΈΡΠ° ΡΠ°ΠΊΡΠ° (Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΈΡΠ΅). .
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ΄Π° Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ lottery-query.boc ΡΠ°ΠΉΠ» ΠΈ Π°Π΄ΡΠ΅Ρ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
~/TON/build/crypto/fift -s requests/new-lottery.fif 0ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅: lottery-query.boc, lottery.addr, lottery.pk.
Π‘ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΡΠ΅ Π½Π΅ΡΠ°, Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
new wallet address = 0:044910149dbeaf8eadbb2b28722e7d6a2dc6e264ec2f1d9bebd6fb209079bc2a
(ΠΠ°ΠΏΠ°Π·Π²Π°Π½Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π² ΡΠ°ΠΉΠ»Π° lottery.addr)
ΠΠ΅ΠΎΠ±ΡΠ°ΡΠΈΠΌ Π°Π΄ΡΠ΅Ρ (Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ): 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd
ΠΠ±ΡΠ°ΡΠΈΠΌ Π°Π΄ΡΠ΅Ρ (Π·Π° ΠΏΠΎ-ΠΊΡΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ): kQAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KpFYΠΠ° ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π² TON
$ ./lite-client/lite-client -C ton-lite-client-test1.config.json
getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydΠ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ Π°ΠΊΠ°ΡΠ½ΡΡΡ Ρ ΡΠ°ΠΊΡΠ² Π°Π΄ΡΠ΅Ρ Π΅ ΠΏΡΠ°Π·Π΅Π½.
ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π΅ ΠΏΡΠ°Π·Π½ΠΎΠΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd 2 ΠΡΠ°ΠΌΠ° ΠΈ ΡΠ»Π΅Π΄ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠ° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΠΌΠΈΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ , Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ Π³ΡΠ°ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ°ΡΠ΅ ΠΎΡ Π½ΡΠΊΠΎΠΉ ΠΎΡ ΡΠ°ΡΠ°, Π·Π° ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π° Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°.
> getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydΠΠ»Π΅Π΄Π°, ΡΠ΅ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΠ΅ Π΅ ΠΏΠΎΡΠ²ΠΈΠ» Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ (ΡΡΡΡΠΎΡΠ½ΠΈΠ΅: account_uninit) ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Ρ ΡΠ°ΠΊΡΠ² Π°Π΄ΡΠ΅Ρ ΠΈ Π±Π°Π»Π°Π½Ρ ΠΎΡ 1 000 000 000 Π½Π°Π½ΠΎΠ³ΡΠ°ΠΌΠ°.
ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π΅ (Π°ΠΊΠ°ΡΠ½Ρ
Π°Π΄ΡΠ΅Ρ:(addr_std
anycast:nothing workchain_id:0 address:x044910149DBEAF8EADBB2B28722E7D6A2DC6E264EC2F1D9BEBD6FB209079BC2A)
storage_stat:(storage_info
used:(storage_used
ΠΊΠ»Π΅ΡΠΊΠΈ:(var_uint len:1 value:1)
Π±ΠΈΡΠΎΠ²Π΅:(var_uint len:1 value:103)
ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ_ΠΊΠ»Π΅ΡΠΊΠΈ:(var_uint len:0 value:0)) ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ ΠΏΠ»Π°ΡΠ΅Π½ΠΎ:1583257959
Π΄ΡΠ»ΠΆΠΈΠΌΠ° ΡΡΠΌΠ°:nothing)
ΡΠΊΠ»Π°Π΄:(account_storage last_trans_lt:3825478000002
Π±Π°Π»Π°Π½Ρ:(Π²Π°Π»ΡΡΠΈ
Π³ΡΠ°ΠΌΠΎΠ²Π΅:(Π½Π°Π½ΠΎΠ³ΡΠ°ΠΌΠΈ
ΡΡΠΌΠ°:(var_uint len:4 value:2000000000))
Π΄ΡΡΠ³ΠΈ:(extra_currencies
dict:hme_empty))
ΡΡΡΡΠΎΡΠ½ΠΈΠ΅:account_uninit))
x{C00044910149DBEAF8EADBB2B28722E7D6A2DC6E264EC2F1D9BEBD6FB209079BC2A20259C2F2F4CB3800000DEAC10776091DCD650004_}
ΠΏΠΎΡΠ»Π΅Π΄Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ lt = 3825478000001 Ρ
Π΅Ρ = B043616AE016682699477FFF01E6E903878CDFD6846042BA1BFC64775E7AC6C4
Π±Π°Π»Π°Π½ΡΡΡ Π½Π° Π°ΠΊΠ°ΡΠ½ΡΠ° Π΅ 2000000000ngΠ‘Π΅Π³Π° ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌΠ΅ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ. Π©Π΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ lite-client ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ.
> sendfile lottery-query.boc
[ 1][t 2][1583008371.631410122][lite-client.cpp:966][!testnode] ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ ΠΎΡ ΡΠ°ΠΉΠ» lottery-query.boc
[ 3][t 1][1583008371.828550100][lite-client.cpp:976][!query] ΡΡΠ°ΡΡΡ Π½Π° Π²ΡΠ½ΡΠ½ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π΅ 1 ΠΠ΅ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ, ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡΡ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½.
> last
> getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydΠ‘ΡΠ΅Π΄ Π΄ΡΡΠ³ΠΈΡΠ΅ Π½Π΅ΡΠ°, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅.
ΡΠΊΠ»Π°Π΄:(account_storage last_trans_lt:3825499000002
Π±Π°Π»Π°Π½Ρ:(Π²Π°Π»ΡΡΠΈ
Π³ΡΠ°ΠΌΠΎΠ²Π΅:(Π½Π°Π½ΠΎΠ³ΡΠ°ΠΌΠΈ
ΡΡΠΌΠ°:(var_uint len:4 value:1987150999))
Π΄ΡΡΠ³ΠΈ:(extra_currencies
dict:hme_empty))
ΡΡΡΡΠΎΡΠ½ΠΈΠ΅:(account_activeΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ account_active.
Π‘ΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈΡΡ ΠΊΠΎΠΌΠΈΡ Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ .
Π‘Π΅Π³Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π·Π°ΠΏΠΈΡΠ²Π°Π½ΠΈΡ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
Π’ΠΎΠ΅ΡΡ, ΠΏΡΡΠ²ΠΈΡΡ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π°Π΄ΡΠ΅ΡΠ° ΡΠ΅ Π³ΠΎ ΠΎΡΡΠ°Π²ΠΈΠΌ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½Π° ΡΠ°Π±ΠΎΡΠ°, Π° Π²ΡΠΎΡΠΈΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π½Π° Π°Π΄ΡΠ΅ΡΠ° Π½Π° ΠΏΡΠΈΡΠ΅ΠΆΠ°ΡΠ΅Π»Ρ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ. ΠΡΡΡΠ½ΠΎΡΡ, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΡΡΡΠΎΡΠΎ, ΠΊΠ°ΠΊΡΠΎ Π² ΡΠ΅ΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° Π³ΡΠ°ΠΌΠΎΠ²Π΅.
Π’Π°ΠΊΠΎΠ²Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΊΡΠ΄Π΅ΡΠΎ msg_seqno 165, Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ 2 ΠΈ 9.5 Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅.
<b 165 32 u, 2 7 9500000000 gram, b>ΠΠ΅ Π·Π°Π±ΡΠ°Π²ΡΠΉΡΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ Π»ΠΈΡΠ½ΠΈΡ ΠΊΠ»ΡΡ lottery.pk, ΠΊΠΎΠΉΡΠΎ Π±Π΅ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°. .
ΠΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° GET ΠΌΠ΅ΡΠΎΠ΄ΠΈ
Π‘Π΅Π³Π° ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ GET ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π½Π° ΡΠΌΠ°ΡΡΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°.
ΠΠ°ΠΏΠΎΡΠ²Π°ΠΌΠ΅ lite-client, ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ GET ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅.
$ .\/lite-client\/lite-client -C ton-lite-client-test1.config.json
> runmethod 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd balance
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ: [ 104128 ]
ΡΠ΅Π·ΡΠ»ΡΠ°Ρ: [ 64633878952 ]
...Π ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΡΡΠ΄ΡΡΠΆΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΡΡΠΎ Π²ΡΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡΡΠ° balance() ΠΎΡ Π½Π°ΡΠΈΡ ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ.
Π‘ΡΡΠΎΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΠΈ Π·Π° ΠΎΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
> runmethod 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd get_seqno
...
Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ: [ 77871 ]
ΡΠ΅Π·ΡΠ»ΡΠ°Ρ: [ 1 ] Π©Π΅ ΠΏΠΎΠΈΡΠΊΠ°ΠΌ ΠΈΡΡΠΎΡΠΈΡ Π½Π° Π·Π°Π»ΠΎΠ·ΠΈΡΠ΅.
> runmethod 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd get_orders
...
arguments: [ 67442 ]
result: [ ([0 1 1583258284 10000000000 0 74649920601963823558742197308127565167945016780694342660493511643532213172308] [1 3 1583258347 4000000000 0 74649920601963823558742197308127565167945016780694342660493511643532213172308] [2 1 1583259901 50000000000 0 74649920601963823558742197308127565167945016780694342660493511643532213172308]) ] Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ lite-client ΠΈ GET ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π½Π° ΡΠ°ΠΉΡΠ°.
ΠΠΎΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° Π½Π° ΡΠ°ΠΉΡΠ°
ΠΠ°ΠΏΠΈΡΠ°Ρ ΠΏΡΠΎΡΡ ΡΠ΅Π±ΡΠ°ΠΉΡ Π½Π° Python, Π·Π° Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ° ΠΏΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ Π½Π°ΡΠΈΠ½. ΠΡΠΌΠ° Π΄Π° ΡΠ΅ ΡΠΏΠΈΡΠ°ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Π½Π° Π½Π΅Π³ΠΎ ΠΈ ΡΠ΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°ΠΌ ΡΠ°ΠΉΡΠ° .
ΠΠ°ΡΠ²ΠΊΠΈΡΠ΅ ΠΊΡΠΌ TON ΡΠ΅ ΠΏΡΠ°Π²ΡΡ ΠΎΡ Python ΡΡΠ΅Π· lite-client,. ΠΠ° ΡΠ»Π΅ΡΠ½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΡΡΡ Π΅ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ Π² Docker ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π² Google Cloud. .
ΠΠΏΠΈΡΠ²Π°ΠΌΠ΅
Π‘Π΅Π³Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π³ΡΠ°ΠΌΠΎΠ²Π΅ Π·Π° ΠΏΠΎΠΏΡΠ»Π²Π°Π½Π΅ ΠΎΡ . Π©Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ 40 Π³ΡΠ°ΠΌΠ°. Π ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π·Π°Π»ΠΎΠ³Π° Π·Π° ΡΡΠ½ΠΎΡΠ°. ΠΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΠ°ΠΉΡΡΡ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΡΡΠΎΡΠΈΡ Π½Π° Π·Π°Π»ΠΎΠ·ΠΈΡΠ΅, ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΡΠΎΡΠ΅Π½Ρ Π½Π° ΠΏΠ΅ΡΠ°Π»Π±Π° ΠΈ Π΄ΡΡΠ³Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ.
, ΡΠ΅ ΠΏΡΡΠ²ΠΈΡ Π·Π°Π»ΠΎΠ³ ΡΠΏΠ΅ΡΠ΅Π»ΠΈΡ ΠΌΠ΅, Π²ΡΠΎΡΠΈΡ Π·Π°Π³ΡΠ±ΠΈΡ ΠΌΠ΅.
Π‘Π»Π΅Π΄ΡΠ»ΠΎΠ²ΠΈΠ΅
Π‘ΡΠ°ΡΠΈΡΡΠ° ΡΡΠ°Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄ΡΠ»Π³Π° ΠΎΡ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ , ΠΌΠΎΠΆΠ΅ Π±ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎ-ΠΊΡΠ°ΡΠΊΠ°, Π° ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π΅ ΡΠΎΡΠ½ΠΎ Π·Π° ΡΠΎΠ²Π΅ΠΊ, ΠΊΠΎΠΉΡΠΎ Π½Π΅ Π·Π½Π°Π΅ Π½ΠΈΡΠΎ Π·Π° TON ΠΈ ΠΈΡΠΊΠ° Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΡΠΎΡΡ ΡΠΌΠ°ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π½Π΅ΡΠ° ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΎΠ±ΡΡΠ½Π΅Π½ΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ.
ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π½ΡΠΊΠΎΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π° Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈ Π΅Π»Π΅Π³Π°Π½ΡΠ½ΠΎ, Π½ΠΎ ΡΠΎΠ³Π°Π²Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π±ΠΈ ΠΎΡΠ½Π΅Π»Π° ΠΎΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠΌ ΡΠ³ΡΠ΅ΡΠΈΠ» ΠΈΠ»ΠΈ Π½Π΅ΡΠΎ Π΄Π° Π½Π΅ ΡΡΠΌ ΡΠ°Π·Π±ΡΠ°Π», Π·Π°ΡΠΎΠ²Π°, Π°ΠΊΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅ Π½Π΅ΡΠΎ ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ, ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π½Π° TON.
Π’ΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΈΡΡ TON Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π² Π°ΠΊΡΠΈΠ²Π½Π° ΡΠ°Π·Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π½Π°ΡΡΡΠΏΡΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ Π΄Π° ΡΡΡΠΏΡΡ Π½ΡΠΊΠΎΡ ΠΎΡ ΡΡΡΠΏΠΊΠΈΡΠ΅ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ (ΠΊΠΎΠ΅ΡΠΎ ΠΈ ΡΡΠ°Π½Π°, Π΄ΠΎΠΊΠ°ΡΠΎ ΠΏΠΈΡΠ΅Ρ , Π²Π΅ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ ), Π½ΠΎ ΠΎΠ±ΡΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΅Π΄Π²Π° Π»ΠΈ ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ.
ΠΠ΅ Π²ΡΠ·Π½Π°ΠΌΠ΅ΡΡΠ²Π°ΠΌ Π΄Π° ΡΠ°Π·ΠΈΡΠΊΠ²Π°ΠΌ Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ Π½Π° TON. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΠ΅ ΡΡΠ°Π½Π΅ Π½Π΅ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΡΠ΄Π΅Π»ΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Ρ ΠΈ Π΄Π° Π·Π°Π΅ΠΌΠ΅ΠΌ Π½ΠΈΡΠ° Ρ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΎΡΠ΅ ΡΠ΅Π³Π°.
ΠΠΌΠ° ΠΎΡΠ΅ Libra ΠΎΡ Facebook, ΡΠΈΡΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½Π° Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ Π΅ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΠΎΡ ΡΠ°Π·ΠΈ Π½Π° TON. ΠΠΎΡΡΠΈ Π½Π΅ Π·Π½Π°ΠΌ Π½ΠΈΡΠΎ Π·Π° Libra, Π½ΠΎ ΠΏΠΎ ΡΠΎΡΡΠΌΠΈΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΡΠ°ΠΌ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ Π² ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° TON. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΈ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° TON ΠΏΡΠΈΠ»ΠΈΡΠ°Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π° Π°Π½Π΄Π΅ΡΠ³ΡΠ°ΡΠ½Π΄, ΠΊΠΎΠ΅ΡΠΎ ΡΡΡΠΎ Π΅ Π³ΠΎΡΠΈΠ½ΠΎ.
ΠΡΡΠ·ΠΊΠΈ
- ΠΡΠΈΡΠΈΠ°Π»Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° TON:
- ΠΡΠΈΡΠΈΠ°Π»Π½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° TON:
- ΠΡΠΈΡΠΈΠ°Π»Π΅Π½ ΠΏΠΎΡΡΡΠ΅ΠΉΠ» Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ:
- Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ:
- ΠΡΡΠ·ΠΊΠ° ΠΊΡΠΌ ΡΠ°ΠΉΡΠ° Π½Π° ΡΠΌΠ°ΡΡ-ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°:
- Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° Visual Studio Code Π·Π° FunC:
- Π§Π°Ρ Π·Π° TON Π² Telegram, ΠΊΠΎΠΉΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π² Π½Π°ΡΠ°Π»Π½ΠΈΡ Π΅ΡΠ°ΠΏ. ΠΠΈΡΠ»Ρ, ΡΠ΅ Π½ΡΠΌΠ° Π΄Π° Π΅ Π³ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ°, ΡΠ΅ ΡΠ°ΠΌ ΠΈΠΌΠ° Π²ΡΠΈΡΠΊΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΏΠΈΡΠ°Π»ΠΈ Π½Π΅ΡΠΎ Π·Π° TON. Π’Π°ΠΌ ΡΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ²ΠΈ Π³ΡΠ°ΠΌΠΎΠ²Π΅.
- ΠΡΠ΅ Π΅Π΄ΠΈΠ½ ΡΠ°Ρ Π·Π° TON, Π² ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ:
- ΠΡΡΠ²ΠΈ Π΅ΡΠ°ΠΏ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΡΠ°:
- ΠΡΠΎΡΠΈ Π΅ΡΠ°ΠΏ Π½Π° ΠΊΠΎΠ½ΠΊΡΡΡΠ°:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
