เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจ“เจชเจจ เจจเฉˆเฉฑเจŸเจตเจฐเจ• (TON) เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆ เจฌเจพเจฐเฉ‡

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 เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจตเจพเจคเจพเจตเจฐเจจ เจคเจฟเจ†เจฐ เจ•เจฐเจจเจพ

เจฎเฉˆเจ‚ เจ‰เจน เจธเจญ เจ•เฉเจ เจ•เฉ€เจคเจพ เจœเฉ‹ MacOS 'เจคเฉ‡ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจกเฉŒเจ•เจฐ 'เจคเฉ‡ เจธเจพเจซเจผ เจ‰เจฌเฉฐเจŸเฉ‚ 18.04 LTS เจตเจฟเฉฑเจš เจกเจฌเจฒ-เจšเฉˆเฉฑเจ• เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจชเจนเจฟเจฒเฉ€ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉ€ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ…เจคเฉ‡ เจ‡เฉฐเจธเจŸเจพเจฒ เจนเฉˆ lite-client เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ TON เจจเฉ‚เฉฐ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจญเฉ‡เจœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ…เจงเจฟเจ•เจพเจฐเจค เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ 'เจคเฉ‡ เจนเจฆเจพเจ‡เจคเจพเจ‚ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจ•เจพเจซเจผเฉ€ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจธเจชเจธเจผเจŸ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฌเจฟเจ†เจจ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจ เจ…เจคเฉ‡ เจ•เฉเจ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจกเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚, เจฐเจธเจคเฉ‡ เจตเจฟเฉฑเจš เจ—เฉเฉฐเจฎ เจนเฉ‹เจˆเจ†เจ‚ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจเฅค เจฎเฉˆเจ‚ เจนเจฐเฉ‡เจ• เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เฉฐเจชเจพเจ‡เจฒ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ…เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจ‰เจฌเฉฐเจŸเฉ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ (เจฎเฉˆเจ•เจ“เจเจธ 'เจคเฉ‡ เจœเฉ‹ เจฎเฉˆเจ‚ เจตเจฐเจคเจฟเจ† เจนเฉˆ) เจคเฉ‹เจ‚ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ 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. The ~/TON เจ‡เฉฑเจ• เจซเฉ‹เจฒเจกเจฐ เจฌเจฃเจพเจ“ build เจ…เจคเฉ‡ เจ‡เจธ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเฉ‹เฅค

mkdir ~/TON/build 
cd ~/TON/build
cmake ../ton

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฒเจฟเจ–เจฃ เจœเจพ เจฐเจนเฉ‡ เจนเจพเจ‚, เจธเจพเจจเฉ‚เฉฐ เจจเจพ เจธเจฟเจฐเจซเจผ เจฒเฉ‹เฉœ เจนเฉˆ lite-clientเจชเจฐ Fift ั FunC, เจคเจพเจ‚ เจ†เจ“ เจธเจญ เจ•เฉเจ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเฉ€เจเฅค เจ‡เจน เจ•เฉ‹เจˆ เจคเฉ‡เจœเจผ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‰เจกเฉ€เจ• เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚เฅค

cmake --build . --target lite-client
cmake --build . --target fift
cmake --build . --target func

เจ…เฉฑเจ—เฉ‡, เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจกเจพเจ‰เจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจœเจฟเจธ เจตเจฟเฉฑเจš เจจเฉ‹เจก เจฌเจพเจฐเฉ‡ เจกเฉ‡เจŸเจพ เจธเจผเจพเจฎเจฒ เจนเฉˆ lite-client เจœเฉเฉœ เจœเจพเจตเฉ‡เจ—เจพเฅค

wget https://test.ton.org/ton-lite-client-test1.config.json

TON เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจ•เจฐเจจเจพ

เจนเฉเจฃ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ lite-client.

cd ~/TON/build
./lite-client/lite-client -C ton-lite-client-test1.config.json

