เดŸเต†เดฒเดฟเด—เตเดฐเดพเด‚ เด“เดชเตเดชเตบ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเตฝ (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-เดฒเต‡เด•เตเด•เต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด”เดฆเตเดฏเต‹เด—เดฟเด• เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเดฟเดฒเต† เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเต† เดตเดณเดฐเต† เดตเดฟเดถเดฆเดฎเดพเดฏเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเดฟเดฒ เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เด’เดดเดฟเดตเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจเต, เดตเดดเดฟเดฏเดฟเตฝ เด•เดพเดฃเดพเดคเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด“เดฐเต‹ เดชเตเดฐเตŠเดœเด•เตโ€Œเดฑเตเดฑเตเด‚ เดžเดพเตป เดธเตเดตเดฏเด‚ เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดคเต† เด”เดฆเตเดฏเต‹เด—เดฟเด• เด‰เดฌเตเดฃเตเดŸเต เดถเต‡เด–เดฐเดฃเดคเตเดคเดฟเตฝ (เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดš MacOS-เตฝ) เดจเดฟเดจเตเดจเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต. brew).

apt -y install git 
apt -y install wget 
apt -y install cmake 
apt -y install g++ 
apt -y install zlib1g-dev 
apt -y install libssl-dev 

เดŽเดฒเตเดฒเดพ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเตเด•เดดเดฟเดžเตเดžเดพเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ lite-client, Fift, FunC.

เด†เดฆเตเดฏเด‚, เดžเด™เตเด™เตพ TON เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เด…เดคเดฟเดจเตเดฑเต† เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚, เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเด‚ เด’เดฐเต เดซเต‹เตพเดกเดฑเดฟเตฝ เดšเต†เดฏเตเดฏเตเด‚ ~/TON.

cd ~/TON
git clone https://github.com/ton-blockchain/ton.git
cd ./ton
git submodule update --init --recursive

เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเตเด•เดณเตเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต Fift ะธ FunC.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เดพเตป เดคเดฏเตเดฏเดพเดฑเดพเดฃเต. เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เด•เต‹เดกเต เด’เดฐเต เดซเต‹เตพเดกเดฑเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฒเต‹เตบ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต ~/TON/ton. เดฆเดฟ ~/TON เด’เดฐเต เดซเต‹เตพเดกเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• build เด…เดคเดฟเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•.

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

เดžเด™เตเด™เตพ เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดŽเดดเตเดคเดพเตป เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เดตเต‡เดฃเตเดŸเดคเต lite-clientเดชเด•เตเดทเต‡ Fift ั FunC, เด…เดคเดฟเดจเดพเตฝ เดจเดฎเตเด•เตเด•เต เดŽเดฒเตเดฒเดพเด‚ เดธเดฎเดพเดนเดฐเดฟเด•เตเด•เดพเด‚. เด‡เดคเตŠเดฐเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฒเตเดฒ, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต.

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

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดเดคเต เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดกเดพเดฑเตเดฑ เด…เดŸเด™เตเด™เตเดจเตเดจ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• lite-client เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚.

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

TON-เดฒเต‡เด•เตเด•เต เด†เดฆเตเดฏ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเต

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเดพเด‚ lite-client.

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

เดฌเดฟเตฝเดกเต เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดค เดถเต‡เดทเด‚ เดฒเตˆเดฑเตเดฑเต เด•เตเดฒเดฏเดจเตเดฑเต เดจเต‹เดกเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด•เดฃเด•เตเดทเดจเตเดฑเต† เด’เดฐเต เดฒเต‹เด—เต เดจเดฟเด™เตเด™เตพ เด•เดพเดฃเตเด‚.

