TON-āĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāϤ⧠āĻāĻŦāĻ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāϤ⧠āĻšāϝāĻŧ āϏ⧠āϏāĻŽā§āĻĒāϰā§āĻā§
āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§?
āύāĻŋāĻŦāύā§āϧ⧠āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒā§āϰāĻĨāĻŽ (āĻĻā§āĻāĻāĻŋāϰ āĻŽāϧā§āϝā§) āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽ āĻŦā§āϞāĻāĻā§āĻāύ āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϝāĻŧ āĻ āĻāĻļ āύāĻŋāϝāĻŧā§āĻāĻŋāϞāĻžāĻŽ, āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āĻāĻžāϰ āĻā§āϰāĻšāĻŖ āĻāϰāĻŋāύāĻŋ, āĻāĻŦāĻ āĻāĻāĻāĻŋ āύāĻŋāĻŦāύā§āϧ⧠āĻāĻŽāĻžāϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āϰā§āĻāϰā§āĻĄ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋ āϝāĻžāϤ⧠āĻāĻāĻŋ āĻŦāĻŋāϏā§āĻŽā§āϤāĻŋāϤ⧠āĻĄā§āĻŦā§ āύāĻž āϝāĻžāϝāĻŧ āĻāĻŦāĻ āϏāĻŽā§āĻāĻŦāϤ āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āĻā§āĻ
āϝā§āĻšā§āϤ⧠āĻāĻŽāĻŋ āĻŦāĻŋāĻŽā§āϰā§āϤ āĻā§āĻĄ āϞāĻŋāĻāϤ⧠āĻāĻžāĻāύāĻŋ, āĻāĻŋāύā§āϤ⧠āĻāĻŋāĻā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ, āύāĻŋāĻŦāύā§āϧāĻāĻŋāϰ āĻāύā§āϝ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āϤāĻžāϤā§āĻā§āώāĻŖāĻŋāĻ āϞāĻāĻžāϰāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻ āϝāĻž āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āϏā§āĻā§āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰ⧠āϏāϰāĻžāϏāϰāĻŋ TON āĻĨā§āĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻĄā§āĻāĻž āĻĻā§āĻāĻžāϝāĻŧāĨ¤
āύāĻŋāĻŦāύā§āϧāĻāĻŋ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ āĻĻāϰāĻāĻžāϰ⧠āĻšāĻŦā§ āϝāĻžāϰāĻž TON-āĻ āϤāĻžāĻĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻāϰāϤ⧠āĻāĻžāύ, āĻāĻŋāύā§āϤ⧠āĻā§āĻĨāĻžāϝāĻŧ āĻļā§āϰ⧠āĻāϰāĻŦā§āύ āϤāĻž āĻāĻžāύā§āύ āύāĻžāĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§ āϞāĻāĻžāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āĻāĻŽāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāύāϏā§āĻāϞ āĻāϰāĻž āĻĨā§āĻā§ āĻļā§āϰ⧠āĻāϰ⧠āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ, āĻāĻāĻŋāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻā§āϰāĻšāĻŖ āĻāĻŦāĻ āĻĒā§āϰāĻāĻžāĻļā§āϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻ āϞāĻŋāĻāϤ⧠āϝāĻžāĻŦāĨ¤
āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϝāĻŧ āĻ āĻāĻļāĻā§āϰāĻšāĻŖ āϏāĻŽā§āĻĒāϰā§āĻā§
āĻāϤ āĻ
āĻā§āĻā§āĻŦāϰā§, āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽ āύāϤā§āύ āĻāĻžāώāĻžāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻŦā§āϞāĻāĻā§āĻāύ āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϰ āĻā§āώāĻŖāĻž āĻĻāĻŋāϝāĻŧā§āĻā§ Fift и FunC. āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ āĻĒāĻžāĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āϝā§āĻā§āύ⧠āĻāĻāĻāĻŋ āϞā§āĻāĻž āĻĨā§āĻā§ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āĻāĻŋāϞāĨ¤ āĻāĻŽāĻŋ āĻā§āĻŦā§āĻāĻŋāϞāĻžāĻŽ āĻāĻŋāύā§āύ āĻāĻŋāĻā§ āĻāϰāĻž, āĻāĻāĻāĻŋ āĻāĻžāώāĻž āĻļāĻŋāĻāϤ⧠āĻāĻŦāĻ āĻāĻŋāĻā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻāĻžāϞ āĻšāĻŦā§, āĻāĻŽāύāĻāĻŋ āϝāĻĻāĻŋ āĻāĻŽāĻžāĻā§ āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻ
āύā§āϝ āĻāĻŋāĻā§ āϞāĻŋāĻāϤ⧠āύāĻž āĻšāϝāĻŧāĨ¤ āĻĒā§āϞāĻžāϏ, āĻŦāĻŋāώāϝāĻŧ āĻā§āϰāĻŽāĻžāĻāϤ āĻ ā§āĻāĻ āĻāĻĒāϰ āĻšāϝāĻŧ.
āĻāĻāĻž āĻŦāϞāĻžāϰ āĻ āĻĒā§āĻā§āώāĻž āϰāĻžāĻā§ āύāĻž āϝ⧠āĻāĻŽāĻžāϰ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻā§āύ⧠āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻāĻŋāϞ āύāĻžāĨ¤
āĻāĻŽāĻŋ āĻā§āĻŦ āĻļā§āώ āĻĒāϰā§āϝāύā§āϤ āĻ
āĻāĻļāĻā§āϰāĻšāĻŖ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āĻāϰā§āĻāĻŋ āϝāϤāĻā§āώāĻŖ āύāĻž āĻāĻŽāĻŋ āĻĒāĻžāϰāϤāĻžāĻŽ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻāĻāĻŋ āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āύāĻŋāĻŦāύā§āϧ āϞāĻŋāĻāϤ⧠āĻĒāĻžāϰāĻŋ, āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻŋ āĻĒā§āϰāĻĨāĻŽāĻāĻŋāϤā§āĻ āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧā§āĻāĻŋāϞāĻžāĻŽāĨ¤ āĻāĻŽāĻŋ āĻŦāĻšā§ āϏā§āĻŦāĻžāĻā§āώāϰ āϏāĻš FunC āĻāĻŦāĻ āĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻŽāĻŋ āĻāĻāĻžāĻā§ āĻāĻŋāϤā§āϤāĻŋ āĻšāĻŋāϏā§āĻŦā§ āύāĻŋāϝāĻŧā§āĻāĻŋ .
āϏā§āĻ āϏāĻŽāϝāĻŧā§, āĻāĻŽāĻŋ āĻā§āĻŦā§āĻāĻŋāϞāĻžāĻŽ āϝ⧠āĻāĻāĻŋ āĻ āĻŦāĻļā§āϝāĻ āĻ āύā§āϤāϤ āĻāĻŋāĻā§ āĻĒā§āϰāϏā§āĻāĻžāϰā§āϰ āĻāĻžāϝāĻŧāĻāĻž āύāĻŋāϤ⧠āϝāĻĨā§āώā§āĻ āĻāĻŋāϞāĨ¤ āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, 40 āĻāύ āĻ āĻāĻļāĻā§āϰāĻšāĻŖāĻāĻžāϰā§āϰ āĻŽāϧā§āϝ⧠āĻĒā§āϰāĻžāϝāĻŧ 60 āĻāύ āĻĒā§āϰāϏā§āĻāĻžāϰ āĻŦāĻŋāĻāϝāĻŧā§ āĻšāϝāĻŧā§āĻāĻŋāϞā§āύ āĻāĻŦāĻ āĻāĻŽāĻŋ āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻŋāϞāĻžāĻŽ āύāĻžāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§, āĻāϤ⧠āĻā§āύāĻ āĻā§āϞ āύā§āĻ, āϤāĻŦā§ āĻāĻāĻāĻŋ āĻāĻŋāύāĻŋāϏ āĻāĻŽāĻžāĻā§ āĻŦāĻŋāϰāĻā§āϤ āĻāϰā§āĻāĻŋāϞāĨ¤ āĻĢāϞāĻžāĻĢāϞ āĻā§āώāĻŖāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāĻžāϰ āĻā§āĻā§āϤāĻŋāϰ āĻāύā§āϝ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĒāϰā§āϝāĻžāϞā§āĻāύāĻž āĻāϰāĻž āĻšāϝāĻŧāύāĻŋ, āĻāĻŽāĻŋ āĻā§āϝāĻžāĻā§ āĻ āĻāĻļāĻā§āϰāĻšāĻŖāĻāĻžāϰā§āĻĻā§āϰ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰā§āĻāĻŋāϞāĻžāĻŽ āϝ⧠āĻāĻāĻŋ āĻāĻŋāϞ āύāĻž āĻāĻŽāύ āĻ āύā§āϝ āĻā§āĻ āĻāĻā§ āĻāĻŋāύāĻž, āϏā§āĻāĻžāύ⧠āĻā§āĻ āύā§āĻāĨ¤
āϏā§āĻĒāώā§āĻāϤāĻ āĻāĻŽāĻžāϰ āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋāϤ⧠āĻŽāύā§āϝā§āĻ āĻĻāĻŋāϝāĻŧā§, āĻĻā§āĻ āĻĻāĻŋāύ āĻĒāϰ⧠āĻŦāĻŋāĻāĻžāϰāĻāϰāĻž āĻāĻāĻāĻŋ āĻŽāύā§āϤāĻŦā§āϝ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āĻā§āύ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻāύāĻ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻāĻŋ āύāĻž āϝ⧠āϤāĻžāϰāĻž āĻŦāĻŋāĻāĻžāϰā§āϰ āϏāĻŽāϝāĻŧ āĻā§āϞāĻŦāĻļāϤ āĻāĻŽāĻžāϰ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāĻāĻŋ āĻŽāĻŋāϏ āĻāϰā§āĻā§ āύāĻžāĻāĻŋ āĻā§āĻŦāϞ āĻā§āĻŦā§āĻāĻŋāϞ āϝ⧠āĻāĻāĻŋ āĻāϤ āĻāĻžāϰāĻžāĻĒ āĻāĻŋāϞ āϝ⧠āĻāĻāĻŋāϰ āĻā§āύāĻ āĻŽāύā§āϤāĻŦā§āϝā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āύā§āĻāĨ¤ āĻāĻŽāĻŋ āĻĒā§āώā§āĻ āĻžāϝāĻŧ āĻāĻāĻāĻŋ āĻĒā§āϰāĻļā§āύ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰā§āĻāĻŋ, āĻāĻŋāύā§āϤ⧠āĻāĻāĻāĻŋ āĻāϤā§āϤāϰ āĻĒāĻžāĻāύāĻŋāĨ¤ āϝāĻĻāĻŋāĻ āĻā§ āĻŦāĻŋāĻāĻžāϰ āĻāϰā§āĻā§ āϤāĻž āĻā§āĻĒāύ āύāϝāĻŧ, āĻāĻŽāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻŦāĻžāϰā§āϤāĻž āϞā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻāĻŋāĻā§ āĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻŦāϞ⧠āĻŽāύ⧠āĻāϰā§āĻāĻŋāĨ¤
āĻŦā§āĻāĻžāϰ āĻāύā§āϝ āĻ āύā§āĻ āϏāĻŽāϝāĻŧ āĻŦā§āϝāϝāĻŧ āĻšāϝāĻŧā§āĻāĻŋāϞ, āϤāĻžāĻ āĻāĻāĻāĻŋ āύāĻŋāĻŦāύā§āϧ āϞā§āĻāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻāĻŋāϞāĨ¤ āϝā§āĻšā§āϤ⧠āĻāĻāύāĻ āĻ āύā§āĻ āϤāĻĨā§āϝ āύā§āĻ, āϤāĻžāĻ āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻā§āϰāĻšā§ āĻĒā§āϰāϤā§āϝā§āĻā§āϰ āĻāύā§āϝ āϏāĻŽāϝāĻŧ āĻŦāĻžāĻāĻāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤
TON-āĻ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āϧāĻžāϰāĻŖāĻž
āĻāĻĒāύāĻŋ āĻāĻŋāĻā§ āϞāĻŋāĻāĻžāϰ āĻāĻā§, āĻāĻĒāύāĻžāĻā§ āĻāĻ āĻāĻŋāύāĻŋāϏāĻāĻŋ āĻā§āύ āĻĻāĻŋāĻ āĻĨā§āĻā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻ āϤāĻāĻŦ, āĻāĻāύ āĻāĻŽāĻŋ āĻāĻĒāύāĻžāĻā§ āĻŦāϞāĻŦ āϝ⧠āϏāĻŋāϏā§āĻā§āĻŽāĻāĻŋ āĻā§ āĻ āĻāĻļ āύāĻŋāϝāĻŧā§ āĻāĻ āĻŋāϤāĨ¤ āĻāϰāĻ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§, āĻāĻŽāĻĒāĻā§āώ⧠āĻā§āύāĻ āϧāϰāĻŖā§āϰ āĻāĻžāĻā§āϰ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāϤ⧠āĻāĻĒāύāĻžāϰ āĻā§āύ āĻ āĻāĻļāĻā§āϞāĻŋ āĻāĻžāύāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāϤ⧠āĻāĻŦāĻ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāĻĒāϰ āĻĢā§āĻāĻžāϏ āĻāϰāĻŦ TON Virtual Machine (TVM), Fift и FunC, āϤāĻžāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻāĻāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽā§āϰ āĻŦāĻŋāĻāĻžāĻļā§āϰ āĻŦāϰā§āĻŖāύāĻžāϰ āĻŽāϤā§āĨ¤ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻāĻŋ āĻāĻāĻžāύ⧠āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻž āĻāĻŽāϰāĻž āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻŦ āύāĻžāĨ¤
āϏāĻžāϧāĻžāϰāĻŖāĻāĻžāĻŦā§ āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠TVM āĻāĻŦāĻ āĻāĻžāώāĻž Fift āĻāĻžāϞ āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻāĻā§. āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϝāĻŧ āĻ
āĻāĻļāĻā§āϰāĻšāĻŖ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āĻāĻāύ āĻŦāϰā§āϤāĻŽāĻžāύ āĻā§āĻā§āϤāĻŋ āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ āϤāĻžāϰ āĻĻāĻŋāĻā§ āĻĢāĻŋāϰ⧠āϝāĻžāĻāĨ¤
āĻĒā§āϰāϧāĻžāύ āĻāĻžāώāĻž āϝāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞā§āĻāĻž āĻšāϝāĻŧ FunC. āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠āĻāĻāĻŋāϰ āĻāĻĒāϰ āĻā§āύ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āύā§āĻ, āϤāĻžāĻ āĻāĻŋāĻā§ āϞā§āĻāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āĻĨā§āĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻāĻŦāĻ āϏā§āĻāĻžāύ⧠āĻāĻžāώāĻž āĻĒā§āϰāϝāĻŧā§āĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋ āĻ
āϧā§āϝāϝāĻŧāύ āĻāϰāϤ⧠āĻšāĻŦā§, āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāύāĻŋ āĻŦāĻŋāĻāϤ āĻĻā§āĻāĻŋ āĻĨā§āĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻž āύāĻŋāĻŦāύā§āϧā§āϰ āĻļā§āώ⧠āϞāĻŋāĻā§āĻ.
āϧāϰāĻž āϝāĻžāĻ āĻāĻŽāϰāĻž āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻā§āĻāĻŋ FunC, āĻāϰ āĻĒāϰ⧠āĻāĻŽāϰāĻž āĻā§āĻĄāĻāĻŋ āĻĢāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāϏā§āĻŽā§āĻŦāϞāĻžāϰ⧠āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻŋāĨ¤
āϏāĻāĻāϞāĻŋāϤ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āĻŦāĻžāĻāĻŋ āĻāĻā§āĨ¤ āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āϞāĻŋāĻāϤ⧠āĻšāĻŦā§ Fift, āϝāĻž āĻāύāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻā§āĻĄ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻ
āύā§āϝāĻžāύā§āϝ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āϏāĻš āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āĻšāĻŦā§ .boc (āϝāĻžāϰ āĻ
āϰā§āĻĨ "āĻā§āώā§āϰ āĻŦā§āϝāĻžāĻ"), āĻāĻŦāĻ, āĻāĻŽāϰāĻž āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āϞāĻŋāĻāĻŋ āϤāĻžāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§, āĻāĻāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§ āĻāĻŦāĻ āĻ āĻŋāĻāĻžāύāĻž, āϝāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻā§āĻĄā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧāĨ¤ āĻāĻĒāύāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āύ āϝāĻž āĻāĻāύāĻ āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϝāĻŧāύāĻŋāĨ¤
TON āĻĒā§āϰāĻžāĻĒā§āϤ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāϤ⧠.boc āĻĢāĻžāĻāϞāĻāĻŋ āĻāĻāĻāĻŋ āĻšāĻžāϞāĻāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦā§āϞāĻāĻā§āĻāύ⧠āĻĒāĻžāĻ āĻžāϤ⧠āĻšāĻŦā§ (āύā§āĻā§ āĻāϰāĻ āĻŦā§āĻļāĻŋ)āĨ¤ āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻžāϰ āĻāĻā§, āĻāĻĒāύāĻžāĻā§ āĻā§āύāĻžāϰā§āĻ āĻāϰāĻž āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻā§āϰāĻžāĻŽ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻšāĻŦā§, āĻ
āύā§āϝāĻĨāĻžāϝāĻŧ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āĻšāĻŦā§ āύāĻžāĨ¤ āĻĒā§āϰāĻāĻžāĻļā§āϰ āĻĒāϰā§, āĻāĻĒāύāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻāĻŋāĻā§ āĻŦāĻžāĻāϰ⧠āĻĨā§āĻā§ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āĻšāĻžāϞāĻāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§) āĻŦāĻž āĻāĻŋāϤāϰ āĻĨā§āĻā§ āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻŋāϝāĻŧā§ āĻāύā§āĻāĻžāϰāĻ
ā§āϝāĻžāĻā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ TON-āĻāϰ āĻāĻŋāϤāϰ⧠āĻāϰā§āĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāϝāĻŧ)āĨ¤
āĻāĻāĻŦāĻžāϰ āĻāĻŽāϰāĻž āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻŋ āϝ⧠āĻā§āĻĄāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻāĻŋ āϏāĻšāĻ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻžāύāĻŋ āĻāĻŽāϰāĻž āĻāĻŋ āϞāĻŋāĻāϤ⧠āĻāĻžāĻ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻāĻžāĻ āĻāϰāĻŦā§āĨ¤ āĻāĻŦāĻ āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻā§āĻāĻžāĻŦā§ āĻĒā§āϰāϝāĻŧā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āϤāĻž āϏāύā§āϧāĻžāύ āĻāϰāĻŋ, āĻŦāĻž āĻāĻŽāϰāĻž āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻāĻŋ Fift и FunC āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϤā§, āĻ
āĻĨāĻŦāĻž āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻĻā§āĻā§āύāĨ¤
āĻā§āĻŦ āĻĒā§āϰāĻžāϝāĻŧāĻ āĻāĻŽāĻŋ āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽ āĻā§āϝāĻžāĻā§ āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄāĻā§āϞāĻŋ āĻ āύā§āϏāύā§āϧāĻžāύ āĻāϰāĻŋ āϝā§āĻāĻžāύ⧠āϏāĻŽāϏā§āϤ āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϝāĻŧ āĻ āĻāĻļāĻā§āϰāĻšāĻŖāĻāĻžāϰ⧠āĻāĻŦāĻ āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽ āĻāϰā§āĻŽāĻāĻžāϰā§āϰāĻž āĻāĻāϤā§āϰāĻŋāϤ āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŽāύ āĻšāϝāĻŧā§āĻāĻŋāϞ āϝ⧠āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻž āĻāϞāĻžāĻāĻžāϞā§āύ āϏāĻŦāĻžāĻ āϏā§āĻāĻžāύ⧠āĻāĻĄāĻŧā§ āĻšāϝāĻŧā§āĻāĻŋāϞ āĻāĻŦāĻ āĻĢāĻŋāĻĢā§āĻ āĻāĻŦāĻ āĻĢāĻžāύāϏāĻŋ āύāĻŋāϝāĻŧā§ āĻāϞā§āĻāύāĻž āĻļā§āϰ⧠āĻāϰā§āĻāĻŋāϞāĨ¤ āύāĻŋāĻŦāύā§āϧā§āϰ āĻļā§āώ⧠āϞāĻŋāĻā§āĻ.
āϤāϤā§āϤā§āĻŦ āĻĨā§āĻā§ āĻ āύā§āĻļā§āϞāύ⧠āϝāĻžāĻāϝāĻŧāĻžāϰ āϏāĻŽāϝāĻŧ āĻāϏā§āĻā§āĨ¤
TON āĻāϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĒāϰāĻŋāĻŦā§āĻļ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāϰā§āĻāĻŋāĻā§āϞ⧠āϝāĻž āϝāĻž āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāĻŦā§, āĻāĻŽāĻŋ āĻŽā§āϝāĻžāĻāĻāĻāϏ-āĻ āϤāĻžāϰ āϏāĻŦāĻāĻŋāĻā§ āĻāϰā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻĒāϰāĻŋāĻŦā§āĻļā§ āϤāĻž āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠āĻĻā§āĻā§āĻāĻŋāĨ¤ Ubuntu āĻĄāĻāĻžāϰ⧠18.04 LTSāĨ¤
āĻĒā§āϰāĻĨāĻŽā§ āĻāĻĒāύāĻžāĻā§ āϝāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻšāϞ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāĻŦāĻ āĻāύāϏā§āĻāϞ āĻāϰā§āύ 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.jsonTON āĻā§ āĻĒā§āϰāĻĨāĻŽ āĻ āύā§āϰā§āϧ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻāύ āϞāĻā§āĻ āĻāϰāĻž āϝāĻžāĻ lite-client.
cd ~/TON/build
./lite-client/lite-client -C ton-lite-client-test1.config.jsonāϝāĻĻāĻŋ āĻŦāĻŋāϞā§āĻĄāĻāĻŋ āϏāĻĢāϞ āĻšāϝāĻŧ, āϤāĻŦā§ āϞāĻā§āĻā§āϰ āĻĒāϰ⧠āĻāĻĒāύāĻŋ āύā§āĻĄā§āϰ āϏāĻžāĻĨā§ āĻšāĻžāϞāĻāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻā§āϰ āϏāĻāϝā§āĻā§āϰ āĻāĻāĻāĻŋ āϞāĻ āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤
[ 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āĻāϏā§āύ āĻāĻŽāϰāĻž āĻāĻ āύāĻŋāĻŦāύā§āϧ⧠āϝ⧠āĻāĻŽāĻžāύā§āĻĄāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ āϏā§āĻā§āϞāĻŋāϰ āϤāĻžāϞāĻŋāĻāĻž āĻāϰāĻŋāĨ¤
list of available commands:
last Get last block and state info from server
sendfile <filename> Load a serialized message from <filename> and send it to server
getaccount <addr> [<block-id-ext>] Loads the most recent state of specified account; <addr> is in [<workchain>:]<hex-or-base64-addr> format
runmethod <addr> [<block-id-ext>] <method-id> <params>... Runs GET method <method-id> of account <addr> with specified parameterslast ĐŋĐžĐģŅŅаĐĩŅ ĐŋĐžŅĐģĐĩĐ´ĐŊиК ŅОСдаĐŊĐŊŅĐš ĐąĐģĐžĐē Ņ ŅĐĩŅвĐĩŅа.
sendfile <filename> ĐžŅĐŋŅавĐģŅĐĩŅ Đ˛ TON ŅаКĐģ Ņ ŅООйŅĐĩĐŊиĐĩĐŧ, иĐŧĐĩĐŊĐŊĐž Ņ ĐŋĐžĐŧĐžŅŅŅ ŅŅОК ĐēĐžĐŧаĐŊĐ´Ņ ĐŋŅĐąĐģиĐēŅĐĩŅŅŅ ŅĐŧаŅŅ-ĐēĐžĐŊŅŅаĐēŅ Đ¸ СаĐŋŅŅĐžŅŅ Đē ĐŊĐĩĐŧŅ.
getaccount <addr> ĐˇĐ°ĐŗŅŅĐļаĐĩŅ ŅĐĩĐēŅŅĐĩĐĩ ŅĐžŅŅĐžŅĐŊиĐĩ ŅĐŧаŅŅ-ĐēĐžĐŊŅŅаĐēŅа Ņ ŅĐēаСаĐŊĐŊŅĐŧ адŅĐĩŅĐžĐŧ.
runmethod <addr> [<block-id-ext>] <method-id> <params> СаĐŋŅŅĐēаĐĩŅ get-ĐŧĐĩŅĐžĐ´Ņ ŅĐŧаŅŅĐēĐžĐŊŅŅаĐēŅа. āĻāĻāύ āĻāĻŽāϰāĻž āύāĻŋāĻā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāϤ⧠āĻĒā§āϰāϏā§āϤā§āϤāĨ¤
āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ
āϧāĻžāϰāĻŖāĻž
āĻāĻŽāĻŋ āĻāĻĒāϰ⧠āϝā§āĻŽāύ āϞāĻŋāĻā§āĻāĻŋ, āĻāĻŽāϰāĻž āϝ⧠āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāĻāĻŋ āϤāĻž āĻāĻāĻāĻŋ āϞāĻāĻžāϰāĻŋāĨ¤
āϤāĻĻā§āĻĒāϰāĻŋ, āĻāĻāĻŋ āĻā§āύāĻ āϞāĻāĻžāϰāĻŋ āύāϝāĻŧ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻāĻŋāĻ āĻāĻŋāύāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻ āĻāύā§āĻāĻž, āĻĻāĻŋāύ āĻŦāĻž āĻŽāĻžāϏ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻšāĻŦā§, āϤāĻŦā§ āĻāĻāĻāĻŋ āϤāĻžāϤā§āĻā§āώāĻŖāĻŋāĻ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻā§āĻā§āϤāĻŋāϰ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰ⧠N āĻā§āϰāĻžāĻŽ, āĻāĻŦāĻ āĻ
āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāĻāĻŋ āĻĢāĻŋāϰ⧠āĻĒāĻžāϝāĻŧ 2 * N āĻā§āϰāĻžāĻŽ āĻŦāĻž āĻšāĻžāϰāĻžāϝāĻŧāĨ¤ āĻāĻŽāϰāĻž āĻĒā§āϰāĻžāϝāĻŧ 40% āĻā§āϤāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϤā§āϰāĻŋ āĻāϰāĻŦāĨ¤ āϝāĻĻāĻŋ āĻĒā§āĻŽā§āύā§āĻā§āϰ āĻāύā§āϝ āĻĒāϰā§āϝāĻžāĻĒā§āϤ āĻā§āϰāĻžāĻŽ āύāĻž āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āϞā§āύāĻĻā§āύāĻāĻŋāĻā§ āĻāĻĒ-āĻāĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻŦāĨ¤
āϤāĻžāĻāĻžāĻĄāĻŧāĻž, āĻāĻāĻž āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āϝ⧠āĻŦāĻžāĻāĻŋ āϰāĻŋāϝāĻŧā§āϞ āĻāĻžāĻāĻŽā§ āĻāĻŦāĻ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻāĻāĻžāϰ⧠āĻĻā§āĻāĻž āϝāĻžāϝāĻŧ, āϝāĻžāϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰ⧠āϝ⧠āϏ⧠āĻāĻŋāϤā§āĻā§ āύāĻžāĻāĻŋ āĻšā§āϰā§āĻā§āĨ¤ āĻ āϤāĻāĻŦ, āĻāĻĒāύāĻžāĻā§ āĻāĻāĻāĻŋ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ āϝāĻž āϏāϰāĻžāϏāϰāĻŋ TON āĻĨā§āĻā§ āĻŦāĻžāĻāĻŋ āĻāĻŦāĻ āĻĢāϞāĻžāĻĢāϞ āĻĻā§āĻāĻžāĻŦā§āĨ¤
āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞā§āĻāĻž
āϏā§āĻŦāĻŋāϧāĻžāϰ āĻāύā§āϝ, āĻāĻŽāĻŋ FunC-āĻāϰ āĻāύā§āϝ āĻā§āĻĄāĻāĻŋ āĻšāĻžāĻāϞāĻžāĻāĻ āĻāϰā§āĻāĻŋ; āĻĒā§āϞāĻžāĻāĻāύāĻāĻŋ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞ āϏā§āĻā§āĻĄāĻŋāĻ āĻā§āĻĄ āĻ āύā§āϏāύā§āϧāĻžāύ⧠āĻĒāĻžāĻāϝāĻŧāĻž āĻāĻŦāĻ āĻāύāϏā§āĻāϞ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§; āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻšāĻ āĻžā§ āĻāĻŋāĻā§ āϝā§āĻ āĻāϰāϤ⧠āĻāĻžāύ, āĻāĻŽāĻŋ āĻĒā§āϞāĻžāĻāĻāύāĻāĻŋ āϏāϰā§āĻŦāĻāύā§āύāĻāĻžāĻŦā§ āĻāĻĒāϞāĻŦā§āϧ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻā§āĻ āĻāĻā§ āĻĢāĻŋāĻĢāĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻĒā§āϞāĻžāĻāĻāύ āϤā§āϰāĻŋ āĻāϰā§āĻā§, āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻāύāϏā§āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻŋāĻāϏāϏāĻŋāϤ⧠āĻā§āĻāĻā§ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāϏā§āύ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻāĻāĻāĻŋ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ āϤā§āϰāĻŋ āĻāϰāĻŋ āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻĢāϞāĻžāĻĢāϞāĻā§āϞāĻŋ āĻāĻŽāĻŋāĻ āĻāϰāĻŦāĨ¤
āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻŦāύ āϏāĻšāĻ āĻāϰāϤā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāĻŦ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āύāĻž āĻšāĻāϝāĻŧāĻž āĻĒāϰā§āϝāύā§āϤ āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦāĨ¤ āϤāĻžāϰ āĻĒāϰā§āĻ āĻāĻŽāϰāĻž āĻāĻāĻŋ TON-āĻ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻŦāĨ¤
āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻĻā§āĻāĻŋ āĻŦāĻžāĻšā§āϝāĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻ
ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻĒā§āϰāĻĨāĻŽ, recv_external() āĻāĻ āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻž āĻšāϝāĻŧ āϝāĻāύ āĻā§āĻā§āϤāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻ
āύā§āϰā§āϧ āĻŦāĻžāĻāϰā§āϰ āĻŦāĻŋāĻļā§āĻŦ āĻĨā§āĻā§ āĻāϏā§, āĻ
āϰā§āĻĨāĻžā§ TON āĻĨā§āĻā§ āύāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϝāĻāύ āĻāĻŽāϰāĻž āύāĻŋāĻā§āϰāĻžāĻ āĻāĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻž āϤā§āϰāĻŋ āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻāĻŋ āϞāĻžāĻāĻ-āĻā§āϞāĻžāϝāĻŧā§āύā§āĻā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻ āĻžāĻāĨ¤ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ, recv_internal() āĻāĻāĻŋ āĻšāϞ āϝāĻāύ, TON-āĻāϰ āĻŽāϧā§āϝā§āĻ, āϝā§āĻā§āύ⧠āĻā§āĻā§āϤāĻŋ āĻāĻŽāĻžāĻĻā§āϰāĻā§ āĻŦā§āĻāĻžāϝāĻŧāĨ¤ āĻāĻāϝāĻŧ āĻā§āώā§āϤā§āϰā§āĻ, āĻāĻĒāύāĻŋ āĻĢāĻžāĻāĻļāύ⧠āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻĒāĻžāϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāϏā§āύ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰāĻŋ āϝāĻž āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϞ⧠āĻāĻžāĻ āĻāϰāĻŦā§, āϤāĻŦā§ āĻāϤ⧠āĻā§āύ āĻāĻžāϰā§āϝāĻāϰ⧠āϞā§āĻĄ āύā§āĻāĨ¤
() recv_internal(slice in_msg) impure {
;; TODO: implementation
}
() recv_external(slice in_msg) impure {
;; TODO: implementation
}āĻāĻāĻžāύ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻā§ āϤāĻž āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāϤ⧠āĻšāĻŦā§ slice. TON āĻŦā§āϞāĻāĻā§āĻāύ⧠āϏāĻāϰāĻā§āώāĻŋāϤ āϏāĻŽāϏā§āϤ āĻĄā§āĻāĻž āĻāĻāĻāĻŋ āϏāĻāĻā§āϰāĻš 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āĻāĻŽāϰāĻž āĻĢāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāϏā§āĻŽā§āĻŦāϞāĻžāϰ āĻā§āĻĄ āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰā§āĻāĻŋ 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, āĻāĻāĻŋ āĻĢāĻŋāĻĢāĻ āĻ
ā§āϝāĻžāϏā§āĻŽā§āĻŦāϞāĻžāϰā§āϰ āĻāύā§āϝ āĻĢāĻŋāĻĢāĻā§ āϞā§āĻāĻž āĻā§āĻĄāĨ¤
āϝā§āĻšā§āϤ⧠āĻāĻŽāϰāĻž āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāĻ, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻŦ 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 // to run recv_internal()
-1 constant recv_external // to invoke recv_external()Đ c7 āĻāĻŽāϰāĻž āĻĒā§āϰāϏāĻā§āĻ āϰā§āĻāϰā§āĻĄ āĻāϰāĻŋ, āĻ
āϰā§āĻĨāĻžā§ āϝ⧠āĻĄā§āĻāĻž āĻĻāĻŋāϝāĻŧā§ TVM (āĻŦāĻž āύā§āĻāĻāϝāĻŧāĻžāϰā§āĻ āϏā§āĻā§āĻ) āĻāĻžāϞ⧠āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻŽāύāĻāĻŋ āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϰ āϏāĻŽāϝāĻŧāĻ āĻāĻāĻāύ āĻĄā§āĻā§āϞāĻĒāĻžāϰ āĻĻā§āĻāĻŋāϝāĻŧā§āĻā§āύ āĻāĻŋāĻāĻžāĻŦā§ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻšāϝāĻŧ c7 āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻĒāĻŋ āĻāϰā§āĻāĻŋāĨ¤ āĻāĻ āύāĻŋāĻŦāύā§āϧ⧠āĻāĻŽāϰāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϤ⧠āĻĒāĻžāϰ⧠rand_seed āϝā§āĻšā§āϤ⧠āĻāĻāĻāĻŋ āĻāϞā§āĻŽā§āϞ⧠āϏāĻāĻā§āϝāĻžāϰ āĻĒā§āϰāĻāύā§āĻŽ āĻāĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻāĻŦāĻ āϝāĻĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāϰāĻž āĻšāϝāĻŧ āϤāĻŦā§ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻāĻāĻ āϏāĻāĻā§āϝāĻžāĻāĻŋ āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻž āĻšāĻŦā§āĨ¤
recv_internal и recv_external 0 āĻāĻŦāĻ -1 āĻŽāĻžāύ āϏāĻš āϧā§āϰā§āĻŦāĻāĻā§āϞāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻĢāĻžāĻāĻļāύāĻā§āϞāĻŋāĻā§ āĻāϞ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĻāĻžāϝāĻŧā§ āĻšāĻŦā§āĨ¤
āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāϞāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻāύā§āϝ āĻĒā§āϰāĻĨāĻŽ āĻĒāϰā§āĻā§āώāĻž āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻĒā§āϰāϏā§āϤā§āϤāĨ¤ āϏā§āĻĒāώā§āĻāϤāĻžāϰ āĻāύā§āϝ, āĻāĻĒāĻžāϤāϤ āĻāĻŽāϰāĻž āĻāĻāĻ āĻĢāĻžāĻāϞ⧠āϏāĻŽāϏā§āϤ āĻĒāϰā§āĻā§āώāĻž āϝā§āĻ āĻāϰāĻŦ lottery-test-suite.fif.
āĻāϞā§āύ āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžāĻ storage āĻāĻŦāĻ āĻāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻāĻžāϞāĻŋ āϞāĻŋāĻā§āύ cell, āĻāĻāĻŋ āĻšāĻŦā§ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻ āϏā§āĻā§āϰā§āĻāĨ¤
message āĻāĻāĻŋ āĻāĻŽāύ āĻŦāĻžāϰā§āϤāĻž āϝāĻž āĻāĻŽāϰāĻž āĻŦāĻžāĻāϰ⧠āĻĨā§āĻā§ āϏā§āĻŽāĻžāϰā§āĻ āϝā§āĻāĻžāϝā§āĻā§ āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻŦāĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻŋāĻā§ āĻāĻĒāĻžāϤāϤ āĻāĻžāϞāĻŋ āĻāϰ⧠āĻĻā§āĻŦāĨ¤
variable storage
<b b> storage !
variable message
<b b> message ! āĻāĻŽāϰāĻž āϧā§āϰā§āĻŦāĻ āĻāĻŦāĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠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] steps: 5 gas: used=304, max=9223372036854775807, limit=9223372036854775807, credit=0āĻĻā§āϰā§āĻĻāĻžāύā§āϤ, āĻāĻŽāϰāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻĒā§āϰāĻĨāĻŽ āĻāĻžāϰā§āϝāĻāĻžāϰ⧠āϏāĻāϏā§āĻāϰāĻŖ āϞāĻŋāĻā§āĻāĻŋāĨ¤
āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻž āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻĒā§āϰāĻĨāĻŽā§ āĻŦāĻžāĻāϰā§āϰ āĻŦāĻŋāĻļā§āĻŦ āĻĨā§āĻā§ āĻāϏāĻž āĻŦāĻžāϰā§āϤāĻžāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāϞāĻž āĻāϰāĻž āϝāĻžāĻ⧎ recv_external()
āĻĄā§āĻā§āϞāĻĒāĻžāϰ āύāĻŋāĻā§āĻ āĻŦāĻžāϰā§āϤāĻž āĻŦāĻŋāύā§āϝāĻžāϏ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰ⧠āϝāĻž āĻā§āĻā§āϤāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻāĻŋāύā§āϤ⧠āϏāĻžāϧāĻžāϰāĻŖāϤ
- āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻŽāϰāĻž āĻŦāĻšāĻŋāϰā§āĻŦāĻŋāĻļā§āĻŦ āĻĨā§āĻā§ āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻā§āϤāĻŋ āϰāĻā§āώāĻž āĻāϰāϤ⧠āĻāĻžāĻ āĻāĻŦāĻ āĻāĻāĻŋ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻžāĻ āϝāĻžāϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻā§āĻā§āϤāĻŋāϰ āĻŽāĻžāϞāĻŋāĻ āĻāĻāĻŋāϤ⧠āĻŦāĻžāĻšā§āϝāĻŋāĻ āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤
- āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāϤ, āϝāĻāύ āĻāĻŽāϰāĻž TON-āĻ āĻāĻāĻāĻŋ āĻŦā§āϧ āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāĻ, āϤāĻāύ āĻāĻŽāϰāĻž āĻāĻžāĻ āϝ⧠āĻāĻāĻŋ āĻ āĻŋāĻ āĻāĻāĻŦāĻžāϰ āĻāĻā§āĻ āĻāĻŦāĻ āϝāĻāύ āĻāĻŽāϰāĻž āĻāĻāĻ āĻŦāĻžāϰā§āϤāĻž āĻāĻŦāĻžāϰ āĻĒāĻžāĻ āĻžāĻ, āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϤāĻž āĻĒā§āϰāϤā§āϝāĻžāĻā§āϝāĻžāύ āĻāϰā§āĨ¤
āϤāĻžāĻ āĻĒā§āϰāĻžāϝāĻŧ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻā§āĻā§āϤāĻŋ āĻāĻ āĻĻā§āĻāĻŋ āϏāĻŽāϏā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻāϰā§, āϝā§āĻšā§āϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻā§āϤāĻŋ āĻŦāĻžāĻšā§āϝāĻŋāĻ āĻŦāĻžāϰā§āϤāĻž āĻā§āϰāĻšāĻŖ āĻāϰā§, āϤāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋāϰāĻ āϝāϤā§āύ āύā§āĻāϝāĻŧāĻž āĻĻāϰāĻāĻžāϰāĨ¤
āĻāĻŽāϰāĻž āĻāĻāĻŋ āĻŦāĻŋāĻĒāϰā§āϤ āĻā§āϰāĻŽā§ āĻāϰāĻŦāĨ¤ āĻĒā§āϰāĻĨāĻŽāϤ, āĻāϏā§āύ āĻĒā§āύāϰāĻžāĻŦā§āϤā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻŽāϏā§āϝāĻžāĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻŋ; āϝāĻĻāĻŋ āĻā§āĻā§āϤāĻŋāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻāĻŽāύ āĻāĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻž āĻĒā§āϝāĻŧā§ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰ⧠āϤāĻŦā§ āĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻŦāĻžāϰ āĻāĻāĻŋ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻŦā§ āύāĻžāĨ¤ āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āϏāĻŽāϏā§āϝāĻžāĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻāϰāĻŦ āϝāĻžāϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻŦā§āϤā§āϤāĻ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻĄā§āĻĒā§āϞāĻŋāĻā§āĻ āĻŽā§āϏā§āĻ āĻĻāĻŋāϝāĻŧā§ āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āĻāĻĒāĻžāϝāĻŧ āĻāĻā§āĨ¤ āĻāĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻāĻāĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāϰāĻŦ. āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤā§, āĻāĻŽāϰāĻž āĻĒā§āϰāĻžāĻĒā§āϤ āĻŦāĻžāϰā§āϤāĻžāϰ āĻāĻžāĻāύā§āĻāĻžāϰāĻāĻŋāĻā§ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻŽāĻžāύ 0 āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰāĻŋāĨ¤ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻŦāĻžāϰā§āϤāĻžāϝāĻŧ, āĻāĻŽāϰāĻž āĻŦāϰā§āϤāĻŽāĻžāύ āĻāĻžāĻāύā§āĻāĻžāϰ āĻŽāĻžāύ āϝā§āĻ āĻāϰāĻŦāĨ¤ āϝāĻĻāĻŋ āĻŽā§āϏā§āĻā§ āĻāĻžāĻāύā§āĻāĻžāϰ āĻā§āϝāĻžāϞ⧠āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻā§āϰ āĻŽāĻžāύā§āϰ āϏāĻžāĻĨā§ āĻŽā§āϞ⧠āύāĻž, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āĻāĻāĻž āĻĒā§āϰāϏā§āϏ āĻāϰāĻŋ āύāĻž; āϝāĻĻāĻŋ āĻāĻāĻž āĻšāϝāĻŧā§ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āϏā§āĻāĻž āĻĒā§āϰāϏā§āϏ āĻāϰāĻŋ āĻāĻŦāĻ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻā§ āĻāĻžāĻāύā§āĻāĻžāϰāĻāĻŋ 1 āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻžāĻĄāĻŧāĻžāĻāĨ¤
āĻāϰ āĻĢāĻŋāϰ⧠āĻāϏāĻž āϝāĻžāĻ lottery-test-suite.fif āĻāĻŦāĻ āĻāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒāϰā§āĻā§āώāĻž āϝā§āĻ āĻāϰā§āύāĨ¤ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻā§āϞ āύāĻŽā§āĻŦāϰ āĻĒāĻžāĻ āĻžāϞā§, āĻā§āĻĄ āĻāĻāĻāĻŋ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻž āĻāĻāĻŋāϤ. āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻā§āĻā§āϤāĻŋāϰ āĻĄā§āĻāĻž 166 āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĻāĻŋāύ āĻāĻŦāĻ āĻāĻŽāϰāĻž 165 āĻĒāĻžāĻ āĻžāĻŦāĨ¤
<b 166 32 u, b> storage !
<b 165 32 u, b> message !
message @
recv_external
code
storage @
c7
runvmctx
drop
exit_code !
."Exit code " exit_code @ . cr
exit_code @ 33 - abort"Test #2 Not passed"āĻāϰ āϞāĻā§āĻ āĻāϰāĻž āϝāĻžāĻ.
~/TON/build/crypto/fift -s lottery-test-suite.fif āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻĻā§āĻāĻŦ āϝ⧠āĻĒāϰā§āĻā§āώāĻžāĻāĻŋ āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋāϰ āϏāĻžāĻĨā§ āϏāĻŽā§āĻĒāĻžāĻĻāĻŋāϤ āĻšāϝāĻŧā§āĻā§āĨ¤
[ 1][t 0][1582283084.210902214][words.cpp:3046] lottery-test-suite.fif:67: abort": Test #2 Not passed
[ 1][t 0][1582283084.210941076][fift-main.cpp:196] Error interpreting file `lottery-test-suite.fif`: error interpreting included file `lottery-test-suite.fif` : lottery-test-suite.fif:67: abort": Test #2 Not passedāĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ lottery-test-suite.fif āĻŽāϤ āĻĻā§āĻāϤ⧠āĻšāĻŦā§ .
āĻāĻāύ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻĒāĻžāϞā§āĻāĻž āϝā§āĻā§āϤāĻŋ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ lottery-code.fc.
() recv_internal(slice in_msg) impure {
;; TODO: implementation
}
() 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-āĻ skirt code āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ, āϝāĻž āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž āĻĢāĻžāĻāϞā§āϰ āύāĻāϞ āĻāϰāĻŦā§ 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 "nCompilation completedn"
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-Ņ
йиŅĐŊĐžĐĩ ŅĐĩĐģĐžĐĩ ĐŋĐžĐģĐžĐļиŅĐĩĐģŅĐŊĐžĐĩ ŅиŅĐģĐž ŅŅĐĩŅŅиĐē.
`pubkey` 256-Ņи йиŅĐŊĐžĐĩ ŅĐĩĐģĐžĐĩ ĐŋĐžĐģĐžĐļиŅĐĩĐģŅĐŊĐžĐĩ ŅиŅĐģĐž ĐŋŅĐąĐģиŅĐŊŅĐš ĐēĐģŅŅ, Ņ ĐŋĐžĐŧĐžŅŅŅ ĐēĐžŅĐžŅĐžĐŗĐž, ĐŧŅ ĐąŅĐ´ĐĩĐŧ ĐŋŅОвĐĩŅŅŅŅ ĐŋОдĐŋиŅŅ ĐžŅĐŋŅавĐģĐĩĐŊĐŊĐžĐŗĐž иСвĐŊĐĩ ŅООйŅĐĩĐŊиŅ, Đž ŅĐĩĐŧ ĐŊиĐļĐĩ.
`order_seqno` 32-Ņ
йиŅĐŊĐžĐĩ ŅĐĩĐģĐžĐĩ ĐŋĐžĐģĐžĐļиŅĐĩĐģŅĐŊĐžĐĩ ŅиŅĐģĐž Ņ
ŅаĐŊĐ¸Ņ ŅŅĐĩŅŅиĐē ĐēĐžĐģиŅĐĩŅŅва ŅŅавОĐē.
`number_of_wins` 32-Ņ
йиŅĐŊĐžĐĩ ŅĐĩĐģĐžĐĩ ĐŋĐžĐģĐžĐļиŅĐĩĐģŅĐŊĐžĐĩ ŅиŅĐģĐž Ņ
ŅаĐŊĐ¸Ņ ĐēĐžĐģиŅĐĩŅŅвО ĐŋОйĐĩĐ´.
`incoming_amount` ŅиĐŋ даĐŊĐŊŅŅ
Gram (ĐŋĐĩŅвŅĐĩ 4 йиŅа ĐžŅвĐĩŅаĐĩŅ ĐˇĐ° Đ´ĐģиĐŊŅ), Ņ
ŅаĐŊĐ¸Ņ ĐžĐąŅĐĩĐĩ ĐēĐžĐģиŅĐĩŅŅвО ĐŗŅаĐŧОв, ĐēĐžŅĐžŅŅĐĩ ĐąŅĐģи ĐžŅĐŋŅавĐģĐĩĐŊŅ ĐŊа ĐēĐžĐŊŅŅŅаĐēŅ.
`outgoing_amount` ОйŅĐĩĐĩ ĐēĐžĐģиŅĐĩŅŅвО ĐŗŅаĐŧОв, ĐēĐžŅĐžŅĐžĐĩ ĐąŅĐģĐž ĐžŅĐŋŅавĐģĐĩĐŊĐž ĐŋОйĐĩдиŅĐĩĐģŅĐŧ.
`owner_wc` ĐŊĐžĐŧĐĩŅ Đ˛ĐžŅĐēŅĐĩĐšĐŊа, 32-Ņ
йиŅĐŊĐžĐĩ (в ĐŊĐĩĐēĐžŅĐžŅŅŅ
ĐŧĐĩŅŅаŅ
ĐŊаĐŋиŅаĐŊĐž, ŅŅĐž 8-Đŧи йиŅĐŊĐžĐĩ) ŅĐĩĐģĐžĐĩ ŅиŅĐģĐž. РдаĐŊĐŊŅĐš ĐŧĐžĐŧĐĩĐŊŅ Đ˛ŅĐĩĐŗĐž два -1 и 0.
`owner_account_id` 256-Ņи йиŅĐŊĐžĐĩ ŅĐĩĐģĐžĐĩ ĐŋĐžĐģĐžĐļиŅĐĩĐģŅĐŊĐžĐĩ ŅиŅĐģĐž, адŅĐĩŅ ĐēĐžĐŊŅŅаĐēŅа в ŅĐĩĐēŅŅĐĩĐŧ вОŅĐēŅĐĩĐšĐŊĐĩ.
`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.
variable owner_private_key
variable owner_public_key
variable orders
variable owner_wc
variable owner_account_id
"./keys/owner.pk" file>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, 0 32 u, 0 32 u, 0 Gram, 0 Gram, owner_wc @ 32 i, owner_account_id @ 256 u, orders @ dict, b> storage !āĻāϰ āĻĒāϰā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āϏā§āĻŦāĻžāĻā§āώāϰāĻŋāϤ āĻŦāĻžāϰā§āϤāĻž āϰāĻāύāĻž āĻāϰāĻŦ, āĻāϤ⧠āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϏā§āĻŦāĻžāĻā§āώāϰ āĻāĻŦāĻ āĻāĻžāĻāύā§āĻāĻžāϰ āĻŽāĻžāύ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻĒā§āϰāĻĨāĻŽā§, āĻāĻŽāϰāĻž āϝ⧠āĻĄā§āĻāĻž āĻĒā§āϰā§āϰāĻŖ āĻāϰāϤ⧠āĻāĻžāĻ āϤāĻž āϤā§āϰāĻŋ āĻāϰāĻŋ, āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§ āĻĻāĻŋāϝāĻŧā§ āϏā§āĻŦāĻžāĻā§āώāϰ āĻāϰāĻŋ āĻāĻŦāĻ āĻ āĻŦāĻļā§āώ⧠āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āϏā§āĻŦāĻžāĻā§āώāϰāĻŋāϤ āĻŦāĻžāϰā§āϤāĻž āϤā§āϰāĻŋ āĻāϰāĻŋāĨ¤
variable message_to_sign
variable message_to_send
variable signature
<b 0 32 u, b> message_to_sign !
message_to_sign @ hashu owner_private_key @ ed25519_sign_uint signature !
<b signature @ B, 0 32 u, b> <s message_to_send ! āĻĢāϞāϏā§āĻŦāϰā§āĻĒ, āĻāĻŽāϰāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āϝ⧠āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻĒāĻžāĻ āĻžāĻŦ āϤāĻž āĻāĻāĻāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻļā§āϞ āĻšāĻŋāϏāĻžāĻŦā§ āϰā§āĻāϰā§āĻĄ āĻāϰāĻž āĻšāϝāĻŧ 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() āĻāĻŽāϰāĻž āĻĻā§āĻ āϧāϰāύā§āϰ āĻŦāĻžāϰā§āϤāĻž āĻā§āϰāĻšāĻŖ āĻāϰāĻŦāĨ¤
āϝā§āĻšā§āϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻā§āϤāĻŋ āĻā§āϞā§āϝāĻŧāĻžāĻĄāĻŧāĻĻā§āϰ āĻā§āώāϤāĻŋ āĻĒā§āώāĻŋāϝāĻŧā§ āύā§āĻŦā§, āϤāĻžāĻ āĻāĻ āĻ āϰā§āĻĨ āĻ āĻŦāĻļā§āϝāĻ āϞāĻāĻžāϰāĻŋāϰ āύāĻŋāϰā§āĻŽāĻžāϤāĻžāϰ āĻāĻžāĻā§ āĻšāϏā§āϤāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻā§āĻā§āϤāĻŋ āϤā§āϰāĻŋ āĻšāϞ⧠āϞāĻāĻžāϰāĻŋ āύāĻŋāϰā§āĻŽāĻžāϤāĻžāϰ āĻāϝāĻŧāĻžāϞā§āĻ āĻ āĻŋāĻāĻžāύāĻž āϏā§āĻā§āϰā§āĻā§ āϰā§āĻāϰā§āĻĄ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻ āĻŋāĻ āϏā§āĻ āĻā§āώā§āϤā§āϰā§, āĻāĻŽāĻžāĻĻā§āϰ āϏā§āĻ āĻ āĻŋāĻāĻžāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āĻĻāϰāĻāĻžāϰ āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻšāĻžāϰāĻžāύā§āϰ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāĻāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āϞāĻāĻžāϰāĻŋ āĻĨā§āĻā§ āĻŽāĻžāϞāĻŋāĻā§āϰ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāϤā§āĻ āϏāĻā§āώāĻŽ āĻšāĻāϝāĻŧāĻž āĻāĻāĻŋāϤāĨ¤
āĻĒā§āϰāĻĨāĻŽāĻāĻž āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰāĻž āϝāĻžāĻāĨ¤ āĻāϏā§āύ āĻĒā§āϰāĻĨāĻŽā§ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āϞāĻŋāĻāĻŋ āϝāĻž āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŦā§ āϝ⧠āĻŦāĻžāϰā§āϤāĻž āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰā§, āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϏā§āĻā§āϰā§āĻā§ āύāϤā§āύ āĻ āĻŋāĻāĻžāύāĻž āϏāĻāϰāĻā§āώāĻŖ āĻāϰā§āĻā§āĨ¤ āĻĻāϝāĻŧāĻž āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āϝ⧠āĻŦāĻžāϰā§āϤāĻžāϝāĻŧ, āĻāĻžāĻāύā§āĻāĻžāϰ āĻāĻŦāĻ āύāϤā§āύ āĻ āĻŋāĻāĻžāύāĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāϰāĻž āĻĒā§āϰā§āϰāĻŖ āĻāϰāĻŋ action āĻāĻāĻāĻŋ 7-āĻŦāĻŋāĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āύāύ-āύā§āĻā§āĻāĻŋāĻ āύāĻŽā§āĻŦāϰ, āĻāĻāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§, āĻāĻŽāϰāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āϤāĻž āĻŦā§āĻā§ āύā§āĻŦāĨ¤
<b 0 32 u, 1 @ 7 u, new_owner_wc @ 32 i, new_owner_account_id @ 256 u, b> message_to_sign !āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻāĻĒāύāĻŋ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āĻāĻŋāĻāĻžāĻŦā§ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻ āϏā§āĻā§āϰā§āĻ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻ āĻāϰāĻž āĻšāϝāĻŧ storage āĻĒāĻā§āĻāĻžāĻļā§ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āĻĄāĻŋāϏāĻŋāϰāĻŋāϝāĻŧāĻžāϞāĻžāĻāĻā§āĻļāύ āĻĢāĻŋāĻĢāĻ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ⧠āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤
āϝā§āĻ āĻāϰāĻž āĻŽāϝāĻŧāĻĻāĻžāϰ āϏāĻžāĻĨā§āĨ¤
āĻāϏā§āύ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāĻ āĻāĻŦāĻ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻŋ āϝ⧠āĻāĻāĻŋ āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤ āĻāĻāύ āϞāĻāĻžāϰāĻŋāϰ āĻŽāĻžāϞāĻŋāĻā§āϰ āĻ āĻŋāĻāĻžāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āϝā§āĻā§āϤāĻŋ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻāĨ¤
āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻāĻŽāϰāĻž āĻĒāĻžāϰā§āϏ āĻāϰāϤ⧠āĻĨāĻžāĻāĻŋ message, āĻĒāĻĄāĻŧā§āύ action. āĻāĻŽāĻžāĻĻā§āϰ āĻŽāύ⧠āĻāϰāĻŋāϝāĻŧā§ āĻĻā§āĻāϝāĻŧāĻž āϝāĻžāĻ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĻā§āĻāĻŋ āĻĨāĻžāĻāĻŦā§ action: āĻ āĻŋāĻāĻžāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāύāĨ¤
āϤāĻžāϰāĻĒāϰ⧠āĻāĻŽāϰāĻž āĻā§āĻā§āϤāĻŋāϰ āĻŽāĻžāϞāĻŋāĻā§āϰ āύāϤā§āύ āĻ āĻŋāĻāĻžāύāĻž āĻĒāĻĄāĻŧāĻŋ āĻāĻŦāĻ āϏā§āĻā§āϰā§āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŋāĨ¤
āĻāĻŽāϰāĻž āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāĻ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āϝ⧠āϤā§āϤā§āϝāĻŧ āĻĒāϰā§āĻā§āώāĻž āĻŦā§āϝāϰā§āĻĨ āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ āĻā§āϰā§āϝāĻžāĻļ āĻšāϝāĻŧ āĻāĻ āĻāĻžāϰāĻŖā§ āϝ⧠āĻā§āĻā§āϤāĻŋāĻāĻŋ āĻāĻāύ āĻŦāĻžāϰā§āϤāĻž āĻĨā§āĻā§ 7 āĻŦāĻŋāĻāĻā§āϞāĻŋāĻā§ āĻĒāĻžāϰā§āϏ āĻāϰā§, āϝāĻž āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻ
āύā§āĻĒāϏā§āĻĨāĻŋāϤāĨ¤ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āĻ
āϏā§āϤāĻŋāϤā§āĻŦāĻšā§āύ āϝā§āĻā§āϤ āĻāϰā§āύ⧎ action. āĻāϏā§āύ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻžāĻ āĻāĻŦāĻ āĻĻā§āĻāĻŋ āϝ⧠āϏāĻŦāĻāĻŋāĻā§ āĻĒāĻžāϏ āĻšāϝāĻŧāĨ¤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋāĻŦāĻĻā§āϧāĨ¤ āĻĻāĻžāϰā§āĻŖāĨ¤
āĻāĻāύ āĻāĻā§ āϏāĻāϰāĻā§āώāĻŋāϤ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϏāĻāĻā§āϝāĻ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāύā§āϰ āϝā§āĻā§āϤāĻŋ āϞāĻŋāĻāĻŋāĨ¤
āĻĒā§āϰāĻĨāĻŽ, āĻāϏā§āύ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āϞāĻŋāĻā§āύ. āĻāĻŽāϰāĻž āĻĻā§āĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āϞāĻŋāĻāĻŦ, āĻāĻāĻāĻŋ āϝāĻāύ āĻĒāϰā§āϝāĻžāĻĒā§āϤ āĻāĻžāϰāϏāĻžāĻŽā§āϝ āύā§āĻ, āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻŋ āϝāĻāύ āϏāĻŦāĻāĻŋāĻā§ āϏāĻĢāϞāĻāĻžāĻŦā§ āĻĒāĻžāϏ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤ āĻĒāϰā§āĻā§āώāĻž āĻĻā§āĻāĻž āϝāĻžāĻŦā§ .
āĻāĻāύ āĻā§āĻĄ āϝā§āĻ āĻāϰāĻž āϝāĻžāĻ. āĻĒā§āϰāĻĨāĻŽā§ āĻĻā§āĻāĻŋ āϏāĻšāĻžāϝāĻŧāĻ āĻĒāĻĻā§āϧāϤāĻŋ āϞāĻŋāĻāĻŋāĨ¤ āĻĒā§āϰāĻĨāĻŽ āĻĒā§āϰāĻžāĻĒā§āϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻšāϞ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āĻŦā§āϝāĻžāϞā§āύā§āϏ āĻā§āĻāĻā§ āĻŦā§āϰ āĻāϰāĻžāĨ¤
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 <= format indicator int_msg_info$0
;; .store_uint(1, 1) ;; 1 <= ihr disabled
;; .store_uint(1, 1) ;; 1 <= bounce = true
;; .store_uint(0, 1) ;; 0 <= bounced = false
;; .store_uint(4, 5) ;; 00100 <= address flags, anycast = false, 8-bit workchain
.store_uint (196, 9)
.store_int(wc, 8)
.store_uint(addr, 256)
.store_grams(grams)
.store_uint(0, 107) ;; 106 zeroes + 0 as an indicator that there is no cell with the data.
.end_cell();
send_raw_message(msg, 3); ;; mode, 2 for ignoring errors, 1 for sender pays fees, 64 for returning inbound message value
}āĻāϏā§āύ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻāĻ āĻĻā§āĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āϝā§āĻā§āϤ āĻāϰāĻŋ āĻāĻŦāĻ āϝā§āĻā§āϤāĻŋ āϞāĻŋāĻāĻŋāĨ¤ āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻŽāϰāĻž āĻŦāĻžāϰā§āϤāĻž āĻĨā§āĻā§ āĻā§āϰāĻžāĻŽ āϏāĻāĻā§āϝāĻž āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāϰāĻŋāĨ¤ āĻĒāϰāĻŦāϰā§āϤ⧠āĻāĻŽāϰāĻž āĻāĻžāϰāϏāĻžāĻŽā§āϝ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻŋ, āϝāĻĻāĻŋ āĻāĻāĻŋ āϝāĻĨā§āώā§āĻ āύāĻž āĻšāϝāĻŧ āϤāĻŦā§ āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻŦā§āϝāϤāĻŋāĻā§āϰāĻŽ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŋāĨ¤ āϝāĻĻāĻŋ āϏāĻŦāĻāĻŋāĻā§ āĻ āĻŋāĻ āĻĨāĻžāĻā§, āϤāĻžāĻšāϞ⧠āĻāĻŽāϰāĻž āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋ āϏāĻāϰāĻā§āώāĻŋāϤ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāĻ āĻāĻŦāĻ āĻāĻžāĻāύā§āĻāĻžāϰāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāϰāĻŋāĨ¤
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-āĻŦāĻŋāĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āĻāĻŦāĻ āĻāĻ āĻāϝāĻŧāĻžāϰā§āĻāĻā§āĻāύ⧠āĻāĻāĻāĻŋ 256-āĻŦāĻŋāĻ āύāύ-āύā§āϤāĻŋāĻŦāĻžāĻāĻ āĻĒā§āϰā§āĻŖāϏāĻāĻā§āϝāĻž āĻ āύāύā§āϝ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻ āύāĻŽā§āĻŦāϰāĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, -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āĻāϞā§āύ āĻĻā§āĻāĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻĢāĻžāĻāĻļāύ āĻāĻžāĻ āĻāϰā§, āĻāĻāĻŋ āĻĢāĻŋāĻĢā§āĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āϤāĻž āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻŦā§āĨ¤ āĻāύā§āĻāĻžāϰā§āĻā§āĻāĻŋāĻ āĻŽā§āĻĄā§ āĻĢāĻŋāĻĢā§āĻ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤
~/TON/build/crypto/fift -i āĻĒā§āϰāĻĨāĻŽā§ āĻāĻŽāϰāĻž -1, 12345 āĻāĻŦāĻ āĻāĻŦāĻŋāώā§āϝāϤ āĻĢāĻžāĻāϞā§āϰ āύāĻžāĻŽ "sender.addr" āϏā§āĻā§āϝāĻžāĻā§āϰ āĻāĻĒāϰ⧠āĻĒā§āĻļ āĻāϰāĻŋ:
-1 12345 "sender.addr" āĻĒāϰāĻŦāϰā§āϤ⧠āϧāĻžāĻĒ āĻšāϞ āĻĢāĻžāĻāĻļāύ āĻāĻžāϞāĻžāύ⧠-rot, āϝāĻž āϏā§āĻā§āϝāĻžāĻāĻāĻŋāĻā§ āĻāĻŽāύāĻāĻžāĻŦā§ āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰāĻŋāϤ āĻāϰ⧠āϝ⧠āϏā§āĻā§āϝāĻžāĻā§āϰ āĻļā§āϰā§āώ⧠āĻāĻāĻāĻŋ āĻ
āύāύā§āϝ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āύāĻŽā§āĻŦāϰ āϰāϝāĻŧā§āĻā§:
"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) { ;; ignore bounced
return ();
}
if (order_amount < 500000000) { ;; just receive grams without changing state
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() < 2 * order_amount + 500000000) { ;; not enough grams to pay the bet back, so this is re-fill
builder order = pack_order(order_seqno, 1, 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));
return ();
}
if (rand(10) >= 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
(Saving address to file lottery.addr)
Non-bounceable address (for init): 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd
Bounceable address (for later access): kQAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KpFYāĻļā§āϧ⧠āĻŽāĻāĻž āĻāϰāĻžāϰ āĻāύā§āϝ, āĻāϏā§āύ TON āĻā§ āĻāĻāĻāĻŋ āĻ āύā§āϰā§āϧ āĻāϰāĻŋ
$ ./lite-client/lite-client -C ton-lite-client-test1.config.json
getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydāĻāĻŦāĻ āĻāĻŽāϰāĻž āĻĻā§āĻāĻŦ āϝ⧠āĻāĻ āĻ āĻŋāĻāĻžāύāĻžāϰ āĻ ā§āϝāĻžāĻāĻžāĻāύā§āĻāĻāĻŋ āĻāĻžāϞāĻŋ āϰāϝāĻŧā§āĻā§āĨ¤
account state is emptyāĻāĻŽāϰāĻž āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻĒāĻžāĻ āĻžāĻ 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd 2 āĻā§āϰāĻžāĻŽ āĻāĻŦāĻ āĻāϝāĻŧā§āĻ āϏā§āĻā§āύā§āĻĄ āĻĒāϰ⧠āĻāĻŽāϰāĻž āĻāĻāĻ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻŋāĨ¤ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāϤ⧠āĻāĻŽāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŋ , āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻā§āϝāĻžāĻ āĻĨā§āĻā§ āĻāĻžāĻāĻā§ āĻĒāϰā§āĻā§āώāĻžāϰ āĻā§āϰāĻžāĻŽāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻžāϰ āĻŦāĻŋāώāϝāĻŧā§ āĻāĻŽāĻŋ āύāĻŋāĻŦāύā§āϧā§āϰ āĻļā§āώ⧠āĻāĻĨāĻž āĻŦāϞāĻŦāĨ¤
> getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydāĻāĻāĻāĻŋ āĻ
āĻĒā§āϰāĻāϞāĻŋāϤ āĻŽāϤ āĻĻā§āĻāĻžāĻā§āĻā§ (state:account_uninit) āĻāĻāĻ āĻ āĻŋāĻāĻžāύāĻžāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻāĻŦāĻ 1 āύā§āϝāĻžāύā§āĻā§āϰāĻžāĻŽā§āϰ āĻŦā§āϝāĻžāϞā§āύā§āϏāĨ¤
account state is (account
addr:(addr_std
anycast:nothing workchain_id:0 address:x044910149DBEAF8EADBB2B28722E7D6A2DC6E264EC2F1D9BEBD6FB209079BC2A)
storage_stat:(storage_info
used:(storage_used
cells:(var_uint len:1 value:1)
bits:(var_uint len:1 value:103)
public_cells:(var_uint len:0 value:0)) last_paid:1583257959
due_payment:nothing)
storage:(account_storage last_trans_lt:3825478000002
balance:(currencies
grams:(nanograms
amount:(var_uint len:4 value:2000000000))
other:(extra_currencies
dict:hme_empty))
state:account_uninit))
x{C00044910149DBEAF8EADBB2B28722E7D6A2DC6E264EC2F1D9BEBD6FB209079BC2A20259C2F2F4CB3800000DEAC10776091DCD650004_}
last transaction lt = 3825478000001 hash = B043616AE016682699477FFF01E6E903878CDFD6846042BA1BFC64775E7AC6C4
account balance is 2000000000ngāĻāĻāύ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āϝāĻžāĻ. āĻāϏā§āύ āϞāĻžāĻāĻ-āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻžāϞ⧠āĻāϰāĻŋ āĻāĻŦāĻ āĻāĻžāϰā§āϝāĻāϰ āĻāϰāĻŋāĨ¤
> sendfile lottery-query.boc
[ 1][t 2][1583008371.631410122][lite-client.cpp:966][!testnode] sending query from file lottery-query.boc
[ 3][t 1][1583008371.828550100][lite-client.cpp:976][!query] external message status is 1 āĻā§āĻā§āϤāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻā§āĻ āĻāϰāĻž āϝāĻžāĻ.
> last
> getaccount 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8KsydāĻ āύā§āϝāĻžāύā§āϝ āĻāĻŋāύāĻŋāϏā§āϰ āĻŽāϧā§āϝ⧠āĻāĻŽāϰāĻž āĻĒā§āϤā§.
storage:(account_storage last_trans_lt:3825499000002
balance:(currencies
grams:(nanograms
amount:(var_uint len:4 value:1987150999))
other:(extra_currencies
dict:hme_empty))
state:(account_activeāĻāĻŽāϰāĻž āϝ⧠āĻĻā§āĻāϤ⧠account_active.
āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻžāĻĨā§ āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻĒā§āϰāϤāĻŋāĻļā§āϰā§āϤāĻŋ .
āĻāĻāύ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āϏāĻžāĻĨā§ āĻāύā§āĻāĻžāϰāĻ ā§āϝāĻžāĻā§āĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻ āύā§āϰā§āϧ āϤā§āϰāĻŋ āĻāϰāĻž āϝāĻžāĻāĨ¤
āĻāϰāĻ āϏā§āĻĒāώā§āĻ āĻāϰ⧠āĻŦāϞāϤ⧠āĻā§āϞā§, āĻāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āϏā§āĻŦāĻžāϧā§āύ āĻāĻžāĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻ āĻŋāĻāĻžāύāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻā§āĻĄāĻŧā§ āĻĻā§āĻŦ, āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻŽāĻžāϞāĻŋāĻā§āϰ āĻ āĻŋāĻāĻžāύāĻžāϝāĻŧ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāύā§āϝ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻŋ āĻāϰāĻŦ⧎ āĻĒā§āϰāĻā§āϤāĻĒāĻā§āώā§, āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāύā§āϰ āĻĒāϰā§āĻā§āώāĻžāϝāĻŧ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻ āĻāĻŋāύāĻŋāϏ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻāĻŽāϰāĻž āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϤ⧠āĻĒāĻžāĻ āĻžāĻŦ, āϝā§āĻāĻžāύ⧠msg_seqno 165, action āĻĒāĻžāĻ āĻžāύā§āϰ āĻāύā§āϝ 2 āĻāĻŦāĻ 9.5 āĻā§āϰāĻžāĻŽāĨ¤
<b 165 32 u, 2 7 u, 9500000000 Gram, b>āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ āĻā§ āĻĻāĻŋāϝāĻŧā§ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋāϤ⧠āϏā§āĻŦāĻžāĻā§āώāϰ āĻāϰāϤ⧠āĻā§āϞāĻŦā§āύ āύāĻž lottery.pk, āϝāĻž āĻāĻā§ āϤā§āϰāĻŋ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧāĨ¤ .
āĻĒā§āϰāĻžāĻĒā§āϤ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻāĻŋ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĨā§āĻā§ āϤāĻĨā§āϝ āĻā§āϰāĻšāĻŖ āĻāϰāĻž
āĻāĻāύ āĻĻā§āĻāĻž āϝāĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ āϏā§āĻŽāĻžāϰā§āĻ āĻāύā§āĻā§āϰāĻžāĻā§āĻ āĻā§āĻ āĻĒāĻĻā§āϧāϤāĻŋ āĻāĻžāϞāĻžāϤ⧠āĻšāϝāĻŧāĨ¤
āĻāĻžāϞāĻžāύ lite-client āĻāĻŦāĻ āĻāĻŽāϰāĻž āϞāĻŋāĻā§āĻāĻŋ āϝ⧠āĻĒā§āϤ⧠āĻĒāĻĻā§āϧāϤāĻŋ āĻāĻžāϞāĻžāύāĨ¤
$ ./lite-client/lite-client -C ton-lite-client-test1.config.json
> runmethod 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd balance
arguments: [ 104128 ]
result: [ 64633878952 ]
...Đ result āĻĢāĻžāĻāĻļāύ āϰāĻŋāĻāĻžāϰā§āύ āϝ⧠āĻŽāĻžāύ āϧāĻžāϰāĻŖ āĻāϰ⧠balance() āĻāĻŽāĻžāĻĻā§āϰ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĨā§āĻā§āĨ¤
āĻāĻŽāϰāĻž āĻāϰāĻ āĻāϝāĻŧā§āĻāĻāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻāύā§āϝ āĻāĻāĻ āĻāĻžāĻ āĻāϰāĻŦāĨ¤
> runmethod 0QAESRAUnb6vjq27KyhyLn1qLcbiZOwvHZvr1vsgkHm8Ksyd get_seqno
...
arguments: [ 77871 ]
result: [ 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]) ] āĻāĻŽāϰāĻž āϞāĻžāĻāĻ-āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻŦ āĻāĻŦāĻ āϏāĻžāĻāĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāϰā§āĻļāύā§āϰ āĻāύā§āϝ āĻĒāĻĻā§āϧāϤāĻŋāĻā§āϞāĻŋ āĻĒāĻžāĻŦāĨ¤
āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāĻž āĻšāĻā§āĻā§
āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻāĻĒāĻžāϝāĻŧā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āĻĨā§āĻā§ āĻĄā§āĻāĻž āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻĒāĻžāĻāĻĨāύ⧠āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻ āϞāĻŋāĻā§āĻāĻŋāĨ¤ āĻāĻāĻžāύ⧠āĻāĻŽāĻŋ āĻŦāĻŋāĻļāĻĻāĻāĻžāĻŦā§ āĻāĻāĻŋāϤ⧠āĻĨāĻžāĻāĻŦ āύāĻž āĻāĻŦāĻ āϏāĻžāĻāĻāĻāĻŋ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻŦ .
TON āĻĨā§āĻā§ āĻ
āύā§āϰā§āϧ āĻāϰāĻž āĻšāϝāĻŧ Python āϏāĻžāĻšāĻžāϝā§āϝ⧠lite-client. āϏā§āĻŦāĻŋāϧāĻžāϰ āĻāύā§āϝ, āϏāĻžāĻāĻāĻāĻŋ āĻĄāĻāĻžāϰ⧠āĻĒā§āϝāĻžāĻā§āĻ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ Google āĻā§āϞāĻžāĻāĻĄā§ āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϝāĻŧā§āĻā§ā§ˇ .
āĻā§āώā§āĻāĻž āĻāϰāĻā§
āĻāĻāύ āĻāϰ āĻĨā§āĻā§ āĻĒā§āύāϰāĻžāϝāĻŧ āĻĒā§āϰāĻŖā§āϰ āĻāύā§āϝ āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāύā§āϰ āĻā§āώā§āĻāĻž āĻāϰāĻž āϝāĻžāĻ . āĻāĻŽāϰāĻž 40 āĻā§āϰāĻžāĻŽ āĻĒāĻžāĻ āĻžāĻŦāĨ¤ āĻāĻŦāĻ āĻāϏā§āύ āϏā§āĻŦāĻā§āĻāϤāĻžāϰ āĻāύā§āϝ āĻāϝāĻŧā§āĻāĻāĻŋ āĻŦāĻžāĻāĻŋ āϤā§āϰāĻŋ āĻāϰāĻŋāĨ¤ āĻāĻŽāϰāĻž āĻĻā§āĻāϤ⧠āĻĒāĻžāĻ āϝ⧠āϏāĻžāĻāĻāĻāĻŋ āĻŦāĻžāĻāĻŋāϰ āĻāϤāĻŋāĻšāĻžāϏ, āĻŦāϰā§āϤāĻŽāĻžāύ āĻāϝāĻŧā§āϰ āĻļāϤāĻžāĻāĻļ āĻāĻŦāĻ āĻ āύā§āϝāĻžāύā§āϝ āĻĻāϰāĻāĻžāϰ⧠āϤāĻĨā§āϝ āĻĻā§āĻāĻžāϝāĻŧāĨ¤
āϝ⧠āĻāĻŽāϰāĻž āĻĒā§āϰāĻĨāĻŽ āĻāĻŋāϤā§āĻāĻŋ, āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧāĻāĻŋ āĻšā§āϰā§āĻāĻŋāĨ¤
āĻāϤā§āϤāϰāĻāĻžāώ
āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻāĻŽāĻžāϰ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻžāϰ āĻā§āϝāĻŧā§ āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āĻĻā§āϰā§āĻ āĻšāϤ⧠āĻĒāĻžāϰā§, āĻšāϝāĻŧāϤ⧠āĻāĻāĻŋ āĻā§āĻ āĻšāϤ⧠āĻĒāĻžāϰāϤ, āĻ āĻĨāĻŦāĻž āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻŽāύ āĻāĻāĻāύ āĻŦā§āϝāĻā§āϤāĻŋāϰ āĻāύā§āϝ āϝāĻŋāύāĻŋ TON āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻŋāĻā§āĻ āĻāĻžāύā§āύ āύāĻž āĻāĻŦāĻ āϤāĻžāϰ āϏāĻžāĻĨā§ āϝā§āĻāĻžāϝā§āĻ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āϏāĻš āĻāĻāĻāĻŋ āĻ āϤ-āϏāϰāϞ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϞāĻŋāĻāϤ⧠āĻāĻŦāĻ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāϤ⧠āĻāĻžāύāĨ¤ āĻāĻāĻž āĻšāϝāĻŧāϤ⧠āĻāĻŋāĻā§ āĻāĻŋāύāĻŋāϏ āĻāϰāĻ āϏāĻšāĻāĻāĻžāĻŦā§ āĻŦā§āϝāĻžāĻā§āϝāĻž āĻāϰāĻž āϝā§āϤāĨ¤
āϏāĻŽā§āĻāĻŦāϤ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāĻŋāĻā§ āĻĻāĻŋāĻ āĻāϰāĻ āĻĻāĻā§āώāϤāĻžāϰ āϏāĻžāĻĨā§ āĻāĻŦāĻ āĻŽāĻžāϰā§āĻāĻŋāϤāĻāĻžāĻŦā§ āĻāϰāĻž āϝā§āϤ, āϤāĻŦā§ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰāϤ⧠āĻāϰāĻ āĻŦā§āĻļāĻŋ āϏāĻŽāϝāĻŧ āϞāĻžāĻāϤāĨ¤ āĻāĻāĻžāĻ āϏāĻŽā§āĻāĻŦ āϝ⧠āĻāĻŽāĻŋ āĻā§āĻĨāĻžāĻ āĻā§āϞ āĻāϰā§āĻāĻŋ āĻŦāĻž āĻāĻŋāĻā§ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻŋāύāĻŋ, āϤāĻžāĻ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻā§āϰā§āϤāϰ āĻāĻŋāĻā§ āĻāϰāĻā§āύ āϤāĻŦā§ āĻāĻĒāύāĻžāĻā§ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻŦāĻž TON āĻā§āĻĄ āϏāĻš āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻāĻāĻŋ āĻāϞā§āϞā§āĻ āĻāϰāĻž āĻāĻāĻŋāϤ āϝ⧠āϝā§āĻšā§āϤ⧠TON āύāĻŋāĻā§āĻ āĻāĻāύāĻ āĻŦāĻŋāĻāĻžāĻļā§āϰ āϏāĻā§āϰāĻŋāϝāĻŧ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āϰāϝāĻŧā§āĻā§, āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻā§āϞāĻŋ āĻāĻāϤ⧠āĻĒāĻžāϰ⧠āϝāĻž āĻāĻ āύāĻŋāĻŦāύā§āϧā§āϰ āϝ⧠āĻā§āύāĻ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§ āĻā§āĻā§ āĻĢā§āϞāĻŦā§ (āϝāĻž āĻāĻŽāĻŋ āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻā§āĻāĻŋāϞ, āĻāĻāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āϏāĻāĻļā§āϧāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§), āϤāĻŦā§ āϏāĻžāϧāĻžāϰāĻŖ āĻĒāĻĻā§āϧāϤāĻŋāĻāĻŋ āĻšāϞ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āύā§āĻāĨ¤
āĻāĻŽāĻŋ TON āĻāϰ āĻāĻŦāĻŋāώā§āϝāϤ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻĨāĻž āĻŦāϞāĻŦ āύāĻžāĨ¤ āϏāĻŽā§āĻāĻŦāϤ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻŋāĻā§ āĻšāϝāĻŧā§ āĻāĻ āĻŦā§ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋ āĻ āϧā§āϝāϝāĻŧāύ āĻāϰāĻžāϰ āĻāύā§āϝ āϏāĻŽāϝāĻŧ āĻŦā§āϝāϝāĻŧ āĻāϰāĻž āĻāĻāĻŋāϤ āĻāĻŦāĻ āĻāĻāύ āĻāĻŽāĻžāĻĻā§āϰ āĻĒāĻŖā§āϝāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āϞā§āĻā§āĻāĻŋ āĻĒā§āϰāĻŖ āĻāϰāĻž āĻāĻāĻŋāϤāĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ Facebook āĻĨā§āĻā§ āϞāĻŋāĻŦā§āϰāĻž āϰāϝāĻŧā§āĻā§, āϝāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻļā§āϰā§āϤāĻž TON-āĻāϰ āĻĨā§āĻā§āĻ āĻŦāĻĄāĻŧāĨ¤ āĻāĻŽāĻŋ āϞāĻŋāĻŦā§āϰāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒā§āϰāĻžāϝāĻŧ āĻāĻŋāĻā§āĻ āĻāĻžāύāĻŋ āύāĻž, āĻĢā§āϰāĻžāĻŽā§āϰ āĻŦāĻŋāĻāĻžāϰ⧠TON āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧā§āϰ āϤā§āϞāύāĻžāϝāĻŧ āϏā§āĻāĻžāύ⧠āĻ āύā§āĻ āĻŦā§āĻļāĻŋ āĻāĻžāϰā§āϝāĻāϞāĻžāĻĒ āϰāϝāĻŧā§āĻā§āĨ¤ āϝāĻĻāĻŋāĻ TON-āĻāϰ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāϰ⧠āĻāĻŦāĻ āϏāĻŽā§āĻĒā§āϰāĻĻāĻžāϝāĻŧāĻā§āϞāĻŋ āĻāϰāĻ āĻŦā§āĻļāĻŋ āĻā§āĻāϰā§āĻāϏā§āĻĨ, āϝāĻž āĻļā§āϤāϞāĨ¤
āϰā§āĻĢāĻžāϰā§āύā§āϏ
- āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ TON āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ:
- āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ TON āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ:
- āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽā§āϰ āĻāύā§āϝ āĻ āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻāϝāĻŧāĻžāϞā§āĻ:
- āĻāĻ āύāĻŋāĻŦāύā§āϧ āĻĨā§āĻā§ āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ:
- āϏā§āĻŽāĻžāϰā§āĻ āĻā§āĻā§āϤāĻŋāϰ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āϞāĻŋāĻā§āĻ:
- FunC āĻāϰ āĻāύā§āϝ āĻāĻŋāĻā§āϝā§āϝāĻŧāĻžāϞ āϏā§āĻā§āĻĄāĻŋāĻ āĻā§āĻĄā§āϰ āĻāĻā§āϏāĻā§āύāĻļāύā§āϰ āĻāύā§āϝ āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ:
- āĻā§āϞāĻŋāĻā§āϰāĻžāĻŽā§ TON āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§āϝāĻžāĻ āĻāϰā§āύ, āϝāĻž āϏāϤā§āϝāĻŋāĻ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻāĻāĻŋ āĻŦā§āϰ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰā§āĻā§āĨ¤ āĻāĻŽāĻŋ āĻŽāύ⧠āĻāϰāĻŋ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āϞ āĻšāĻŦā§ āύāĻž āϝāĻĻāĻŋ āĻāĻŽāĻŋ āĻŦāϞāĻŋ āϝ⧠āϝāĻžāϰāĻž TON āĻāϰ āĻāύā§āϝ āĻāĻŋāĻā§ āϞāĻŋāĻā§āĻā§ āϏā§āĻāĻžāύ⧠āϏāĻŦāĻžāĻ āĻāĻā§āĨ¤ āĻāĻĒāύāĻŋ āϏā§āĻāĻžāύ⧠āĻā§āϏā§āĻ āĻā§āϰāĻžāĻŽāĻ āĻāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
- TON āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰā§āĻāĻāĻŋ āĻā§āϝāĻžāĻ āϝā§āĻāĻžāύ⧠āĻāĻŽāĻŋ āĻĻāϰāĻāĻžāϰ⧠āϤāĻĨā§āϝ āĻĒā§āϝāĻŧā§āĻāĻŋ:
- āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻĒāϰā§āϝāĻžāϝāĻŧ:
- āĻĒā§āϰāϤāĻŋāϝā§āĻāĻŋāϤāĻžāϰ āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻĒāϰā§āϝāĻžāϝāĻŧ:
āĻāϤā§āϏ: www.habr.com