เจœเฉ‡เจ•เจฐ เจฌเจฟเจฒเจก เจธเจซเจฒ เจธเฉ€, เจคเจพเจ‚ เจฒเจพเจ‚เจš เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจคเฉเจธเฉ€เจ‚ เจจเฉ‹เจก เจจเจพเจฒ เจฒเจพเจˆเจŸ เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ‡ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฆเจพ เจ‡เฉฑเจ• เจฒเฉŒเจ— เจตเฉ‡เจ–เฉ‹เจ—เฉ‡เฅค

[ 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 parameters

last ะฟะพะปัƒั‡ะฐะตั‚ ะฟะพัะปะตะดะฝะธะน ัะพะทะดะฐะฝะฝั‹ะน ะฑะปะพะบ ั ัะตั€ะฒะตั€ะฐ. 

sendfile <filename> ะพั‚ะฟั€ะฐะฒะปัะตั‚ ะฒ TON ั„ะฐะนะป ั ัะพะพะฑั‰ะตะฝะธะตะผ, ะธะผะตะฝะฝะพ ั ะฟะพะผะพั‰ัŒัŽ ัั‚ะพะน ะบะพะผะฐะฝะดั‹ ะฟัƒะฑะปะธะบัƒะตั‚ัั ัะผะฐั€ั‚-ะบะพะฝั‚ั€ะฐะบั‚ ะธ ะทะฐะฟั€ัะพัั‹ ะบ ะฝะตะผัƒ. 

getaccount <addr> ะทะฐะณั€ัƒะถะฐะตั‚ ั‚ะตะบัƒั‰ะตะต ัะพัั‚ะพัะฝะธะต ัะผะฐั€ั‚-ะบะพะฝั‚ั€ะฐะบั‚ะฐ ั ัƒะบะฐะทะฐะฝะฝั‹ะผ ะฐะดั€ะตัะพะผ. 

runmethod <addr> [<block-id-ext>] <method-id> <params>  ะทะฐะฟัƒัะบะฐะตั‚ get-ะผะตั‚ะพะดั‹ ัะผะฐั€ั‚ะบะพะฝั‚ั€ะฐะบั‚ะฐ. 

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจ–เฉเจฆ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเจพ เจฒเจฟเจ–เจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเจพเจ‚เฅค

ะ ะตะฐะปะธะทะฐั†ะธั

เจ†เจˆเจกเฉ€เจ†

เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจฎเฉˆเจ‚ เจ‰เฉฑเจชเจฐ เจฒเจฟเจ–เจฟเจ† เจนเฉˆ, เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจฒเจฟเจ– เจฐเจนเฉ‡ เจนเจพเจ‚ เจ‡เฉฑเจ• เจฒเจพเจŸเจฐเฉ€ เจนเฉˆ.

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจ•เฉ‹เจˆ เจฒเจพเจŸเจฐเฉ€ เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเจฟเจธ เจตเจฟเจš เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเจฟเจ•เจŸ เจ–เจฐเฉ€เจฆเจฃ เจ…เจคเฉ‡ เจ‡เจ• เจ˜เฉฐเจŸเจพ, เจฆเจฟเจจ เจœเจพเจ‚ เจฎเจนเฉ€เจจเจพ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจชเจฐ เจ‡เจ• เจคเจคเจ•เจพเจฒ เจœเจฟเจธ เจตเจฟเจš เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจฆเฉ‡ เจชเจคเฉ‡ 'เจคเฉ‡ เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค N เจ—เฉเจฐเจพเจฎ, เจ…เจคเฉ‡ เจคเฉเจฐเฉฐเจค เจ‡เจธเจจเฉ‚เฉฐ เจตเจพเจชเจธ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ 2 * N เจ—เฉเจฐเจพเจฎ เจœเจพเจ‚ เจ˜เจพเจŸเจพ. เจ…เจธเฉ€เจ‚ เจฒเจ—เจญเจ— 40% เจœเจฟเฉฑเจคเจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡เฅค เจœเฉ‡เจ•เจฐ เจญเฉเจ—เจคเจพเจจ เจฒเจˆ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ—เฉเจฐเจพเจฎ เจจเจนเฉ€เจ‚ เจนเจจ, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจŸเฉŒเจช-เจ…เฉฑเจช เจธเจฎเจเจพเจ‚เจ—เฉ‡เฅค

เจ‡เจธ เจคเฉ‹เจ‚ เจ‡เจฒเจพเจตเจพ, เจ‡เจน เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆ เจ•เจฟ เจธเฉฑเจŸเฉ‡เจฌเจพเจœเจผเฉ€ เจจเฉ‚เฉฐ เจฐเฉ€เจ…เจฒ เจŸเจพเจˆเจฎ เจตเจฟเฉฑเจš เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฆเฉ‡เจ–เจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจœเฉ‹ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจคเฉเจฐเฉฐเจค เจธเจฎเจ เจธเจ•เฉ‡ เจ•เจฟ เจ‰เจน เจœเจฟเฉฑเจค เจ—เจฟเจ† เจœเจพเจ‚ เจนเจพเจฐ เจ—เจฟเจ†เฅค เจ‡เจธ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉˆเจฌเจธเจพเจˆเจŸ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจœเฉ‹ TON เจคเฉ‹เจ‚ เจธเจฟเฉฑเจงเฉ‡ เจธเฉฑเจŸเฉ‡ เจ…เจคเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเจฟเจ–เจพเจเจ—เฉ€เฅค

เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเจพ เจฒเจฟเจ–เจฃเจพ

เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจฎเฉˆเจ‚ FunC เจฒเจˆ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ‰เจœเจพเจ—เจฐ เจ•เฉ€เจคเจพ เจนเฉˆ; เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจธเจŸเฉ‚เจกเฉ€เจ“ เจ•เฉ‹เจก เจ–เฉ‹เจœ เจตเจฟเฉฑเจš เจฒเฉฑเจญเจฟเจ† เจ…เจคเฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ; เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ…เจšเจพเจจเจ• เจ•เฉเจ เจœเฉ‹เฉœเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจฎเฉˆเจ‚ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจœเจจเจคเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจนเฉˆเฅค เจจเจพเจฒ เจนเฉ€, เจ•เจฟเจธเฉ‡ เจจเฉ‡ เจชเจนเจฟเจฒเจพเจ‚ เจซเจฟเจซเจŸ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจชเจฒเฉฑเจ—เจ‡เจจ เจฌเจฃเจพเจ‡เจ† เจธเฉ€, เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเฉ€ เจธเจฅเจพเจชเจฟเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ VSC เจตเจฟเฉฑเจš เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจšเจฒเฉ‹ เจคเฉเจฐเฉฐเจค เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจฌเจฃเจพเจˆเจ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

เจ†เจชเจฃเฉ€ เจœเจผเจฟเฉฐเจฆเจ—เฉ€ เจจเฉ‚เฉฐ เจ†เจธเจพเจจ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจจเฉ‚เฉฐ เจฒเจฟเจ–เจพเจ‚เจ—เฉ‡ เจ…เจคเฉ‡ เจธเจฅเจพเจจเจ• เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธเจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เจน เจคเจฟเจ†เจฐ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเจพเฅค เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจนเฉ€ เจ…เจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ 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 เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚, เจœเฉ‹ เจ•เจฟ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เฉ€เจคเฉ€ เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจกเฉเจชเจฒเฉ€เจ•เฉ‡เจŸ เจ•เจฐเฉ‡เจ—เจพ 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. เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ†เจ“ เจ‡เฉฐเจŸเจฐเจเจ•เจŸเจฟเจต เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจซเจฟเจซเจŸ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจšเจพเจฐ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเฉ€เจเฅค

`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, เจ‡เจน เจ‰เจน เจชเจคเจพ เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเฉ‡เจต เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจฎเฉˆเจ‚ เจเจกเจฐเฉˆเฉฑเจธ เจจเฉ‚เฉฐ เจธเฉ‡เจต เจ•เจฐเจจ เจฒเจˆ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเจพ เจนเฉˆ TonUtil.fif.

// ( 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 12345

256 u>B เจ‡เฉฑเจ• 256-เจฌเจฟเฉฑเจŸ เจ—เฉˆเจฐ-เจจเฉˆเจ—เฉ‡เจŸเจฟเจต เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจจเฉ‚เฉฐ เจฌเจพเจˆเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค

"sender.addr" -1 BYTES:0000000000000000000000000000000000000000000000000000000000003039

swap เจธเจŸเฉˆเจ• เจฆเฉ‡ เจธเจฟเจ–เจฐเจฒเฉ‡ เจฆเฉ‹ เจคเฉฑเจคเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉˆเจช เจ•เจฐเจฆเจพ เจนเฉˆเฅค

"sender.addr" BYTES:0000000000000000000000000000000000000000000000000000000000003039 -1

32 i>B เจ‡เฉฑเจ• 32-เจฌเจฟเฉฑเจŸ เจชเฉ‚เจฐเจจ เจ…เฉฐเจ• เจจเฉ‚เฉฐ เจฌเจพเจˆเจŸเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒเจฆเจพ เจนเฉˆเฅค

"sender.addr" BYTES:0000000000000000000000000000000000000000000000000000000000003039 BYTES:FFFFFFFF

B+ เจฌเจพเจˆเจŸเจธ เจฆเฉ‡ เจฆเฉ‹ เจ•เฉเจฐเจฎ เจœเฉ‹เฉœเจฆเจพ เจนเฉˆเฅค

 "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));
}

เจ‡เจน เจธเจญ เจ•เฉเจ เจนเฉˆ เจ…เจจเฉเจธเจพเจฐเฉ€ เจตเจšเจจเจฌเฉฑเจงเจคเจพ.

เจนเฉเจฃ เจœเฉ‹ เจฌเจพเจ•เฉ€ เจฌเจšเจฟเจ† เจนเฉˆ เจ‰เจน เจธเจงเจพเจฐเจจ เจนเฉˆ, เจ†เจ“ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจฌเจฃเจพเจˆเจ เจคเจพเจ‚ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจฌเจพเจนเจฐเฉ€ เจฆเฉเจจเฉ€เจ† เจคเฉ‹เจ‚ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เฉ€เจ (เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจคเฉ‹เจ‚ เจกเฉ‡เจŸเจพ เจชเฉœเฉเจนเฉ‹)เฅค

เจ†เจ‰ get methods เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ€เจ. เจ…เจธเฉ€เจ‚ เจนเฉ‡เจ เจพเจ‚ เจฒเจฟเจ–เจพเจ‚เจ—เฉ‡ เจ•เจฟ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเฉ€ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจ‰เจน เจ•เฉ‹เจก เจœเฉ‹เฉœเจจเจพ เจตเฉ€ เจญเฉเฉฑเจฒ เจ—เจฟเจ† เจœเฉ‹ เจธเจฎเจพเจฐเจŸ เจ‡เจ•เจฐเจพเจฐเจจเจพเจฎเฉ‡ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจ เจตเฉ‡เจฒเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เจ—เจพเฅค เจ…เจจเฉเจธเจพเจฐเฉ€ เจตเจšเจจเจฌเฉฑเจงเจคเจพ. เจ…เจคเฉ‡ เจ…เฉฑเจ—เฉ‡ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจฎเจพเจฒเจ• เจฆเฉ‡ เจ–เจพเจคเฉ‡ เจตเจฟเฉฑเจš เจฐเจ•เจฎ เจฆเจพ 1/3 เจญเฉ‡เจœเจฃ เจจเจพเจฒ เจฌเฉฑเจ—เฅค

เจ…เจ—เจฒเจพ เจ•เจฆเจฎ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจนเฉˆเฅค เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจซเฉ‹เจฒเจกเจฐ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ requests.

เจฎเฉˆเจ‚ เจชเฉเจฐเจ•เจพเจธเจผเจจ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ†เจงเจพเจฐ เจตเจœเฉ‹เจ‚ เจฒเจฟเจ† simple-wallet-code.fc เจœเฉ‹ เจ•เจฟ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจงเจฟเจ•เจพเจฐเจค เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจตเจฟเฉฑเจš.

เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฏเฉ‹เจ— เจšเฉ€เจœเจผ. เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ‡เจจเจชเฉเจŸ เจธเฉเจจเฉ‡เจนเจพ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฆเจพ เจชเจคเจพ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฏเจพเจจเฉ€, เจชเจคเจพ 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. เจธเจนเฉ‚เจฒเจค เจฒเจˆ, เจธเจพเจˆเจŸ เจจเฉ‚เฉฐ เจกเฉŒเจ•เจฐ เจตเจฟเฉฑเจš เจชเฉˆเจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ เจ—เฉ‚เจ—เจฒ เจ•เจฒเจพเจ‰เจก 'เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจฒเจฟเฉฐเจ•.

เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆ

เจนเฉเจฃ เจ†เจ‰ เจ‰เฉฑเจฅเฉ‡ เจคเฉ‹เจ‚ เจชเฉ‚เจฐเจคเฉ€ เจฒเจˆ เจ—เฉเจฐเจพเจฎ เจญเฉ‡เจœเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ€เจ เจฌเจŸเฉ‚เจ†. เจ…เจธเฉ€เจ‚ 40 เจ—เฉเจฐเจพเจฎ เจญเฉ‡เจœเจพเจ‚เจ—เฉ‡เฅค เจ…เจคเฉ‡ เจ†เจ“ เจธเจชเฉฑเจธเจผเจŸเจคเจพ เจฒเจˆ เจ•เฉเจ เจธเฉฑเจŸเฉ‡เจฌเจพเจœเจผเฉ€ เจ•เจฐเฉ€เจเฅค เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจธเจพเจˆเจŸ เจธเฉฑเจŸเฉ‡เจฌเจพเจœเจผเฉ€ เจฆเจพ เจ‡เจคเจฟเจนเจพเจธ, เจฎเฉŒเจœเฉ‚เจฆเจพ เจœเจฟเฉฑเจคเจฃ เจฆเฉ€ เจชเฉเจฐเจคเฉ€เจธเจผเจคเจคเจพ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ เจฆเฉ‡เจ–เจฆเฉ‡ เจนเจพเจ‚เจ•เจฟ เจ…เจธเฉ€เจ‚ เจชเจนเจฟเจฒเจพ เจœเจฟเฉฑเจคเจฟเจ†, เจฆเฉ‚เจœเจพ เจนเจพเจฐเจฟเจ†เฅค

เจฌเจพเจ…เจฆ

เจฒเฉ‡เจ– เจฎเฉ‡เจฐเฉ€ เจ‰เจฎเฉ€เจฆ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจฒเฉฐเจฌเจพ เจจเจฟเจ•เจฒเจฟเจ†, เจธเจผเจพเจ‡เจฆ เจ‡เจน เจ›เฉ‹เจŸเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจธเฉ€, เจœเจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆ เจธเจฟเจฐเจซเจผ เจ‰เจธ เจตเจฟเจ…เจ•เจคเฉ€ เจฒเจˆ เจœเฉ‹ TON เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจธ เจจเจพเจฒ เจ—เฉฑเจฒเจฌเจพเจค เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจตเจพเจฒเจพ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจนเฉ€ เจธเจงเจพเจฐเจจ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฒเจฟเจ–เจฃเจพ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน. เจธเจผเจพเจ‡เจฆ เจ•เฉเจ เจ—เฉฑเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจธเจฐเจฒ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจธเจฎเจเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจธเฉ€เฅค

เจธเจผเจพเจ‡เจฆ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉเจ เจชเจนเจฟเจฒเฉ‚เจ†เจ‚ เจจเฉ‚เฉฐ เจนเฉ‹เจฐ เจ•เฉเจธเจผเจฒเจคเจพ เจ…เจคเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจธเฉ€, เจชเจฐ เจซเจฟเจฐ เจฒเฉ‡เจ– เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฒเจˆ เจนเฉ‹เจฐ เจตเฉ€ เจธเจฎเจพเจ‚ เจฒเฉฑเจ— เจธเจ•เจฆเจพ เจธเฉ€. เจ‡เจน เจตเฉ€ เจธเฉฐเจญเจต เจนเฉˆ เจ•เจฟ เจฎเฉˆเจ‚ เจ•เจฟเจคเฉ‡ เจ—เจฒเจคเฉ€ เจ•เฉ€เจคเฉ€ เจนเฉˆ เจœเจพเจ‚ เจ•เฉเจ เจธเจฎเจ เจจเจนเฉ€เจ‚ เจ†เจ‡เจ†, เจ‡เจธ เจฒเจˆ เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ•เฉเจ เจ—เฉฐเจญเฉ€เจฐ เจ•เจฐ เจฐเจนเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ TON เจ•เฉ‹เจก เจฆเฉ‡ เจจเจพเจฒ เจ…เจงเจฟเจ•เจพเจฐเจค เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจœเจพเจ‚ เจ…เจงเจฟเจ•เจพเจฐเจค เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจ‡เจน เจจเฉ‹เจŸ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจ‰เจ‚เจ•เจฟ TON เจ–เฉเจฆ เจ…เจœเฉ‡ เจตเฉ€ เจตเจฟเจ•เจพเจธ เจฆเฉ‡ เจธเจฐเจ—เจฐเจฎ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจนเฉˆ, เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ เจœเฉ‹ เจ‡เจธ เจฒเฉ‡เจ– เจฆเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจ•เจฆเจฎ เจจเฉ‚เฉฐ เจคเฉ‹เฉœ เจฆเฉ‡เจฃเจ—เฉ€เจ†เจ‚ (เจœเฉ‹ เจฎเฉˆเจ‚ เจฒเจฟเจ– เจฐเจฟเจนเจพ เจธเฉ€, เจ‡เจธ เจจเฉ‚เฉฐ เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ เฉ€เจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ), เจชเจฐ เจ†เจฎ เจชเจนเฉเฉฐเจš เจนเฉˆ. เจฌเจฆเจฒเจฃ เจฆเฉ€ เจธเฉฐเจญเจพเจตเจจเจพ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจฎเฉˆเจ‚ TON เจฆเฉ‡ เจญเจตเจฟเฉฑเจ– เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจจเจนเฉ€เจ‚ เจ•เจฐเจพเจ‚เจ—เจพเฅค เจธเจผเจพเจ‡เจฆ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจ•เฉเจ เจตเฉฑเจกเจพ เจฌเจฃ เจœเจพเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจ‡เจธเจฆเจพ เจ…เจงเจฟเจเจจ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจธเจฎเจพเจ‚ เจฌเจฟเจคเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจนเฉเจฃ เจธเจพเจกเฉ‡ เจ‰เจคเจชเจพเจฆเจพเจ‚ เจจเจพเจฒ เจ‡เฉฑเจ• เจธเจฅเจพเจจ เจญเจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจซเฉ‡เจธเจฌเฉเฉฑเจ• เจคเฉ‹เจ‚ เจฒเจฟเจฌเจฐเจพ เจตเฉ€ เจนเฉˆ, เจœเจฟเจธ เจตเจฟเฉฑเจš TON เจคเฉ‹เจ‚ เจตเฉฑเจกเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจญเจพเจตเฉ€ เจฆเจฐเจธเจผเจ• เจนเจจเฅค เจฎเฉˆเจ‚ เจฒเจฟเจฌเจฐเจพ เจฌเจพเจฐเฉ‡ เจฒเจ—เจญเจ— เจ•เฉเจ เจจเจนเฉ€เจ‚ เจœเจพเจฃเจฆเจพ, เจซเฉ‹เจฐเจฎ เจฆเฉเจ†เจฐเจพ เจจเจฟเจฐเจฃเจพ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ‡เฉฑเจฅเฉ‡ TON เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจจเจพเจฒเฉ‹เจ‚ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ—เจคเฉ€เจตเจฟเจงเฉ€ เจนเฉˆ. เจนเจพเจฒเจพเจ‚เจ•เจฟ TON เจฆเฉ‡ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ…เจคเฉ‡ เจ•เจฎเจฟเจŠเจจเจฟเจŸเฉ€ เจญเฉ‚เจฎเฉ€เจ—เจค เจตเจฐเจ—เฉ‡ เจนเจจ, เจœเฉ‹ เจ•เจฟ เจ เฉฐเจกเจพ เจตเฉ€ เจนเฉˆ.

เจนเจตเจพเจฒเฉ‡

  1. เจ…เจงเจฟเจ•เจพเจฐเจค TON เจฆเจธเจคเจพเจตเฉ‡เจœเจผ: https://test.ton.org
  2. เจ…เจงเจฟเจ•เจพเจฐเจค TON เจญเฉฐเจกเจพเจฐ: https://github.com/ton-blockchain/ton
  3. เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจฒเจˆ เจ…เจงเจฟเจ•เจพเจฐเจค เจตเจพเจฒเจฟเจŸ: https://wallet.ton.org
  4. เจ‡เจธ เจฒเฉ‡เจ– เจคเฉ‹เจ‚ เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€: https://github.com/raiym/astonished
  5. เจธเจฎเจพเจฐเจŸ เจ•เฉฐเจŸเจฐเฉˆเจ•เจŸ เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจจเจพเจฒ เจฒเจฟเฉฐเจ• เจ•เจฐเฉ‹: https://ton-lottery.appspot.com
  6. FunC เจฒเจˆ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจธเจŸเฉ‚เจกเฉ€เจ“ เจ•เฉ‹เจก เจฒเจˆ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจ เจฒเจˆ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€: https://github.com/raiym/func-visual-studio-plugin
  7. เจŸเฉˆเจฒเฉ€เจ—เฉเจฐเจพเจฎ เจตเจฟเฉฑเจš TON เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒเจฌเจพเจค เจ•เจฐเฉ‹, เจœเจฟเจธ เจจเฉ‡ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจชเฉœเจพเจ… 'เจคเฉ‡ เจ‡เจธเจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เฉ€เจคเฉ€เฅค เจฎเฉˆเจจเฉ‚เฉฐ เจฒเจ—เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉ‹เจˆ เจ—เจฒเจคเฉ€ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€ เจœเฉ‡เจ•เจฐ เจฎเฉˆเจ‚ เจ•เจนเจพเจ‚ เจ•เจฟ เจนเจฐ เจ•เฉ‹เจˆ เจœเจฟเจธเจจเฉ‡ TON เจฒเจˆ เจ•เฉเจ เจฒเจฟเจ–เจฟเจ† เจนเฉˆ เจ‰เฉฑเจฅเฉ‡ เจนเฉˆ. เจคเฉเจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจŸเฉˆเจธเจŸ เจ—เฉเจฐเจพเจฎ เจตเฉ€ เจฎเฉฐเจ— เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค https://t.me/tondev_ru
  8. TON เจฌเจพเจฐเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจ—เฉฑเจฒเจฌเจพเจค เจœเจฟเจธ เจตเจฟเฉฑเจš เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฎเจฟเจฒเฉ€: https://t.me/TONgramDev
  9. เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฆเจพ เจชเจนเจฟเจฒเจพ เจชเฉœเจพเจ…: https://contest.com/blockchain
  10. เจฎเฉเจ•เจพเจฌเจฒเฉ‡ เจฆเจพ เจฆเฉ‚เจœเจพ เจชเฉœเจพเจ…: https://contest.com/blockchain-2

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