[ 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-เดจเตเดณเตเดณ เด•เต‹เดกเต เดžเดพเตป เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต; เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเต‹ เด•เต‹เดกเต เดคเดฟเดฐเดฏเดฒเดฟเตฝ เดชเตเดฒเด—เดฟเตป เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚; เดจเดฟเด™เตเด™เตพ เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต‡เตผเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เดชเตเดฒเด—เดฟเตป เดชเตŠเดคเตเดตเดพเดฏเดฟ เดฒเดญเตเดฏเดฎเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เด•เต‚เดŸเดพเดคเต†, เดซเดฟเดซเตเดฑเตเดฑเดฟเดจเตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเตเดฎเตเดชเต เด’เดฐเต เดชเตเดฒเด—เดฟเตป เด‰เดฃเตเดŸเดพเด•เตเด•เดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดตเดฟเดŽเดธเตโ€Œเดธเดฟเดฏเดฟเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เดจเดฎเตเด•เตเด•เต เด‰เดŸเตป เดคเดจเตเดจเต† เด’เดฐเต เดถเต‡เด–เดฐเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚, เด…เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดซเดฒเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด‚.

เดžเด™เตเด™เดณเตเดŸเต† เดœเต€เดตเดฟเดคเด‚ เดธเตเด—เดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด’เดฐเต เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดŽเดดเตเดคเตเด•เดฏเตเด‚ เด…เดคเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเดจเตเดจเดคเตเดตเดฐเต† เดชเตเดฐเดพเดฆเต‡เดถเดฟเด•เดฎเดพเดฏเดฟ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เดžเด™เตเด™เตพ เด…เดคเต 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

เด‡เดคเตเดตเดฐเต† เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต, เด‡เดชเตเดชเต‹เตพ เด…เดคเต‡ เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดŸเดฟเดตเดฟเดŽเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดกเต เดšเต‡เตผเด•เตเด•เดพเด‚.

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 เดžเด™เตเด™เตพ เดธเดจเตเดฆเตผเดญเด‚ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต, เด…เดคเดพเดฏเดคเต เดŸเดฟเดตเดฟเดŽเด‚ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดจเดฟเดฒ) เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เดกเดพเดฑเตเดฑ. เดฎเดคเตเดธเดฐ เดธเดฎเดฏเดคเตเดคเต เดชเต‹เดฒเตเด‚, เดกเดตเดฒเดชเตเดชเตผเดฎเดพเดฐเดฟเตฝ เด’เดฐเดพเตพ เดŽเด™เตเด™เดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเดšเตเดšเต 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 ! 

เดžเด™เตเด™เตพ เดธเตเดฅเดฟเดฐเดพเด™เตเด•เด™เตเด™เดณเตเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เด•เดฎเดพเตปเดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดŸเดฟเดตเดฟเดŽเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเต 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));
}

เด…เดคเตเดฐเดฎเดพเดคเตเดฐเด‚. เด…เดจเตเดฌเดจเตเดง เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค.

เด‡เดชเตเดชเต‹เตพ เด…เดตเดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดจเดฎเตเด•เตเด•เต เด—เต†เดฑเตเดฑเต-เดฎเต†เดคเตเดคเดกเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚, เด…เดคเตเดตเดดเดฟ เดชเตเดฑเด‚ เดฒเต‹เด•เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เดฐเดพเดฑเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดจเดฎเตเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚ (เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด…เดตเดฐเตเดŸเต† เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดตเดพเดฏเดฟเด•เตเด•เตเด•).

เดจเดฎเตเด•เตเด•เต เดจเต‡เดŸเตเดจเตเดจ เดฐเต€เดคเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เดพเด‚. เด’เดฐเต เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดšเตเดตเดŸเต† เดŽเดดเตเดคเตเด‚.

เด’เดฐเต เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เด†เดฆเตเดฏเดคเตเดคเต† เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‹เดกเต เดšเต‡เตผเด•เตเด•เดพเดจเตเด‚ เดžเดพเตป เดฎเดฑเดจเตเดจเต. เด…เดจเตเดฌเดจเตเดง เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค. เด•เต‚เดŸเดพเดคเต† เด•เต‚เดŸเตเดคเตฝ เดคเดฟเดฐเตเดคเตเดคเดฟ เดคเตเด•เดฏเตเดŸเต† 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. เดธเต—เด•เดฐเตเดฏเดพเตผเดคเตเดฅเด‚, เดธเตˆเดฑเตเดฑเต เดกเต‹เด•เตเด•เดฑเดฟเตฝ เดชเดพเด•เตเด•เต‡เดœเตเดšเต†เดฏเตโ€Œเดคเต Google เด•เตเดฒเต—เดกเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฒเดฟเด™เตเด•เต.

เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดจเดฟ เดฎเตเดคเตฝ เดจเดฟเด•เดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เด—เตเดฐเดพเด‚ เด…เดฏเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚ เดตเดพเดฒเดฑเตเดฑเต. เดžเด™เตเด™เตพ 40 เด—เตเดฐเดพเด‚ เด…เดฏเดฏเตเด•เตเด•เตเด‚. เดตเตเดฏเด•เตเดคเดคเดฏเตเด•เตเด•เดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดชเดจเตเดคเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚. เดตเดพเดคเตเดตเต†เดชเตเดชเตเด•เดณเตเดŸเต† เดšเดฐเดฟเดคเตเดฐเด‚, เดจเดฟเดฒเดตเดฟเดฒเต† เดตเดฟเดœเดฏ เดถเดคเดฎเดพเดจเด‚, เดฎเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เดŽเดจเตเดจเดฟเดต เดธเตˆเดฑเตเดฑเต เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดคเต เดžเด™เตเด™เตพ เด•เดพเดฃเตเดจเตเดจเต.

