āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¯ā§ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻļā§āĻ¨ā§āĻā§āĻ¨
āĻ¸ā§āĻ°ā§āĻā§āĻ˛ āĻĻāĻ˛, āĻŦā§āĻšā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻžāĻĒāĻ āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§, āĻāĻāĻĒāĻžāĻļā§ āĻĻāĻžāĻāĻĄāĻŧāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ¯āĻŧ āĻĒāĻžāĻāĻāĻāĻ¨ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§āĻā§ āĻ āĻ°ā§āĻĒāĻŖ āĻāĻ°ā§āĻāĻŋ, āĻāĻŦāĻ āĻĻā§āĻ āĻ¸āĻĒā§āĻ¤āĻžāĻš āĻĒāĻ°ā§ āĻ¤āĻžāĻ°āĻž (āĻāĻ¨) āĻŦāĻŋāĻ¨āĻ¯āĻŧā§ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻĄāĻžāĻāĻ¨āĻžāĻŽ āĻ¸ā§āĻā§āĻ¸āĻŋ āĻāĻŋāĻ°āĻāĻŋāĻāĻŋāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻŋ āĻāĻĨāĻž āĻŦāĻ˛āĻŦ āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻž āĻāĻ°ā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¯ā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĻāĻļ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻ˛ā§āĻĒ āĻĒāĻĄāĻŧāĻŦā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤ā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ¤āĻŦā§ āĻāĻāĻā§ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻļāĻ°ā§āĻ¤āĻžāĻŦāĻ˛ā§
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻāĻŋāĻ˛ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ TON āĻāĻā§āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻāĻŋ 24 āĻ¸ā§āĻĒā§āĻā§āĻŽā§āĻŦāĻ° āĻĨā§āĻā§ 15 āĻ āĻā§āĻā§āĻŦāĻ° āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ˛ā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 15 āĻ¨āĻā§āĻŽā§āĻŦāĻ° āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻŦā§āĻļ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻ°ā§, āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽā§ āĻāĻŋāĻāĻāĻāĻĒāĻŋ āĻāĻ˛ā§āĻ° āĻā§āĻŖāĻŽāĻžāĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ C++-āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¨āĻāĻļāĻž āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻāĻŦāĻ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻ¯āĻŧā§āĻāĻāĻĻā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦāĻŋāĻ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĨā§āĻā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž TON-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻā§āĻāĻŋāĻ¨āĻŋāĻ¯āĻŧāĻžāĻ°āĻĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ TON-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ Haskell-āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻžāĻ° āĻĒāĻāĻ¨ā§āĻĻ āĻāĻāĻ¸ā§āĻŽāĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻžāĻā§
āĻā§āĻ¨ āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨āĻāĻŋ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ?
āĻ¸āĻāĻā§āĻˇā§āĻĒā§, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻļā§āĻˇā§āĻāĻ°āĻŖ āĻšāĻ˛ āĻ -āĻŽāĻžāĻ¨āĻ āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§āĻ° āĻāĻžāĻā§ āĻŦā§āĻā§āĻāĻžāĻ¨āĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯ā§āĻ°āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻĄā§āĻā§āĻ˛āĻĒāĻŽā§āĻ¨ā§āĻāĻā§ āĻĻā§āĻĸāĻŧāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻ° āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻāĻ°āĻŖā§ āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻāĻāĻŋ, āĻāĻŦāĻ āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻŦāĻŋāĻā§āĻāĻžāĻ¨ āĻāĻŦāĻ āĻāĻŖāĻŋāĻ¤ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¨ā§āĻ¤ā§āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻŦāĻŋāĻļā§āĻŦāĻŦāĻŋāĻĻā§āĻ¯āĻžāĻ˛āĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻšāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻāĻ°āĻŋāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ° āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻžāĻ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻā§āĻ˛āĻŋāĻā§āĻ°āĻžāĻŽ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻĄāĻŧāĻŋāĻ¤ āĻĨāĻžāĻāĻž āĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻĒā§āĻ°ā§āĻ°āĻŖāĻž āĻāĻŋāĻ˛, āĻ¤āĻŦā§ āĻĒā§āĻ°āĻ¸ā§āĻāĻžāĻ° āĻ¤āĻšāĻŦāĻŋāĻ˛ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ°āĻŖā§āĻĻāĻ¨āĻž āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§āĨ¤ đ
TON āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻāĻŦā§āĻˇāĻŖāĻž
āĻāĻŽāĻ°āĻž āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨, āĻā§āĻ¤ā§āĻ°āĻŋāĻŽ āĻŦā§āĻĻā§āĻ§āĻŋāĻŽāĻ¤ā§āĻ¤āĻž āĻāĻŦāĻ āĻŽā§āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻ-āĻ āĻ¨āĻ¤ā§āĻ¨ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻāĻ¨āĻŋāĻˇā§āĻ āĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¯ā§ āĻ¸āĻāĻ˛ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĒā§āĻ°āĻāĻžāĻļ āĻŽāĻŋāĻ¸ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋāĨ¤ āĻ
āĻ¤āĻāĻŦ, āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻžāĻĻā§āĻ° āĻĻāĻ˛ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻāĻŋāĻ˛
āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻļā§āĻ°ā§ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻā§āĻĄāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻ¤āĻžāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻāĻāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻāĻĄ āĻŦāĻž āĻ¸āĻžāĻ°āĻžāĻāĻļ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§. āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻāĻŋ āĻā§āĻ¨ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻ¯āĻŧāĻ¨āĻŋ - āĻāĻŦā§āĻ¨ā§āĻā§āĻ¤ā§ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ¨āĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻŽāĻ°āĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻāĻĒāĻāĻ°āĻŖ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¨āĻŋāĨ¤
āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻ¨āĻŋāĻā§āĻ āĻāĻžāĻ˛ āĻāĻŦā§āĻˇāĻŖāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻ˛āĻžāĻāĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻž āĻāĻ āĻŋāĻ¨ āĻāĻŋāĻ˛. āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĢāĻŋāĻ°ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻŦāĻŋāĻŽā§āĻ°ā§āĻ¤ āĻ§āĻžāĻ°āĻŖāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻā§āĻ-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĨā§āĻā§ āĻ¨āĻŋāĻŽā§āĻ¨-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖā§ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧāĨ¤
āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻž āĻĨāĻžāĻāĻ˛ā§ āĻāĻāĻŋ āĻ¸āĻšāĻ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻā§āĻāĻžāĻŦā§ āĻ¤āĻžāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ TON āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻŦā§āĻļāĻŋāĨ¤
āĻ¨āĻŋāĻā§āĻ¸: āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻāĻāĻ¸āĻžāĻĨā§ āĻ°āĻžāĻāĻž
āĻ¸ā§āĻ°ā§āĻā§āĻ˛ā§ āĻāĻŽāĻ°āĻž āĻŦāĻĄāĻŧ āĻāĻā§āĻ¤
āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋ
$ cd ~/.config/nixpkgs/overlays && git clone https://github.com/serokell/ton.nix
$ cd /path/to/ton/repo && nix-shell
[nix-shell]$ cmakeConfigurePhase && make
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¤āĻž āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤ āĻāĻĒāĻ¨āĻŋ NixOS, Ubuntu āĻŦāĻž macOS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻā§āĻ¨ āĻ¨āĻž āĻā§āĻ¨, Nix āĻāĻžāĻĻā§āĻāĻ°ā§āĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ°āĻŦā§āĨ¤
TON āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ
TON āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§āĻ° āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻāĻ¨ā§āĻā§āĻ°āĻžāĻā§āĻ āĻā§āĻĄ TON āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§ (TVM) āĻāĻ˛ā§āĨ¤ TVM āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛, āĻāĻŦāĻ āĻā§āĻŦ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻŋ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻ¤āĻž и āĻĄā§āĻāĻž āĻ˛āĻŋāĻā§āĻ.
āĻ¤āĻžāĻāĻžāĻĄāĻŧāĻž, TON-āĻāĻ° āĻā§āĻ˛ā§āĻ°āĻž āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§:
āĻĒāĻā§āĻāĻžāĻļ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¯āĻž āĻ
āĻ¨ā§āĻ°ā§āĻĒ
āĻĢāĻžāĻ¨āĻ¸āĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻ¯āĻž āĻ
āĻ¨ā§āĻ°ā§āĻĒ
āĻĒāĻā§āĻāĻŽ āĻ
ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ° â TVM-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻā§āĻŦāĻ˛ āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻā§āĻāĻŽ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĨ¤ āĻĒāĻā§āĻāĻŽ āĻ
ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ¨ā§āĻāĨ¤ āĻāĻ
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻāĻžāĻ āĻāĻ°ā§
āĻ āĻŦāĻļā§āĻˇā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ¸ā§āĻā§āĨ¤
āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻĒā§āĻŽā§āĻ¨ā§āĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛
āĻĒā§āĻŽā§āĻ¨ā§āĻ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¯āĻž āĻĻā§āĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻ āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻĒāĻžāĻ āĻžāĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ°ā§āĻĨ āĻ¸āĻžāĻļā§āĻ°āĻ¯āĻŧ āĻāĻ°ā§āĻ¨ āĻ¨āĻž (āĻā§āĻ¨ āĻāĻŽāĻŋāĻļāĻ¨ āĻ¨ā§āĻ), āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽāĻ¯āĻŧāĻ (āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻŦā§āĻ˛āĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž)āĨ¤ āĻĒā§āĻŽā§āĻ¨ā§āĻ āĻ¯āĻ¤āĻāĻž āĻā§āĻ āĻāĻŦāĻ āĻ¯āĻ¤āĻŦāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¤āĻ¤āĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒāĻā§āĻˇāĻā§āĻ˛āĻŋāĻā§ āĻāĻā§ āĻ āĻĒāĻ°āĻā§ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻˇā§āĻĒāĻ¤ā§āĻ¤āĻŋāĻ° āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯āĻ¤āĻž āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¸āĻšāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻĻā§āĻāĻŋ āĻĒāĻā§āĻˇ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋāĻ¤ā§ āĻĻā§āĻāĻŋ āĻ¨āĻŽā§āĻŦāĻ° āĻ°āĻ¯āĻŧā§āĻā§âāĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻ āĻĒāĻā§āĻˇā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĻāĻ¤ā§āĻ¤ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖāĨ¤ āĻāĻ āĻĻā§āĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻŽāĻ¤ āĻāĻžāĻ
āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, āĻāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻžāĻ āĻ¯āĻĨā§āĻˇā§āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¯āĻŧāĻ āĻā§āĻĄāĻŧā§ āĻĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻžāĻŦā§ āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻāĻāĻāĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻ āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻž, āĻ¯āĻĻāĻŋ āĻā§āĻ¨āĻ āĻāĻžāĻ°āĻŖā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻšāĻžāĻ°āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻŦā§, āĻ¯āĻĻāĻŋāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻŦāĻ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻŖāĻ¨āĻž āĻ¸āĻ āĻŋāĻ āĻšāĻŦā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻˇāĻ¤āĻŋāĻāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻ¨āĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ āĻ°ā§āĻĨāĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻļā§āĻāĻ°ā§āĻ¯āĻāĻ¨āĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻāĻŋ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ:
āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻŽā§āĻā§ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĨ¤āĻāĻŋāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛ , āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¤ āĻāĻāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻ āĻŋāĻāĻ¤āĻž āĻāĻŦāĻ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻŽāĻ¤ā§ āĻ āĻ¨ā§āĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻāĻž āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĻā§ āĻŦāĻŋāĻļāĻĻāĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻ
āĻ°ā§āĻĨāĻĒā§āĻ°ā§āĻŖ, āĻāĻ° āĻ¸āĻ āĻŋāĻāĻ¤āĻžāĻ° āĻĻāĻŋāĻā§ āĻŦāĻŋāĻļā§āĻˇ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻžāĨ¤ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻĒāĻ°ā§, āĻ¸ā§āĻĒā§āĻ¸āĻŋāĻĢāĻŋāĻā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻŽāĻ°āĻž FunC-āĻ¤ā§ āĻā§āĻā§āĻ¤āĻŋāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻāĻŋ, āĻāĻŦāĻ āĻ¸āĻāĻāĻ āĻāĻĻā§āĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻĢāĻŋāĻĢāĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ ā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻ˛āĻŋāĻā§āĻāĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° CLI-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ āĻāĻžāĻˇāĻž āĻŦā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻ¤āĻžāĻŽ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĢāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻāĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻāĻŋāĻ˛āĻžāĻŽ āĻ¯ā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻ¸āĻ¤ā§āĻ¯āĻŋ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§, āĻĢāĻŋāĻĢā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻ¸āĻ°āĻā§āĻāĻžāĻŽ āĻāĻŦāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸āĻš āĻāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻžāĻˇāĻžāĻā§āĻ˛āĻŋāĻ° āĻĨā§āĻā§ āĻāĻ āĻāĻžāĻˇāĻžāĻāĻŋāĻā§ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻžāĻ° āĻā§āĻ¨āĻ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§āĻ˛āĻ āĻāĻžāĻ°āĻŖ āĻĻā§āĻāĻŋāĻ¨āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻŦā§āĻļ āĻ āĻĒā§āĻ°ā§āĻ¤āĻŋāĻāĻ°, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻāĻĒāĻ° āĻā§ āĻāĻā§ āĻ¤āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻāĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§ āĻ¨āĻžāĨ¤
āĻ āĻ¤āĻāĻŦ, āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¤ā§, āĻĢāĻŋāĻĢā§āĻā§āĻ° āĻ āĻ¸ā§āĻ¤āĻŋāĻ¤ā§āĻŦā§āĻ° āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯āĻ¤āĻž āĻšāĻ˛ āĻĢāĻŋāĻĢā§āĻ āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ°ā§āĻ° āĻšā§āĻ¸ā§āĻ āĻāĻžāĻˇāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻ° āĻā§āĻŽāĻŋāĻāĻžāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻāĻāĻŽāĻžāĻ¤ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻĻā§āĻāĻžāĻŦāĻ¨ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŋāĻāĻŋāĻāĻŽ āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ°āĻā§ āĻāĻŋāĻā§ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻāĻŽā§āĻŦā§āĻĄ āĻāĻ°āĻž āĻāĻŋ āĻāĻžāĻ˛ āĻšāĻŦā§ āĻ¨āĻž?
TVM Haskell eDSL
āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ¸āĻŋāĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ FunC-āĻ¤ā§ āĻāĻ°ā§āĻāĻāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋ āĻ˛ā§āĻāĻž āĻā§āĻŦāĻ āĻŦāĻŋāĻ°āĻā§āĻ¤āĻŋāĻāĻ° āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ¸ā§āĻŦāĻžāĻĻ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻŧā§āĻāĻŋāĻ˛āĻžāĻŽ, āĻāĻŦāĻ āĻāĻāĻŋ TVM-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¸āĻŽāĻžāĻŦā§āĻļ āĻāĻžāĻˇāĻž āĻāĻŋāĻ˛āĨ¤
āĻĢāĻŋāĻĢā§āĻ āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻˇāĻž āĻāĻŽā§āĻŦā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻĢāĻŋāĻĢāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻšāĻžāĻ¸āĻā§āĻ˛āĻā§ āĻšā§āĻ¸ā§āĻ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻ° āĻāĻ¨ā§āĻ¨āĻ¤ āĻ§āĻ°āĻ¨ā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻŋāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻ°āĻ āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒāĻŋāĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻŽāĻ¤ā§, āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĨ¤
Haskell āĻ āĻāĻŽāĻŦā§āĻĄ āĻāĻ°āĻž TVM āĻ ā§āĻ¯āĻžāĻ¸ā§āĻŽā§āĻŦāĻ˛āĻžāĻ° āĻĻā§āĻāĻ¤ā§ āĻā§āĻŽāĻ¨ āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻ°ā§āĻļ āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻāĻ āĻā§āĻā§āĻ¤āĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻ¤ āĻā§āĻļāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻšā§āĻ¸ā§āĻ āĻ˛ā§āĻ¯āĻžāĻā§āĻā§āĻ¯āĻŧā§āĻ (āĻ¯ā§āĻŽāĻ¨ āĻšāĻžāĻ¸ā§āĻā§āĻ˛) āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻ¨, āĻ¤āĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° eDSL āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻŋāĻāĻŋāĻāĻŽ-āĻ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ°ā§āĻāĻŋāĻ¨ āĻšāĻ¯āĻŧā§ āĻāĻ āĻ¤ā§ āĻāĻžāĻ¨ āĻ¨āĻžāĻāĻŋ āĻāĻ˛ā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻā§āĻŦāĻ˛ āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨āĨ¤
- āĻšāĻžāĻ¸ā§āĻā§āĻ˛ā§āĻ° āĻŽāĻ¤ā§, āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ§āĻ°āĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĄāĻŋāĻāĻ¸āĻāĻ˛-āĻ, āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨āĻĒā§āĻ āĻĒā§āĻ°āĻāĻžāĻ°āĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻ¯āĻž āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°āĻāĻŋ āĻšāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻ¯āĻž āĻāĻ˛ā§āĻ° āĻĒāĻ°ā§ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻšāĻŦā§āĨ¤
- āĻā§āĻĄā§ āĻā§āĻāĻž āĻāĻā§
stacktype
, āĻāĻ˛ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻļāĻŋāĻ¤ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻ¸āĻ˛ āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ¤ā§ āĻāĻā§āĻ˛āĻŋ āĻā§āĻŦāĻ˛ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° eDSL-āĻ āĻāĻā§āĻ˛āĻŋ āĻāĻ¸āĻ˛ā§ āĻā§āĻĄā§āĻ° āĻ āĻāĻļ āĻāĻŦāĻ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§ˇ āĻāĻā§āĻ˛āĻŋ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻŦāĻž āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯āĻž āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°ā§ āĻ¯āĻĻāĻŋ āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻāĻž āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻ¨āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨ā§ TVM āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ - āĻāĻāĻŋ āĻāĻāĻ¨āĻ āĻĻā§āĻ āĻ¸āĻĒā§āĻ¤āĻžāĻšā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ˛ā§āĻāĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ, āĻ¤āĻžāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻāĻ¨āĻ āĻ āĻ¨ā§āĻ āĻāĻžāĻ āĻāĻ°āĻž āĻŦāĻžāĻāĻŋ āĻāĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¨ā§āĻā§āĻ° āĻā§āĻĄā§ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻā§āĻ˛āĻžāĻ¸āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻā§āĻ¨ āĻ¤āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĄāĻŋāĻāĻ¸āĻāĻ˛-āĻ āĻāĻāĻāĻŋ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻ¸āĻŋāĻ āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻāĻ°āĻāĻŽ āĻĻā§āĻāĻžāĻā§āĻā§:
main :: IO ()
main = putText $ pretty $ declProgram procedures methods
where
procedures =
[ ("recv_external", decl recvExternal)
, ("recv_internal", decl recvInternal)
]
methods =
[ ("seqno", declMethod getSeqno)
]
data Storage = Storage
{ sCnt :: Word32
, sPubKey :: PublicKey
}
instance DecodeSlice Storage where
type DecodeSliceFields Storage = [PublicKey, Word32]
decodeFromSliceImpl = do
decodeFromSliceImpl @Word32
decodeFromSliceImpl @PublicKey
instance EncodeBuilder Storage where
encodeToBuilder = do
encodeToBuilder @Word32
encodeToBuilder @PublicKey
data WalletError
= SeqNoMismatch
| SignatureMismatch
deriving (Eq, Ord, Show, Generic)
instance Exception WalletError
instance Enum WalletError where
toEnum 33 = SeqNoMismatch
toEnum 34 = SignatureMismatch
toEnum _ = error "Uknown MultiSigError id"
fromEnum SeqNoMismatch = 33
fromEnum SignatureMismatch = 34
recvInternal :: '[Slice] :-> '[]
recvInternal = drop
recvExternal :: '[Slice] :-> '[]
recvExternal = do
decodeFromSlice @Signature
dup
preloadFromSlice @Word32
stacktype @[Word32, Slice, Signature]
-- cnt cs sign
pushRoot
decodeFromCell @Storage
stacktype @[PublicKey, Word32, Word32, Slice, Signature]
-- pk cnt' cnt cs sign
xcpu @1 @2
stacktype @[Word32, Word32, PublicKey, Word32, Slice, Signature]
-- cnt cnt' pk cnt cs sign
equalInt >> throwIfNot SeqNoMismatch
push @2
sliceHash
stacktype @[Hash Slice, PublicKey, Word32, Slice, Signature]
-- hash pk cnt cs sign
xc2pu @0 @4 @4
stacktype @[PublicKey, Signature, Hash Slice, Word32, Slice, PublicKey]
-- pubk sign hash cnt cs pubk
chkSignU
stacktype @[Bool, Word32, Slice, PublicKey]
-- ? cnt cs pubk
throwIfNot SignatureMismatch
accept
swap
decodeFromSlice @Word32
nip
dup
srefs @Word8
pushInt 0
if IsEq
then ignore
else do
decodeFromSlice @Word8
decodeFromSlice @(Cell MessageObject)
stacktype @[Slice, Cell MessageObject, Word8, Word32, PublicKey]
xchg @2
sendRawMsg
stacktype @[Slice, Word32, PublicKey]
endS
inc
encodeToCell @Storage
popRoot
getSeqno :: '[] :-> '[Word32]
getSeqno = do
pushRoot
cToS
preloadFromSlice @Word32
āĻāĻŽāĻžāĻĻā§āĻ° eDSL āĻāĻŦāĻ āĻŽāĻžāĻ˛ā§āĻāĻŋ-āĻ¸āĻŋāĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¯āĻŧāĻžāĻ˛ā§āĻ āĻā§āĻā§āĻ¤āĻŋāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻāĻžāĻ¨ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§
āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻž āĻāĻŦāĻ TON āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻŽā§āĻ, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻ˛ā§āĻā§āĻā§ 380 āĻāĻ¨ā§āĻāĻž (āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨, āĻŽāĻŋāĻāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĻŋ āĻ¸āĻš)āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻŽā§āĻ˛āĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻĒāĻžāĻāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻ āĻāĻļ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋāĻ˛: CTO, āĻĻāĻ˛ā§āĻ° āĻ¨ā§āĻ¤ā§āĻ¤ā§āĻŦ, āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻŦāĻŋāĻļā§āĻˇāĻā§āĻ āĻāĻŦāĻ Haskell āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻā§āĻ¨ā§ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻžāĻĄāĻŧāĻžāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻāĻŋāĻ¤āĻžāĻ¯āĻŧ āĻ āĻāĻļāĻā§āĻ°āĻšāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒāĻĻ āĻā§āĻāĻā§ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻšā§āĻ¯āĻžāĻāĻžāĻĨāĻ¨ā§āĻ° āĻā§āĻ¤āĻ¨āĻž, āĻāĻ¨āĻŋāĻˇā§āĻ āĻĻāĻ˛āĻŦāĻĻā§āĻ§ āĻāĻžāĻ, āĻāĻŦāĻ āĻ¨āĻ¤ā§āĻ¨ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻĻāĻŋāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¨āĻŋāĻā§āĻā§ āĻ¨āĻŋāĻŽāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧāĻ āĻāĻ¤ā§āĻ¤ā§āĻāĻ¨āĻžāĻĒā§āĻ°ā§āĻŖāĨ¤ āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¨āĻŋāĻĻā§āĻ°āĻžāĻšā§āĻ¨ āĻ°āĻžāĻ¤ āĻ āĻŽā§āĻ˛ā§āĻ¯ āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻŽā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻā§āĻˇāĻ¤āĻŋāĻĒā§āĻ°āĻŖ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻĒāĻ°ā§āĻā§āĻˇāĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻĄāĻŧāĻž āĻ¸āĻ¤ā§āĻ¯āĻŋāĻāĻžāĻ°ā§āĻ° āĻļāĻžāĻ˛ā§āĻ¨ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻ āĻŋāĻ¨āĨ¤
āĻāĻžāĻ¨ā§āĻ° āĻāĻĨāĻž āĻāĻāĻĒāĻžāĻļā§: TON āĻāĻŋāĻŽ āĻ¯ā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻāĻžāĻ āĻāĻ°ā§āĻā§ āĻ¤āĻžāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻŽā§āĻā§āĻ§ āĻšāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻāĻŋāĻ˛, āĻ¸ā§āĻ¨ā§āĻĻāĻ° āĻāĻŦāĻ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ TON āĻ¨āĻŋāĻā§āĻā§ āĻ āĻ¨ā§āĻ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻāĻ°ā§āĻā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ āĻŦāĻžāĻ¸ā§āĻ¤ā§āĻ¤āĻ¨ā§āĻ¤ā§āĻ°ā§āĻ° āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻāĻ¨ā§āĻ¯, āĻŦā§āĻ˛āĻāĻā§āĻāĻ¨ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻŦāĻ āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ āĻāĻļ āĻšāĻ¤ā§ āĻĒā§āĻ°ā§ āĻāĻ°ā§āĻŦāĻŋāĻ¤āĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻĒāĻĄāĻŧāĻžāĻ° āĻĒāĻ°ā§āĻ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻĨāĻžāĻā§ āĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ TON āĻā§āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻĨāĻžāĻā§,
āĻāĻ¤ā§āĻ¸: www.habr.com