เดจเดพเด‚ เด•เดพเดฃเตเดจเตเดจเตเดžเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดœเดฏเดฟเดšเตเดšเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เดคเต‹เดฑเตเดฑเต.

Afterword

เดฒเต‡เด–เดจเด‚ เดžเดพเตป เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเดฟเดฒเตเด‚ เดตเดณเดฐเต† เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟ, เด’เดฐเตเดชเด•เตเดทเต‡ เด…เดคเต เดšเต†เดฑเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเดฃเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเต เด’เดจเตเดจเตเด‚ เด…เดฑเดฟเดฏเดพเดคเตเดค เด’เดฐเต เดตเตเดฏเด•เตเดคเดฟเด•เตเด•เต เดตเต‡เดฃเตเดŸเดฟ เดฎเดพเดคเตเดฐเด‚ เดธเด‚เดตเดฆเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเดณเตเดณ เด…เดคเตเดฐ เดฒเดณเดฟเดคเดฎเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดŽเดดเตเดคเดพเดจเตเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเต. เด’เดฐเตเดชเด•เตเดทเต‡ เดšเดฟเดฒ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เด’เดฐเตเดชเด•เตเดทเต‡ เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเดฟเดจเตเดฑเต† เดšเดฟเดฒ เดตเดถเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดฎเดพเดฏเตเด‚ เดญเด‚เด—เดฟเดฏเดพเดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดฒเต‡เด–เดจเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดพเตป เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดŽเดจเดฟเด•เตเด•เต เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเต†เดฑเตเดฑเต เดชเดฑเตเดฑเดฟเดฏเดคเดพเด•เดพเด‚ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดจเดธเตเดธเดฟเดฒเดพเดฏเดฟเดฒเตเดฒเดพเดฏเดฟเดฐเดฟเด•เตเด•เดพเด‚, เด…เดคเดฟเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เด—เต—เดฐเดตเดฎเดพเดฏเดฟ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเดจเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ TON เด•เต‹เดกเตเดณเตเดณ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดถเต‡เด–เดฐเดฃเดคเตเดคเต†เดฏเต‹ เด†เดถเตเดฐเดฏเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

TON เด‡เดชเตเดชเต‹เดดเตเด‚ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเตเดฑเต† เดธเดœเต€เดต เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเดพเดฏเดคเดฟเดจเดพเตฝ, เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดฒเต† เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด˜เดŸเตเดŸเด™เตเด™เดณเต† เดคเด•เตผเด•เตเด•เตเดจเตเดจ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดธเด‚เดญเดตเดฟเด•เตเด•เดพเด‚ (เดžเดพเตป เดŽเดดเตเดคเตเดฎเตเดชเต‹เตพ เด‡เดคเต เดธเด‚เดญเดตเดฟเดšเตเดšเต, เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เดถเดฐเดฟเดฏเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต), เดŽเดจเตเดจเดพเตฝ เดชเตŠเดคเตเดตเดพเดฏ เดธเดฎเต€เดชเดจเด‚ เด‡เดคเดพเดฃเต เดฎเดพเดฑเดพเตป เดธเดพเดงเตเดฏเดคเดฏเดฟเดฒเตเดฒ.

TON เดจเตเดฑเต† เดญเดพเดตเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดฟเดฒเตเดฒ. เด’เดฐเตเดชเด•เตเดทเต‡ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เด‚ เดตเดฒเตเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเต‡เด•เตเด•เดพเด‚, เดžเด™เตเด™เตพ เด…เดคเต เดชเด เดฟเด•เตเด•เดพเตป เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เดณเตเดŸเต† เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เดณเดฟเตฝ เด’เดฐเต เด‡เดŸเด‚ เดจเดฟเดฑเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚.

TON-เดจเต‡เด•เตเด•เดพเตพ เดตเดฒเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดชเตเดฐเต‡เด•เตเดทเด•เดฐเตเดณเตเดณ Facebook-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฒเดฟเดฌเตเดฐเดฏเตเด‚ เด‰เดฃเตเดŸเต. เดคเตเดฒเดพเด‚ เดฐเดพเดถเดฟเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดŽเดจเดฟเด•เตเด•เต เด’เดจเตเดจเตเด‚ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดซเต‹เดฑเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ เดŸเตบ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเดฏเดฟเดฒเต‡เดคเดฟเดจเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฎเตเดฃเตเดŸเต. 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•