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 เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชพเชคเชพเชตเชฐเชฃ เชคเซเชฏเชพเชฐ เชเชฐเชตเซเช
เชฎเซเช เชฎเซเชเชเชเชธ เชชเชฐเชจเชพ เชฒเซเชเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชฌเชงเซเช เช เชเชฐเซเชฏเซเช เช เชจเซ เชคเซเชจเซ เชกเซเชเชฐ เชชเชฐ เชธเซเชตเชเซเช เชเชฌเซเชจเซเชเซ 18.04 เชเชฒเชเซเชเชธเชฎเชพเช เชฌเซ เชตเชพเชฐ เชเซเช เชเชฐเซเชฏเซเช.
เชคเชฎเชพเชฐเซ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เชกเชพเชเชจเชฒเซเชก เช
เชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ lite-client
เชเซเชจเซ เชฎเชฆเชฆเชฅเซ เชคเชฎเซ TON เชจเซ เชตเชฟเชจเชเชคเซเช เชฎเซเชเชฒเซ เชถเชเซ เชเซ.
เช
เชงเชฟเชเซเชค เชตเซเชฌเชธเชพเชเช เชชเชฐเชจเซ เชธเซเชเชจเชพเช เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเซเชฌ เชตเชฟเชเชคเชตเชพเชฐ เช
เชจเซ เชธเซเชชเชทเซเช เชฐเซเชคเซ เชตเชฐเซเชฃเชตเซ เชเซ เช
เชจเซ เชเซเชเชฒเซเช เชตเชฟเชเชคเซเชจเซ เชเซเชกเซ เชฆเซ เชเซ. เช
เชนเซเช เช
เชฎเซ เชธเซเชเชจเชพเชเชจเซเช เชชเชพเชฒเชจ เชเชฐเซเช เชเซเช, เชฐเชธเซเชคเชพเชฎเชพเช เชเซเชเชคเซ เช
เชตเชฒเชเชฌเชจเชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเช เชเซเช. เชฎเซเช เชฆเชฐเซเช เชชเซเชฐเซเชเซเชเซเช เชเชพเชคเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเชฏเซ เชจเชฅเซ เช
เชจเซ เชธเชคเซเชคเชพเชตเชพเชฐ เชเชฌเซเชจเซเชเซ เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเชเชฅเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฏเซเช เชจเชฅเซ (เชฎเซเชเชเชเชธ เชชเชฐ เชฎเซเช เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเชคเซ brew
).
apt -y install git
apt -y install wget
apt -y install cmake
apt -y install g++
apt -y install zlib1g-dev
apt -y install libssl-dev
เชเชเชตเชพเชฐ เชฌเชงเซ เชจเชฟเชฐเซเชญเชฐเชคเชพเช เชเชจเซเชธเซเชเซเชฒ เชฅเช เชเชพเชฏ เชชเชเซ เชคเชฎเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชถเชเซ เชเซ lite-client
, Fift
, FunC
.
เชชเซเชฐเชฅเชฎ, เช
เชฎเซ TON เชฐเชฟเชชเซเชเซเชเชฐเซเชจเซ เชคเซเชจเซ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเชพเชฅเซ เชเซเชฒเซเชจ เชเชฐเซเช เชเซเช. เชธเชเชตเชก เชฎเชพเชเซ, เช
เชฎเซ เชฌเชงเซเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชเชฐเซเชถเซเช ~/TON
.
cd ~/TON
git clone https://github.com/ton-blockchain/ton.git
cd ./ton
git submodule update --init --recursive
เชฐเชฟเชชเซเชเซเชเชฐเซ เช
เชฎเชฒเซเชเชฐเชฃเซเชจเซ เชชเชฃ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซ เชเซ Fift
ะธ FunC
.
เชนเชตเซ เช
เชฎเซ เชชเซเชฐเซเชเซเชเซเช เชเชธเซเชฎเซเชฌเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซเช. เชฐเซเชชเซเชเซเชเชฐเซ เชเซเชก เชซเซเชฒเซเชกเชฐเชฎเชพเช เชเซเชฒเซเชจ เชฅเชฏเซเชฒ เชเซ ~/TON/ton
. เช ~/TON
เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซ build
เช
เชจเซ เชคเซเชฎเชพเช เชชเซเชฐเซเชเซเชเซเช เชเชเชคเซเชฐเชฟเชค เชเชฐเซ.
mkdir ~/TON/build
cd ~/TON/build
cmake ../ton
เช
เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฒเชเชตเชพ เชเช เชฐเชนเซเชฏเชพ เชนเซเชตเชพเชฅเซ, เช
เชฎเชพเชฐเซ เชฎเชพเชคเซเชฐ เชเชฐเซเชฐ เชจเชฅเซ lite-client
เชชเชฐเชเชคเซ Fift
ั FunC
, เชคเซ เชเชพเชฒเซ เชฌเชงเซเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเช. เชคเซ เชเชกเชชเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชจเชฅเซ, เชคเซเชฅเซ เช
เชฎเซ เชฐเชพเชน เชเซเช เชฐเชนเซเชฏเชพ เชเซเช.
cmake --build . --target lite-client
cmake --build . --target fift
cmake --build . --target func
เชเชเชณ, เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชซเชพเชเชฒ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชเซเชฎเชพเช เชจเซเชก เชตเชฟเชถเซเชจเซ เชกเซเชเชพ เชเซ lite-client
เชเซเชกเชพเชถเซ.
wget https://test.ton.org/ton-lite-client-test1.config.json
TON เชจเซ เชชเซเชฐเชฅเชฎ เชตเชฟเชจเชเชคเซเช เชเชฐเชตเซ
เชนเชตเซ เชเชพเชฒเซ เชฒเซเชจเซเช เชเชฐเซเช lite-client
.
cd ~/TON/build
./lite-client/lite-client -C ton-lite-client-test1.config.json
เชเซ เชฌเชฟเชฒเซเชก เชธเชซเชณ เชนเชคเซเช, เชคเซ เชชเชเซ เชฒเซเชจเซเช เชเชฐเซเชฏเชพ เชชเชเซ เชคเชฎเซ เชจเซเชก เชธเชพเชฅเซ เชฒเชพเชเช เชเซเชฒเชพเชฏเชเชเชจเชพ เชเชจเซเชเซเชถเชจเชจเซ เชฒเซเช เชเซเชถเซ.
[ 1][t 2][1582054822.963129282][lite-client.h:201][!testnode] conn ready
[ 2][t 2][1582054823.085654020][lite-client.cpp:277][!testnode] server version is 1.1, capabilities 7
[ 3][t 2][1582054823.085725069][lite-client.cpp:286][!testnode] server time is 1582054823 (delta 0)
...
เชคเชฎเซ เชเชฆเซเชถ เชเชฒเชพเชตเซ เชถเชเซ เชเซ help
เช
เชจเซ เชเซเช เชเซ เชเชฏเชพ เชเชฆเซเชถเซ เชเชชเชฒเชฌเซเชง เชเซ.
help
เชเชพเชฒเซ เชเชฆเซเชถเซเชจเซ เชธเซเชเชฟ เชฌเชจเชพเชตเซเช เชเซเชจเซ เชเชชเชฃเซ เช เชฒเซเชเชฎเชพเช เชเชชเชฏเซเช เชเชฐเซเชถเซเช.
list of available commands:
last Get last block and state info from server
sendfile <filename> Load a serialized message from <filename> and send it to server
getaccount <addr> [<block-id-ext>] Loads the most recent state of specified account; <addr> is in [<workchain>:]<hex-or-base64-addr> format
runmethod <addr> [<block-id-ext>] <method-id> <params>... Runs GET method <method-id> of account <addr> with specified parameters
last ะฟะพะปััะฐะตั ะฟะพัะปะตะดะฝะธะน ัะพะทะดะฐะฝะฝัะน ะฑะปะพะบ ั ัะตัะฒะตัะฐ.
sendfile <filename> ะพัะฟัะฐะฒะปัะตั ะฒ TON ัะฐะนะป ั ัะพะพะฑัะตะฝะธะตะผ, ะธะผะตะฝะฝะพ ั ะฟะพะผะพััั ััะพะน ะบะพะผะฐะฝะดั ะฟัะฑะปะธะบัะตััั ัะผะฐัั-ะบะพะฝััะฐะบั ะธ ะทะฐะฟััะพัั ะบ ะฝะตะผั.
getaccount <addr> ะทะฐะณััะถะฐะตั ัะตะบััะตะต ัะพััะพัะฝะธะต ัะผะฐัั-ะบะพะฝััะฐะบัะฐ ั ัะบะฐะทะฐะฝะฝัะผ ะฐะดัะตัะพะผ.
runmethod <addr> [<block-id-ext>] <method-id> <params> ะทะฐะฟััะบะฐะตั get-ะผะตัะพะดั ัะผะฐััะบะพะฝััะฐะบัะฐ.
เชนเชตเซ เช เชฎเซ เชชเซเชคเซ เชเชฐเชพเชฐ เชฒเชเชตเชพ เชคเซเชฏเชพเชฐ เชเซเช.
ะ ะตะฐะปะธะทะฐัะธั
เชเชเชกเชฟเชฏเชพ
เชฎเซเช เชเชชเชฐ เชฒเชเซเชฏเซเช เชคเซเชฎ, เชเชชเชฃเซ เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซ เชฒเซเชเชฐเซ เชเซ.
เชคเชฆเซเชชเชฐเชพเชเชค, เช เชเซเช เชฒเซเชเชฐเซ เชจเชฅเซ เชเซเชฎเชพเช เชคเชฎเชพเชฐเซ เชเชฟเชเชฟเช เชเชฐเซเชฆเชตเชพเชจเซ เช
เชจเซ เชเช เชเชฒเชพเช, เชฆเชฟเชตเชธ เช
เชฅเชตเชพ เชฎเชนเชฟเชจเซ เชฐเชพเชน เชเซเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชชเชฐเชเชคเซ เชเช เชคเซเชตเชฐเชฟเชค เชเซเชฎเชพเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชฐเชพเชฐเชจเชพ เชธเชฐเชจเชพเชฎเชพ เชชเชฐ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ. N
เชเซเชฐเชพเชฎ, เช
เชจเซ เชคเชฐเชค เช เชคเซ เชชเชพเชเซเช เชฎเซเชณเชตเซ เชเซ 2 * N
เชเซเชฐเชพเชฎ เช
เชฅเชตเชพ เชเซเชฎเชพเชตเซ เชเซ. เช
เชฎเซ เชฒเชเชญเช 40% เชเซเชคเชตเชพเชจเซ เชธเชเชญเชพเชตเชจเชพ เชฌเชจเชพเชตเซเชถเซเช. เชเซ เชเซเชเชตเชฃเซ เชฎเชพเชเซ เชชเซเชฐเชคเชพ เชเซเชฐเชพเชฎ เชจ เชนเซเชฏ, เชคเซ เช
เชฎเซ เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชจเซ เชเซเชช-เช
เชช เชคเชฐเซเชเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช.
เชตเชงเซเชฎเชพเช, เชคเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ เชเซ เชฌเซเชเซเชธ เชตเชพเชธเซเชคเชตเชฟเช เชธเชฎเชฏเชฎเชพเช เช เชจเซ เช เชจเซเชเซเชณ เชธเซเชตเชฐเซเชชเชฎเชพเช เชเซเช เชถเชเชพเชฏ, เชเซเชฅเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชคเชฐเชค เช เชธเชฎเชเซ เชถเชเซ เชเซ เชคเซ เชเซเชคเซเชฏเซ เชเซ เชนเชพเชฐเซ เชเชฏเซ. เชคเซเชฅเซ, เชคเชฎเชพเชฐเซ เชเช เชตเซเชฌเชธเชพเชเช เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ TON เชฅเซ เชธเซเชงเชพ เช เชฌเซเชเซเชธ เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชฌเชคเชพเชตเชถเซ.
เชธเซเชฎเชพเชฐเซเช เชเชฐเชพเชฐ เชฒเชเซ เชฐเชนเซเชฏเชพ เชเซเช
เชธเชเชตเชก เชฎเชพเชเซ, เชฎเซเช FunC เชฎเชพเชเซ เชเซเชก เชนเชพเชเชฒเชพเชเช เชเชฐเซเชฏเซ เชเซ; เชชเซเชฒเชเชเชจ เชตเชฟเชเซเชฏเซเช เชฒ เชธเซเชเซเชกเชฟเชฏเซ เชเซเชก เชถเซเชงเชฎเชพเช เชถเซเชงเซ เช เชจเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชถเชเชพเชฏ เชเซ; เชเซ เชคเชฎเซ เช เชเชพเชจเช เชเชเชเช เชเชฎเซเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชนเซ, เชคเซ เชฎเซเช เชชเซเชฒเชเชเชจเชจเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชฐเซเชชเซ เชเชชเชฒเชฌเซเชง เชเชฐเชพเชตเซเชฏเซเช เชเซ. เชเชชเชฐเชพเชเชค, เชเซเชเช เช เชเชพเช เชซเชฟเชซเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฒเชเชเชจ เชฌเชจเชพเชตเซเชฏเซเช เชนเชคเซเช, เชคเชฎเซ เชคเซเชจเซ เชเชจเซเชธเซเชเซเชฒ เชชเชฃ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ เชคเซเชจเซ VSC เชฎเชพเช เชถเซเชงเซ เชถเชเซ เชเซ.
เชเชพเชฒเซ เชคเชฐเชค เช เชเช เชฐเซเชชเซเชเซเชเชฐเซ เชฌเชจเชพเชตเซเช เชเซเชฏเชพเช เชเชชเชฃเซ เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเชชเซเชถเซเช.
เชเชชเชฃเซเช เชเซเชตเชจ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฒเชเซเชถเซเช เช เชจเซ เชเซเชฏเชพเช เชธเซเชงเซ เชคเซ เชคเซเชฏเชพเชฐ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ เชธเซเชฅเชพเชจเชฟเช เชธเซเชคเชฐเซ เชคเซเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชถเซเช. เชคเซ เชชเชเซ เช เช เชฎเซ เชคเซเชจเซ TON เชฎเชพเช เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซเชถเซเช.
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชฌเซ เชฌเชพเชนเซเชฏ เชชเชฆเซเชงเชคเชฟเช เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ. เชชเซเชฐเชฅเชฎ, recv_external()
เช เชเชพเชฐเซเชฏ เชคเซเชฏเชพเชฐเซ เช
เชฎเชฒเชฎเชพเช เชเชตเซ เชเซ เชเซเชฏเชพเชฐเซ เชเชฐเชพเชฐเชจเซ เชตเชฟเชจเชเชคเซ เชฌเชนเชพเชฐเชจเซ เชฆเซเชจเชฟเชฏเชพเชฎเชพเชเชฅเซ เชเชตเซ เชเซ, เชเชเชฒเซ เชเซ, TON เชคเชฐเชซเชฅเซ เชจเชนเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชชเซเชคเซ เชธเชเชฆเซเชถ เชเชจเชฐเซเช เชเชฐเซเช เชเซเช เช
เชจเซ เชคเซเชจเซ เชฒเชพเชเช-เชเซเชฒเชพเชฏเชจเซเช เชฆเซเชตเชพเชฐเชพ เชฎเซเชเชฒเซเช เชเซเช. เชฌเซเชเซเช, recv_internal()
เช เชคเซเชฏเชพเชฐเซ เชฅเชพเชฏ เชเซ เชเซเชฏเชพเชฐเซ, TON เชจเซ เช
เชเชฆเชฐ เช, เชเซเชเชชเชฃ เชเชฐเชพเชฐ เชเชชเชฃเซ เชเชฒเซเชฒเซเช เชเชฐเซ เชเซ. เชฌเชเชจเซ เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชคเชฎเซ เชซเชเชเซเชถเชจเชฎเชพเช เชชเชฐเชฟเชฎเชพเชฃเซ เชชเชธเชพเชฐ เชเชฐเซ เชถเชเซ เชเซ.
เชเชพเชฒเซ เชเช เชธเชฐเชณ เชเชฆเชพเชนเชฐเชฃเชฅเซ เชถเชฐเซเชเชค เชเชฐเซเช เชเซ เชชเซเชฐเชเชพเชถเชฟเชค เชฅเชพเชฏ เชคเซ เชเชพเชฎ เชเชฐเชถเซ, เชชเชฐเชเชคเซ เชคเซเชฎเชพเช เชเซเช เชเชพเชฐเซเชฏเชพเชคเซเชฎเช เชญเชพเชฐ เชจเชฅเซ.
() recv_internal(slice in_msg) impure {
;; TODO: implementation
}
() recv_external(slice in_msg) impure {
;; TODO: implementation
}
เช
เชนเซเช เชเชชเชฃเซ เชคเซ เชถเซเช เชเซ เชคเซ เชธเชฎเชเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ slice
. TON เชฌเซเชฒเซเชเชเซเชจเชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชคเชฎเชพเชฎ เชกเซเชเชพ เชเช เชธเชเชเซเชฐเชน เชเซ TVM cell
เช
เชฅเชตเชพ เชฎเชพเชคเซเชฐ cell
, เชเชตเชพ เชธเซเชฒเชฎเชพเช เชคเชฎเซ 1023 เชฌเชฟเชเซเชธ เชธเซเชงเซเชจเซ เชกเซเชเชพ เช
เชจเซ เช
เชจเซเชฏ เชเซเชทเซเชจเซ 4 เชฒเชฟเชเชเซเชธ เชธเซเชงเซ เชธเซเชเซเชฐ เชเชฐเซ เชถเชเซ เชเซ.
TVM cell slice
เช
เชฅเชตเชพ slice
เช เชนเชพเชฒเชจเชพ เชเช เชญเชพเช เชเซ cell
เชคเซเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชชเชฐเชพเชฏ เชเซ, เชคเซ เชชเชเซเชฅเซ เชธเซเชชเชทเซเช เชฅเชถเซ. เช
เชฎเชพเชฐเชพ เชฎเชพเชเซ เชฎเซเชเซเชฏ เชตเชธเซเชคเซ เช เชเซ เชเซ เช
เชฎเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเซ เชถเชเซเช เชเซเช slice
เช
เชจเซ เชธเชเชฆเซเชถเชจเชพ เชชเซเชฐเชเชพเชฐ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซเชจเซ, เชกเซเชเชพ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ recv_external()
เช
เชฅเชตเชพ recv_internal()
.
impure
โ เชเช เชเซเชตเชฐเซเชก เชเซ เชธเซเชเชตเซ เชเซ เชเซ เชซเชเชเซเชถเชจ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชกเซเชเชพเชจเซ เชธเซเชงเชพเชฐเซ เชเซ.
เชเชพเชฒเซ เชเซเชจเซเชเซเชฐเชพเชเซเช เชเซเชกเชจเซ เชธเชพเชเชตเซเช lottery-code.fc
เช
เชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเซ.
~/TON/build/crypto/func -APSR -o lottery-compiled.fif ~/TON/ton/crypto/smartcont/stdlib.fc ./lottery-code.fc
เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชซเซเชฒเซเชเซเชธเชจเซ เช เชฐเซเชฅ เชเซเช เชถเชเชพเชฏ เชเซ
~/TON/build/crypto/func -help
เช
เชฎเซ เชฎเชพเช เชซเชฟเชซเซเช เชเชธเซเชฎเซเชฌเชฒเชฐ เชเซเชก เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเชฏเซ เชเซ lottery-compiled.fif
:
// lottery-compiled.fif
"Asm.fif" include
// automatically generated from `/Users/rajymbekkapisev/TON/ton/crypto/smartcont/stdlib.fc` `./lottery-code.fc`
PROGRAM{
DECLPROC recv_internal
DECLPROC recv_external
recv_internal PROC:<{
// in_msg
DROP //
}>
recv_external PROC:<{
// in_msg
DROP //
}>
}END>c
เชคเซเชจเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชฒเซเชจเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ, เช เชฎเชพเชเซ เช เชฎเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชคเซเชฏเชพเชฐ เชเชฐเซเชถเซเช.
เชจเซเชเชง เชเชฐเซ เชเซ เชชเซเชฐเชฅเชฎ เชฒเชพเชเชจ เชเซเชกเชพเชฏ เชเซ Asm.fif
, เช เชซเซเชซเซเช เชเชธเซเชฎเซเชฌเชฒเชฐ เชฎเชพเชเซ เชซเซเชซเซเชเชฎเชพเช เชฒเชเชพเชฏเซเชฒ เชเซเชก เชเซ.
เช
เชฎเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชเชฒเชพเชตเชตเชพ เช
เชจเซ เชคเซเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช, เชคเซเชฅเซ เช
เชฎเซ เชเช เชซเชพเชเชฒ เชฌเชจเชพเชตเซเชถเซเช lottery-test-suite.fif
เช
เชจเซ เชคเซเชฏเชพเช เชธเชเชเชฒเชฟเชค เชเซเชกเชจเซ เชจเชเชฒ เชเชฐเซ, เชคเซเชฎเชพเช เชเซเชฒเซเชฒเซ เชฒเชพเชเชจเชจเซ เชฌเชฆเชฒเซเชจเซ, เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเซเชเซเช เชเซเชกเชจเซ เชธเชคเชค เชฒเชเซ เชเซ code
เชชเชเซ เชคเซเชจเซ เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฎเชถเซเชจ เชชเชฐ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ:
"TonUtil.fif" include
"Asm.fif" include
PROGRAM{
DECLPROC recv_internal
DECLPROC recv_external
recv_internal PROC:<{
// in_msg
DROP //
}>
recv_external PROC:<{
// in_msg
DROP //
}>
}END>s constant code
เช เชคเซเชฏเชพเชฐ เชธเซเชงเซ เชคเซ เชธเซเชชเชทเซเช เชเชฃเชพเชฏ เชเซ, เชนเชตเซ เชเชพเชฒเซ เช เช เชซเชพเชเชฒเชฎเชพเช เชเซเชก เชเชฎเซเชฐเซเช เชเซเชจเซ เชเชชเชฏเซเช เชเชชเชฃเซ TVM เชฒเซเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเซเชถเซเช.
0 tuple 0x076ef1ea , // magic
0 , 0 , // actions msg_sents
1570998536 , // unix_time
1 , 1 , 3 , // block_lt, trans_lt, rand_seed
0 tuple 100000000000000 , dictnew , , // remaining balance
0 , dictnew , // contract_address, global_config
1 tuple // wrap to another tuple
constant c7
0 constant recv_internal // to run recv_internal()
-1 constant recv_external // to invoke recv_external()
ะ c7
เช
เชฎเซ เชธเชเชฆเชฐเซเชญ เชฐเซเชเซเชฐเซเชก เชเชฐเซเช เชเซเช, เชเชเชฒเซ เชเซ, เชกเซเชเชพ เชเซ เชเซเชจเซ เชธเชพเชฅเซ TVM (เช
เชฅเชตเชพ เชจเซเชเชตเชฐเซเช เชธเซเชฅเชฟเชคเชฟ) เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชธเซเชชเชฐเซเชงเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชชเชฃ, เชเช เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเชตเซเช เชคเซ เชฌเชคเชพเชตเซเชฏเซเช c7
เช
เชจเซ เชฎเซเช เชจเชเชฒ เชเชฐเซ. เช เชฒเซเชเชฎเชพเช เชเชชเชฃเซ เชฌเชฆเชฒเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเซ เชถเชเซ เชเซ rand_seed
เชเชพเชฐเชฃ เชเซ เชฐเซเชจเซเชกเชฎ เชจเชเชฌเชฐเชจเซ เชเชจเชฐเซเชถเชจ เชคเซเชจเชพ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเซ เชเซ เช
เชจเซ เชเซ เชฌเชฆเชฒเชพเช เชจ เชนเซเชฏ, เชคเซ เชฆเชฐ เชตเชเชคเซ เชคเซ เช เชจเชเชฌเชฐ เชชเชฐเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
recv_internal
ะธ recv_external
เชฎเซเชฒเซเชฏเซ 0 เช
เชจเซ -1 เชธเชพเชฅเซเชจเชพ เชธเซเชฅเชฟเชฐเชพเชเชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชธเชเชฌเชเชงเชฟเชค เชเชพเชฐเซเชฏเซเชจเซ เชเซเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ เชฐเชนเซเชถเซ.
เชนเชตเซ เช
เชฎเซ เช
เชฎเชพเชฐเชพ เชเชพเชฒเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฎเชพเชเซ เชชเซเชฐเชฅเชฎ เชเซเชธเซเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซเช. เชธเซเชชเชทเซเชเชคเชพ เชฎเชพเชเซ, เชนเชฎเชฃเชพเช เชฎเชพเชเซ เช
เชฎเซ เชเช เช เชซเชพเชเชฒเชฎเชพเช เชคเชฎเชพเชฎ เชชเชฐเซเชเซเชทเชฃเซ เชเชฎเซเชฐเซเชถเซเช lottery-test-suite.fif
.
เชเชพเชฒเซ เชเช เชเชฒ เชฌเชจเชพเชตเซเช storage
เช
เชจเซ เชคเซเชฎเชพเช เชเช เชเชพเชฒเซ เชฒเชเซ cell
, เช เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเช เชนเชถเซ.
message
เช เชคเซ เชธเชเชฆเซเชถ เชเซ เชเซ เชเชชเชฃเซ เชฌเชนเชพเชฐเชฅเซ เชธเซเชฎเชพเชฐเซเช เชธเชเชชเชฐเซเชเชฎเชพเช เชชเซเชฐเชธเชพเชฐเชฟเชค เชเชฐเซเชถเซเช. เช
เชฎเซ เชคเซเชจเซ เชนเชฎเชฃเชพเช เชฎเชพเชเซ เชเชพเชฒเซ เชชเชฃ เชเชฐเซเชถเซเช.
variable storage
<b b> storage !
variable message
<b b> message !
เช
เชฎเซ เชธเซเชฅเชฟเชฐเชพเชเชเซ เช
เชจเซ เชเชฒเซ เชคเซเชฏเชพเชฐ เชเชฐเซเชฏเชพ เชชเชเซ, เช
เชฎเซ เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ TVM เชถเชฐเซ เชเชฐเซเช เชเซเช runvmctx
เช
เชจเซ เชฌเชจเชพเชตเซเชฒ เชชเชฐเชฟเชฎเชพเชฃเซเชจเซ เชเชจเชชเซเชเชฎเชพเช เชชเชพเชธ เชเชฐเซ.
message @
recv_external
code
storage @
c7
runvmctx
เช
เชเชคเซ เชเชชเชฃเซ เชธเชซเชณ เชฅเชเชถเซเช Fift
.
เชนเชตเซ เชเชชเชฃเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชก เชเชฒเชพเชตเซ เชถเชเซเช เชเซเช.
export FIFTPATH=~/TON/ton/crypto/fift/lib // ะฒัะฟะพะปะฝัะตะผ ะพะดะธะฝ ัะฐะท ะดะปั ัะดะพะฑััะฒะฐ
~/TON/build/crypto/fift -s lottery-test-suite.fif
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชญเซเชฒเซ เชตเชฟเชจเชพ เชเชพเชฒเชตเซ เชเซเชเช เช เชจเซ เชเชเชเชชเซเชเชฎเชพเช เชเชชเชฃเซ เชเชเซเชเซเชเซเชฏเซเชถเชจ เชฒเซเช เชเซเชถเซเช:
execute SETCP 0
execute DICTPUSHCONST 19 (xC_,1)
execute DICTIGETJMPZ
execute DROP
execute implicit RET
[ 3][t 0][1582281699.325381279][vm.cpp:479] steps: 5 gas: used=304, max=9223372036854775807, limit=9223372036854775807, credit=0
เชธเชฐเชธ, เช เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซเช เชชเซเชฐเชฅเชฎ เชตเชฐเซเชเชฟเชเช เชตเชฐเซเชเชจ เชฒเชเซเชฏเซเช เชเซ.
เชนเชตเซ เชเชชเชฃเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชชเชนเซเชฒเชพ เชเชชเชฃเซ เชเชตเชพ เชธเชเชฆเซเชถเชพเช เชธเชพเชฅเซ เชตเซเชฏเชตเชนเชพเชฐ เชเชฐเซเช เชเซ เชฌเชนเชพเชฐเชจเซ เชฆเซเชจเชฟเชฏเชพเชฅเซ เชเชตเซ เชเซ recv_external()
เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ เชชเซเชคเซ เชธเชเชฆเซเชถ เชซเซเชฐเซเชฎเซเช เชชเชธเชเชฆ เชเชฐเซ เชเซ เชเซ เชเชฐเชพเชฐ เชธเซเชตเซเชเชพเชฐเซ เชถเชเซ เชเซ.
เชชเชฐเชเชคเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ
- เชธเซเชชเซเชฐเชฅเชฎ, เช เชฎเซ เช เชฎเชพเชฐเชพ เชเชฐเชพเชฐเชจเซ เชฌเชนเชพเชฐเชจเซ เชฆเซเชจเชฟเชฏเชพเชฅเซ เชธเซเชฐเชเซเชทเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเชเซเช เชเซเช เชเซเชฅเซ เชเชฐเชพเชฐเชจเชพ เชฎเชพเชฒเชฟเช เช เชคเซเชจเซ เชฌเชพเชนเซเชฏ เชธเชเชฆเซเชถเชพ เชฎเซเชเชฒเซ เชถเชเซ.
- เชฌเซเชเซเช, เชเซเชฏเชพเชฐเซ เช เชฎเซ TON เชจเซ เชฎเชพเชจเซเชฏ เชธเชเชฆเซเชถ เชฎเซเชเชฒเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เช เชฎเซ เชเชเซเชเซเช เชเซเช เชเซ เช เชฌเชฐเชพเชฌเชฐ เชเชเชตเชพเชฐ เชฅเชพเชฏ เช เชจเซ เชเซเชฏเชพเชฐเซ เช เชฎเซ เชคเซ เช เชธเชเชฆเซเชถ เชซเชฐเซเชฅเซ เชฎเซเชเชฒเซเช, เชคเซเชฏเชพเชฐเซ เชธเซเชฎเชพเชฐเซเช เชเชฐเชพเชฐ เชคเซเชจเซ เชจเชเชพเชฐเซ เชเซ.
เชคเซเชฅเซ เชฒเชเชญเช เชฆเชฐเซเช เชเชฐเชพเชฐ เช เชฌเซ เชธเชฎเชธเซเชฏเชพเชเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเซ เชเซ, เชเชพเชฐเชฃ เชเซ เช เชฎเชพเชฐเซ เชเชฐเชพเชฐ เชฌเชพเชนเซเชฏ เชธเชเชฆเซเชถเชพเช เชธเซเชตเซเชเชพเชฐเซ เชเซ, เชเชชเชฃเซ เชคเซเชจเซ เชชเชฃ เชเชพเชณเชเซ เชฒเซเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเซ เชคเซเชจเซ เชตเชฟเชชเชฐเซเชค เชเซเชฐเชฎเชฎเชพเช เชเชฐเซเชถเซเช. เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชเชฐเซเช; เชเซ เชเชฐเชพเชฐ เชชเชนเซเชฒเชพเชฅเซ เช เชเชตเชพ เชธเชเชฆเซเชถ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชเซ เช เชจเซ เชคเซเชจเชพ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ, เชคเซ เชคเซ เชคเซเชจเซ เชฌเซเชเซ เชตเชเชค เชเชฒเชพเชตเชถเซ เชจเชนเซเช. เช เชจเซ เชชเชเซ เช เชฎเซ เชธเชฎเชธเซเชฏเชพเชจเซเช เชจเชฟเชฐเชพเชเชฐเชฃ เชเชฐเซเชถเซเช เชเซเชฅเซ เชฒเซเชเซเชจเชพ เชเซเชเซเชเชธ เชตเชฐเซเชคเซเชณ เช เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเชฐ เชธเชเชฆเซเชถเชพ เชฎเซเชเชฒเซ เชถเชเซ.
เชกเซเชชเซเชฒเชฟเชเซเช เชธเชเชฆเซเชถเชพเช เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพ เชนเชฒ เชเชฐเชตเชพเชจเซ เชตเชฟเชตเชฟเชง เชฐเซเชคเซ เชเซ. เช เชฎเซ เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเซเชถเซเช เชคเซ เช เชนเซเช เชเซ. เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช, เช เชฎเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชฎเซเชฒเซเชฏ 0 เชธเชพเชฅเซ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซเชฒเชพ เชธเชเชฆเซเชถเชพเชเชจเชพ เชเชพเชเชจเซเชเชฐเชจเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซเช เชเซเช. เชธเซเชฎเชพเชฐเซเช เชเชฐเชพเชฐเชจเชพ เชฆเชฐเซเช เชธเชเชฆเซเชถเชพเชฎเชพเช, เช เชฎเซ เชตเชฐเซเชคเชฎเชพเชจ เชเชพเชเชจเซเชเชฐ เชฎเซเชฒเซเชฏ เชเชฎเซเชฐเซเชถเซเช. เชเซ เชธเชเชฆเซเชถเชฎเชพเชเชจเซ เชเชพเชเชจเซเชเชฐ เชตเซเชฒเซเชฏเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซ เชเชฟเชเชฎเชค เชธเชพเชฅเซ เชฎเซเชณ เชเชพเชคเซ เชจเชฅเซ, เชคเซ เช เชฎเซ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชคเชพ เชจเชฅเซ; เชเซ เชคเซ เชฅเชพเชฏ, เชคเซ เช เชฎเซ เชคเซเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซเช เชเซเช เช เชจเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชเชพเชเชจเซเชเชฐ 1 เชฅเซ เชตเชงเชพเชฐเซเช เชเซเช.
เชเชพเชฒเซ เชชเชฐ เชชเชพเชเชพ เชเชตเซเช lottery-test-suite.fif
เช
เชจเซ เชคเซเชฎเชพเช เชฌเซเชเซ เชเซเชธเซเช เชเชฎเซเชฐเซ. เชเซ เชเชชเชฃเซ เชเซเชเซ เชจเชเชฌเชฐ เชฎเซเชเชฒเซเช, เชคเซ เชเซเชกเชจเซ เช
เชชเชตเชพเชฆ เชฅเชตเซ เชเซเชเช. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชจเซเชเซเชฐเชพเชเซเช เชกเซเชเชพเชจเซ 166 เชธเซเชเซเชฐ เชเชฐเชตเชพ เชฆเซ, เช
เชจเซ เช
เชฎเซ 165 เชฎเซเชเชฒเซเชถเซเช.
<b 166 32 u, b> storage !
<b 165 32 u, b> message !
message @
recv_external
code
storage @
c7
runvmctx
drop
exit_code !
."Exit code " exit_code @ . cr
exit_code @ 33 - abort"Test #2 Not passed"
เชเชพเชฒเซ เชฒเซเชจเซเช เชเชฐเซเช.
~/TON/build/crypto/fift -s lottery-test-suite.fif
เช เชจเซ เชเชชเชฃเซ เชเซเชเชถเซเช เชเซ เชชเชฐเซเชเซเชทเชฃ เชญเซเชฒ เชธเชพเชฅเซ เชเชเซเชเชฟเชเซเชฏเซเช เชฅเชฏเซเช เชเซ.
[ 1][t 0][1582283084.210902214][words.cpp:3046] lottery-test-suite.fif:67: abort": Test #2 Not passed
[ 1][t 0][1582283084.210941076][fift-main.cpp:196] Error interpreting file `lottery-test-suite.fif`: error interpreting included file `lottery-test-suite.fif` : lottery-test-suite.fif:67: abort": Test #2 Not passed
เช เชคเชฌเชเซเชเซ lottery-test-suite.fif
เชเซเชตเซเช เชฆเซเชเชพเชตเซเช เชเซเชเช
เชนเชตเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชเชพเชเชจเซเชเชฐ เชฒเซเชเซเช เชเชฎเซเชฐเซเช lottery-code.fc
.
() recv_internal(slice in_msg) impure {
;; TODO: implementation
}
() recv_external(slice in_msg) impure {
if (slice_empty?(in_msg)) {
return ();
}
int msg_seqno = in_msg~load_uint(32);
var ds = begin_parse(get_data());
int stored_seqno = ds~load_uint(32);
throw_unless(33, msg_seqno == stored_seqno);
}
ะ slice in_msg
เช
เชฎเซ เชเซ เชธเชเชฆเซเชถ เชฎเซเชเชฒเซเช เชเซเช เชคเซ เชเชตเซเชฒเซเช เชเซ.
เช เชฎเซ เชชเซเชฐเชฅเชฎ เชตเชธเซเชคเซ เช เชคเชชเชพเชธเซเช เชเซเช เชเซ เชธเชเชฆเซเชถเชฎเชพเช เชกเซเชเชพ เชเซ เชเซ เชจเชนเซเช, เชเซ เชจเชนเซเช, เชคเซ เช เชฎเซ เชเชพเชฒเซ เชฌเชนเชพเชฐ เชจเซเชเชณเซเช เชเซเช.
เชเชเชณ เชเชชเชฃเซ เชธเชเชฆเซเชถเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเช เชเซเช. in_msg~load_uint(32)
เชจเชเชฌเชฐ 165, 32-เชฌเซเช เชฒเซเชก เชเชฐเซ เชเซ unsigned int
เชชเซเชฐเชธเชพเชฐเชฟเชค เชธเชเชฆเซเชถเชฎเชพเชเชฅเซ.
เชเชเชณ เชเชชเชฃเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ 32 เชฌเชฟเชเซเชธ เชฒเซเชก เชเชฐเซเช เชเซเช. เช เชฎเซ เชคเชชเชพเชธเซเช เชเซเช เชเซ เชฒเซเชก เชเชฐเซเชฒ เชจเชเชฌเชฐ เชชเชพเชธ เชเชฐเซเชฒ เชจเชเชฌเชฐ เชธเชพเชฅเซ เชฎเซเชณ เชเชพเชฏ เชเซ; เชเซ เชจเชนเซเช, เชคเซ เช เชฎเซ เช เชชเชตเชพเชฆ เชเชฐเซเช เชเซเช. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเซ เชฌเชฟเชจ-เชฎเซเช เชชเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชนเซเชตเชพเชฅเซ, เช เชชเชตเชพเชฆ เชฅเชตเซ เชเซเชเช.
เชนเชตเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเซเช.
~/TON/build/crypto/func -APSR -o lottery-compiled.fif ~/TON/ton/crypto/smartcont/stdlib.fc ./lottery-code.fc
เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชกเชจเซ เชจเชเชฒ เชเชฐเซ lottery-test-suite.fif
, เชเซเชฒเซเชฒเซ เชฒเชพเชเชจ เชฌเชฆเชฒเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช.
เช เชฎเซ เชคเชชเชพเชธเซเช เชเซเช เชเซ เชชเชฐเซเชเซเชทเชฃ เชชเชพเชธ เชฅเชพเชฏ เชเซ:
~/TON/build/crypto/fift -s lottery-test-suite.fif
เชจเซเชเชง เชเชฐเซ เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเชพ เชธเชเชเชฒเชฟเชค เชเซเชกเชจเซ เชชเชฐเซเชเซเชทเชฃเซ เชธเชพเชฅเซเชจเซ เชซเชพเชเชฒเชฎเชพเช เชธเชคเชค เชเซเชชเชฟ เชเชฐเชตเชพ เชฎเชพเชเซ เช
เชธเซเชตเชฟเชงเชพเชเชจเช เชเซ, เชคเซเชฅเซ เช
เชฎเซ เชเช เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเซเชถเซเช เชเซ เชเซเชกเชจเซ เช
เชฎเชพเชฐเชพ เชฎเชพเชเซ เชธเซเชฅเชฟเชฐเชพเชเชเชฎเชพเช เชฒเชเชถเซ, เช
เชจเซ เช
เชฎเซ เชธเชเชเชฒเชฟเชค เชเซเชกเชจเซ เชซเชเซเชค เช
เชฎเชพเชฐเชพ เชชเชฐเซเชเซเชทเชฃเซ เชธเชพเชฅเซ เชเซเชกเซเชถเซเช. "include"
.
เชชเซเชฐเซเชเซเชเซเช เชซเซเชฒเซเชกเชฐเชฎเชพเช เชซเชพเชเชฒ เชฌเชจเชพเชตเซ build.sh
เชจเซเชเซเชจเซ เชธเชพเชฎเชเซเชฐเซ เชธเชพเชฅเซ.
#!/bin/bash
~/TON/build/crypto/func -SPA -R -o lottery-compiled.fif ~/TON/ton/crypto/smartcont/stdlib.fc ./lottery-code.fc
เชเชพเชฒเซ เชคเซเชจเซ เชเชเซเชเซเชเซเชฏเซเชเซเชฌเชฒ เชฌเชจเชพเชตเซเช.
chmod +x ./build.sh
เชนเชตเซ, เชซเชเซเชค เชเซเชจเซเชเซเชฐเชพเชเซเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เช
เชฎเชพเชฐเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซ. เชชเชฐเชเชคเซ เช เชเชชเชฐเชพเชเชค, เชเชชเชฃเซ เชคเซเชจเซ เชธเชคเชคเชฎเชพเช เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ code
. เชคเซ เชเชชเชฃเซ เชจเชตเซ เชซเชพเชเชฒ เชฌเชจเชพเชตเซเชถเซเช lotter-compiled-for-test.fif
, เชเซเชจเซ เชเชชเชฃเซ เชซเชพเชเชฒเชฎเชพเช เชธเชฎเชพเชตเซเชถเซเช lottery-test-suite.fif
.
เชเชพเชฒเซ เชธเซเชเชฟเชฐเซเชชเซเช เชเซเชกเชจเซ sh เชฎเชพเช เชเชฎเซเชฐเซเช, เชเซ เชธเชเชเชฒเชฟเชค เชซเชพเชเชฒเชจเซ เชธเชฐเชณ เชฐเซเชคเซ เชกเซเชชเซเชฒเชฟเชเซเช เชเชฐเชถเซ lotter-compiled-for-test.fif
เช
เชจเซ เชคเซเชฎเชพเช เชเซเชฒเซเชฒเซ เชฒเซเชเซ เชฌเชฆเชฒเซ.
# copy and change for test
cp lottery-compiled.fif lottery-compiled-for-test.fif
sed '$d' lottery-compiled-for-test.fif > test.fif
rm lottery-compiled-for-test.fif
mv test.fif lottery-compiled-for-test.fif
echo -n "}END>s constant code" >> lottery-compiled-for-test.fif
เชนเชตเซ, เชคเชชเชพเชธเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชชเชฐเชฟเชฃเชพเชฎเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซเช เช
เชจเซ เชเช เชซเชพเชเชฒ เชเชจเชฐเซเช เชฅเชถเซ lottery-compiled-for-test.fif
, เชเซเชจเซ เช
เชฎเซ เช
เชฎเชพเชฐเชพเชฎเชพเช เชธเชพเชฎเซเชฒ เชเชฐเซเชถเซเช lottery-test-suite.fif
ะ lottery-test-suite.fif
เชเชฐเชพเชฐ เชเซเชก เชเชพเชขเซ เชจเชพเชเซ เช
เชจเซ เชฒเซเชเซ เชเชฎเซเชฐเซ "lottery-compiled-for-test.fif" include
.
เช เชฎเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซเช เชเซเช เชเซ เชคเซเช เชชเชพเชธ เชฅเชพเชฏ เชเซ.
~/TON/build/crypto/fift -s lottery-test-suite.fif
เชธเชฐเชธ, เชนเชตเซ เชชเชฐเซเชเซเชทเชฃเซเชจเชพ เชชเซเชฐเชพเชฐเชเชญเชจเซ เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชเช เชซเชพเชเชฒ เชฌเชจเชพเชตเซเช test.sh
, เชเซ เชชเซเชฐเชฅเชฎ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชถเซ build.sh
, เช
เชจเซ เชชเชเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซ.
touch test.sh
chmod +x test.sh
เช เชฎเซ เช เชเชฆเชฐ เชฒเชเซเช เชเซเช
./build.sh
echo "nCompilation completedn"
export FIFTPATH=~/TON/ton/crypto/fift/lib
~/TON/build/crypto/fift -s lottery-test-suite.fif
เชเชพเชฒเซ เชคเซ เชเชฐเซเช test.sh
เช
เชจเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชพเชฎ เชเชฐเซ เชเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซเชจเซ เชเชฒเชพเชตเซ.
chmod +x ./test.sh
./test.sh
เช เชฎเซ เชคเชชเชพเชธ เชเชฐเซเช เชเซเช เชเซ เชเซเชจเซเชเซเชฐเชพเชเซเช เชเชฎเซเชชเชพเชเชฒ เชเชฐเซ เชเซ เช เชจเซ เชชเชฐเซเชเซเชทเชฃเซ เช เชฎเชฒเชฎเชพเช เชเซ.
เชธเชฐเชธ, เชนเชตเซ เชธเซเชเชพเชฐเซเชเช
เชช เชชเชฐ test.sh
เชชเชฐเซเชเซเชทเชฃเซ เชธเชเชเชฒเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ เช
เชจเซ เชคเชฐเชค เช เชเชฒเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. เช
เชนเซเช เชคเซเชจเซ เชฒเชฟเชเช เชเซ
เช เซเช เชเซ, เชเชชเชฃเซ เชเชเชณ เชตเชงเซเช เชคเซ เชชเชนเซเชฒเชพเช, เชเชพเชฒเซ เชธเชเชตเชก เชฎเชพเชเซ เชตเชงเซ เชเช เชตเชธเซเชคเซ เชเชฐเซเช.
เชเชพเชฒเซ เชเช เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซเช build
เชเซเชฏเชพเช เช
เชฎเซ เชเซเชชเชฟ เชเชฐเซเชฒ เชเซเชจเซเชเซเชฐเซเชเซเช เช
เชจเซ เชคเซเชจเชพ เชเซเชฒเซเชจเชจเซ เชธเซเชฅเชฟเชฐเชฎเชพเช เชฒเชเซเชฒเชพ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเซเชถเซเช lottery-compiled.fif
, lottery-compiled-for-test.fif
. เชเชพเชฒเซ เชเช เชซเซเชฒเซเชกเชฐ เชชเชฃ เชฌเชจเชพเชตเซเช test
เชเซเชธเซเช เชซเชพเชเชฒ เชเซเชฏเชพเช เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ? lottery-test-suite.fif
เช
เชจเซ เชธเชเชญเชตเชฟเชค เช
เชจเซเชฏ เชธเชนเชพเชฏเช เชซเชพเชเชฒเซ.
เชเชพเชฒเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชตเชฟเชเชธเชพเชตเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช.
เชเชเชณ เชเช เชชเชฐเซเชเซเชทเชฃ เชนเซเชตเซเช เชเซเชเช เชเซ เชคเชชเชพเชธเซ เชเซ เชเซ เชธเชเชฆเซเชถ เชชเซเชฐเชพเชชเซเชค เชฅเชฏเซ เชเซ เช เชจเซ เชเซเชฏเชพเชฐเซ เช เชฎเซ เชธเชพเชเซ เชจเชเชฌเชฐ เชฎเซเชเชฒเซเช เชคเซเชฏเชพเชฐเซ เชธเซเชเซเชฐเชฎเชพเช เชเชพเชเชจเซเชเชฐ เช เชชเชกเซเช เชฅเชพเชฏ เชเซ. เชชเชฐเชเชคเซ เช เชฎเซ เชคเซ เชชเชเซเชฅเซ เชเชฐเซเชถเซเช.
เชนเชตเซ เชเชพเชฒเซ เชตเชฟเชเชพเชฐเซเช เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชเชฏเชพ เชกเซเชเชพ เชธเซเชเซเชฐเชเซเชเชฐ เช เชจเซ เชเชฏเชพ เชกเซเชเชพเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเซ เชธเชเชเซเชฐเชน เชเชฐเซเช เชเซเช เชคเซ เชฌเชงเซเช เชนเซเช เชตเชฐเซเชฃเชจ เชเชฐเซเชถ.
`seqno` 32-ั
ะฑะธัะฝะพะต ัะตะปะพะต ะฟะพะปะพะถะธัะตะปัะฝะพะต ัะธัะปะพ ััะตััะธะบ.
`pubkey` 256-ัะธ ะฑะธัะฝะพะต ัะตะปะพะต ะฟะพะปะพะถะธัะตะปัะฝะพะต ัะธัะปะพ ะฟัะฑะปะธัะฝัะน ะบะปัั, ั ะฟะพะผะพััั ะบะพัะพัะพะณะพ, ะผั ะฑัะดะตะผ ะฟัะพะฒะตัััั ะฟะพะดะฟะธัั ะพัะฟัะฐะฒะปะตะฝะฝะพะณะพ ะธะทะฒะฝะต ัะพะพะฑัะตะฝะธั, ะพ ัะตะผ ะฝะธะถะต.
`order_seqno` 32-ั
ะฑะธัะฝะพะต ัะตะปะพะต ะฟะพะปะพะถะธัะตะปัะฝะพะต ัะธัะปะพ ั
ัะฐะฝะธั ััะตััะธะบ ะบะพะปะธัะตััะฒะฐ ััะฐะฒะพะบ.
`number_of_wins` 32-ั
ะฑะธัะฝะพะต ัะตะปะพะต ะฟะพะปะพะถะธัะตะปัะฝะพะต ัะธัะปะพ ั
ัะฐะฝะธั ะบะพะปะธัะตััะฒะพ ะฟะพะฑะตะด.
`incoming_amount` ัะธะฟ ะดะฐะฝะฝัั
Gram (ะฟะตัะฒัะต 4 ะฑะธัะฐ ะพัะฒะตัะฐะตั ะทะฐ ะดะปะธะฝั), ั
ัะฐะฝะธั ะพะฑัะตะต ะบะพะปะธัะตััะฒะพ ะณัะฐะผะพะฒ, ะบะพัะพััะต ะฑัะปะธ ะพัะฟัะฐะฒะปะตะฝั ะฝะฐ ะบะพะฝัััะฐะบั.
`outgoing_amount` ะพะฑัะตะต ะบะพะปะธัะตััะฒะพ ะณัะฐะผะพะฒ, ะบะพัะพัะพะต ะฑัะปะพ ะพัะฟัะฐะฒะปะตะฝะพ ะฟะพะฑะตะดะธัะตะปัะผ.
`owner_wc` ะฝะพะผะตั ะฒะพัะบัะตะนะฝะฐ, 32-ั
ะฑะธัะฝะพะต (ะฒ ะฝะตะบะพัะพััั
ะผะตััะฐั
ะฝะฐะฟะธัะฐะฝะพ, ััะพ 8-ะผะธ ะฑะธัะฝะพะต) ัะตะปะพะต ัะธัะปะพ. ะ ะดะฐะฝะฝัะน ะผะพะผะตะฝั ะฒัะตะณะพ ะดะฒะฐ -1 ะธ 0.
`owner_account_id` 256-ัะธ ะฑะธัะฝะพะต ัะตะปะพะต ะฟะพะปะพะถะธัะตะปัะฝะพะต ัะธัะปะพ, ะฐะดัะตั ะบะพะฝััะฐะบัะฐ ะฒ ัะตะบััะตะผ ะฒะพัะบัะตะนะฝะต.
`orders` ะฟะตัะตะผะตะฝะฝะฐั ัะธะฟะฐ ัะปะพะฒะฐัั, ั
ัะฐะฝะธั ะฟะพัะปะตะดะฝะธะต ะดะฒะฐะดัะฐัั ััะฐะฒะพะบ.
เชเชเชณ เชคเชฎเชพเชฐเซ เชฌเซ เชเชพเชฐเซเชฏเซ เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเชพเชฒเซ เชชเชนเซเชฒเชพ เชซเซเชจ เชเชฐเซเช pack_state()
, เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเชเชฎเชพเช เช
เชจเซเชเชพเชฎเซ เชฌเชเชค เชฎเชพเชเซ เชกเซเชเชพเชจเซ เชชเซเช เชเชฐเชถเซ. เชเชพเชฒเซ เชฌเซเชเชพเชจเซ เชฌเซเชฒเชพเชตเซเช unpack_state()
เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเชถเซ เช
เชจเซ เชชเชฐเชค เชเชฐเชถเซ.
_ pack_state(int seqno, int pubkey, int order_seqno, int number_of_wins, int incoming_amount, int outgoing_amount, int owner_wc, int owner_account_id, cell orders) inline_ref {
return begin_cell()
.store_uint(seqno, 32)
.store_uint(pubkey, 256)
.store_uint(order_seqno, 32)
.store_uint(number_of_wins, 32)
.store_grams(incoming_amount)
.store_grams(outgoing_amount)
.store_int(owner_wc, 32)
.store_uint(owner_account_id, 256)
.store_dict(orders)
.end_cell();
}
_ unpack_state() inline_ref {
var ds = begin_parse(get_data());
var unpacked = (ds~load_uint(32), ds~load_uint(256), ds~load_uint(32), ds~load_uint(32), ds~load_grams(), ds~load_grams(), ds~load_int(32), ds~load_uint(256), ds~load_dict());
ds.end_parse();
return unpacked;
}
เช
เชฎเซ เช เชฌเซ เชเชพเชฐเซเชฏเซเชจเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซ เชถเชฐเซเชเชคเชฎเชพเช เชเชฎเซเชฐเซเช เชเซเช. เชคเซ เชเชพเชฎ เชเชฐเชถเซ
เชกเซเชเชพ เชฌเชเชพเชตเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชฌเชฟเชฒเซเช-เชเชจ เชซเชเชเซเชถเชจเชจเซ เชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ set_data()
เช
เชจเซ เชคเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฒเชเชถเซ pack_state()
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเชเชฎเชพเช.
cell packed_state = pack_state(arg_1, .., arg_n);
set_data(packed_state);
เชนเชตเซ เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชกเซเชเชพ เชฒเชเชตเชพ เช เชจเซ เชตเชพเชเชเชตเชพ เชฎเชพเชเซ เช เชจเซเชเซเชณ เชเชพเชฐเซเชฏเซ เชเซ, เช เชฎเซ เชเชเชณ เชตเชงเซ เชถเชเซเช เชเซเช.
เช เชฎเชพเชฐเซ เชคเชชเชพเชธ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชฌเชนเชพเชฐเชฅเซ เชเชตเชคเชพ เชธเชเชฆเซเชถ เชชเชฐ เชเชฐเชพเชฐเชจเชพ เชฎเชพเชฒเชฟเช (เช เชฅเชตเชพ เชเชพเชจเชเซ เชเซเชจเซ เชเชเซเชธเซเชธ เชงเชฐเชพเชตเชคเชพ เช เชจเซเชฏ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ) เชฆเซเชตเชพเชฐเชพ เชธเชนเซ เชฅเชฏเซเชฒ เชเซ.
เชเซเชฏเชพเชฐเซ เช เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เช เชฎเซ เชคเซเชจเซ เชธเซเชเซเชฐเซเชเชฎเชพเช เชเซเชเชคเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชชเซเชฐเชพเชฐเชเชญ เชเชฐเซ เชถเชเซเช เชเซเช, เชเซ เชญเชตเชฟเชทเซเชฏเชจเชพ เชเชชเชฏเซเช เชฎเชพเชเซ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเชถเซ. เช เชฎเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซเชจเซ เชคเซเชฏเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเซเชถเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เช เชฎเซ เชเชเชพเชธเซ เชถเชเซเช เชเซ เชเชตเชจเชพเชฐเชพ เชธเชเชฆเซเชถเชจเซ เชธเชเชฌเชเชงเชฟเชค เชเชพเชจเชเซ เชเซ เชตเชกเซ เชธเชนเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ.
เชเชพเชฒเซ เชฐเชพเชเชคเชพ เชชเชนเซเชฒเชพ, เชเชพเชฒเซ เชเช เชเชพเชจเชเซ เชเซ เชฌเชจเชพเชตเซเช เช
เชจเซ เชคเซเชจเซ เชฒเชเซเช test/keys/owner.pk
. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ Fift เชจเซ เชเชจเซเชเชฐเซเชเซเชเชฟเชต เชฎเซเชกเชฎเชพเช เชฒเซเชเช เชเชฐเซเช เช
เชจเซ เชเชพเชฐ เชเชฆเซเชถเซ เชเชฒเชพเชตเซเช.
`newkeypair` ะณะตะฝะตัะฐัะธั ะฟัะฑะปะธัะฝะพะณะพ ะธ ะฟัะธะฒะฐัะฝะพะณะพ ะบะปััะฐ ะธ ะทะฐะฟะธัั ะธั
ะฒ ััะตะบ.
`drop` ัะดะฐะปะตะฝะธั ะธะท ััะตะบะฐ ะฒะตัั
ะฝะตะณะพ ัะปะตะผะตะฝัะฐ (ะฒ ะดะฐะฝะฝะพะผ ัะปััะฐะต ะฟัะฑะปะธัะฝัะน ะบะปัั)
`.s` ะฟัะพััะพ ะฟะพัะผะพััะตัั ััะพ ะปะตะถะธั ะฒ ััะตะบะต ะฒ ะดะฐะฝะฝัะน ะผะพะผะตะฝั
`"owner.pk" B>file` ะทะฐะฟะธัั ะฟัะธะฒะฐัะฝะพะณะพ ะบะปััะฐ ะฒ ัะฐะนะป ั ะธะผะตะฝะตะผ `owner.pk`.
`bye` ะทะฐะฒะตััะฐะตั ัะฐะฑะพัั ั Fift.
เชเชพเชฒเซ เชเช เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซเช keys
เชซเซเชฒเซเชกเชฐเชจเซ เช
เชเชฆเชฐ test
เช
เชจเซ เชคเซเชฏเชพเช เชเชพเชจเชเซ เชเซ เชฒเชเซ.
mkdir test/keys
cd test/keys
~/TON/build/crypto/fift -i
newkeypair
ok
.s
BYTES:128DB222CEB6CF5722021C3F21D4DF391CE6D5F70C874097E28D06FCE9FD6917 BYTES:DD0A81AAF5C07AAAA0C7772BB274E494E93BB0123AA1B29ECE7D42AE45184128
drop
ok
"owner.pk" B>file
ok
bye
เชเชชเชฃเซ เชตเชฐเซเชคเชฎเชพเชจ เชซเซเชฒเซเชกเชฐเชฎเชพเช เชซเชพเชเชฒ เชเซเชเช เชเซเช owner.pk
.
เช เชฎเซ เชธเซเชเซเชเชฎเชพเชเชฅเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชฆเซเชฐ เชเชฐเซเช เชเซเช เช เชจเซ เชเซเชฏเชพเชฐเซ เชเชฐเซเชฐ เชชเชกเซ เชคเซเชฏเชพเชฐเซ เช เชฎเซ เชคเซเชจเซ เชเชพเชจเชเซเชฎเชพเชเชฅเซ เชฎเซเชณเชตเซ เชถเชเซเช เชเซเช.
เชนเชตเซ เชเชชเชฃเซ เชธเชนเซ เชเชเชพเชธเชฃเซ เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเชพเชฒเซ เชเซเชธเซเชเชฅเซ เชถเชฐเซเชเชค เชเชฐเซเช. เชชเซเชฐเชฅเชฎ เชเชชเชฃเซ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชซเชพเชเชฒเชฎเชพเชเชฅเซ เชเชพเชจเชเซ เชเซ เชตเชพเชเชเซเช เชเซเช file>B
เช
เชจเซ เชคเซเชจเซ เชเชฒ เชชเชฐ เชฒเชเซ owner_private_key
, เชชเชเซ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ priv>pub
เชเชพเชจเชเซ เชเซเชจเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซเชฎเชพเช เชเชจเซเชตเชฐเซเช เชเชฐเซ เช
เชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชฒเชเซ owner_public_key
.
variable owner_private_key
variable owner_public_key
"./keys/owner.pk" file>B owner_private_key !
owner_private_key @ priv>pub owner_public_key !
เช เชฎเชจเซ เชฌเชเชจเซ เชเซเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ.
เช
เชฎเซ เชซเชเชเซเชถเชจเชจเซ เชเซเชฎ เช เชเซเชฐเชฎเชฎเชพเช เชฎเชจเชธเซเชตเซ เชกเซเชเชพ เชธเชพเชฅเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเช เชถเชฐเซ เชเชฐเซเช เชเซเช pack_state()
เช
เชจเซ เชคเซเชจเซ เชเชฒเชฎเชพเช เชฒเชเซ storage
.
variable owner_private_key
variable owner_public_key
variable orders
variable owner_wc
variable owner_account_id
"./keys/owner.pk" file>B owner_private_key !
owner_private_key @ priv>pub owner_public_key !
dictnew orders !
0 owner_wc !
0 owner_account_id !
<b 0 32 u, owner_public_key @ B, 0 32 u, 0 32 u, 0 Gram, 0 Gram, owner_wc @ 32 i, owner_account_id @ 256 u, orders @ dict, b> storage !
เชเชเชณ, เช เชฎเซ เชเช เชธเชนเซ เชเชฐเซเชฒ เชธเชเชฆเซเชถ เชเชเชชเซเช เชเชฐเซเชถเซเช, เชคเซเชฎเชพเช เชซเชเซเชค เชธเชนเซ เช เชจเซ เชเชพเชเชจเซเชเชฐ เชตเซเชฒเซเชฏเซ เชนเชถเซ.
เชชเซเชฐเชฅเชฎ, เช เชฎเซ เชคเซ เชกเซเชเชพ เชฌเชจเชพเชตเซเช เชเซเช เชเซ เช เชฎเซ เชเซเชฐเชพเชจเซเชธเชฎเชฟเช เชเชฐเชตเชพ เชฎเชพเชเชเซเช เชเซเช, เชชเชเซ เช เชฎเซ เชคเซเชจเซ เชเชพเชจเชเซ เชเซ เชตเชกเซ เชธเชนเซ เชเชฐเซเช เชเซเช เช เชจเซ เช เชเชคเซ เช เชฎเซ เชเช เชธเชนเซ เชเชฐเซเชฒ เชธเชเชฆเซเชถ เชเชจเชฐเซเช เชเชฐเซเช เชเซเช.
variable message_to_sign
variable message_to_send
variable signature
<b 0 32 u, b> message_to_sign !
message_to_sign @ hashu owner_private_key @ ed25519_sign_uint signature !
<b signature @ B, 0 32 u, b> <s message_to_send !
เชชเชฐเชฟเชฃเชพเชฎเซ, เช
เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเชฐ เชเซ เชธเชเชฆเซเชถ เชฎเซเชเชฒเซเชถเซเช เชคเซ เชเชฒเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ message_to_send
, เชเชพเชฐเซเชฏเซ เชตเชฟเชถเซ hashu
, ed25519_sign_uint
เชคเชฎเซ เชตเชพเชเชเซ เชถเชเซ เชเซ
เช เชจเซ เชชเชฐเซเชเซเชทเชฃ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ เช เชฎเซ เชซเชฐเซเชฅเซ เชเซเชฒ เชเชฐเซเช เชเซเช.
message_to_send @
recv_external
code
storage @
c7
runvmctx
เชเชพเชฒเซ เชชเชฐเซเชเซเชทเชฃ เชเชฒเชพเชตเซเช เช เชจเซ เชคเซ เชจเชฟเชทเซเชซเชณ เชเชถเซ, เชคเซเชฅเซ เช เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเชฐเชพเชฐเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซเชถเซเช เชเซเชฅเซ เชคเซ เช เชซเซเชฐเซเชฎเซเชเชจเชพ เชธเชเชฆเซเชถเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเซ เชถเชเซ เช เชจเซ เชนเชธเซเชคเชพเชเซเชทเชฐ เชเชเชพเชธเซ เชถเชเซ.
เชชเซเชฐเชฅเชฎ, เช เชฎเซ เชธเชเชฆเซเชถเชฎเชพเชเชฅเซ เชนเชธเซเชคเชพเชเซเชทเชฐเชจเชพ 512 เชฌเชฟเชเซเชธ เชเชฃเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชตเซเชฐเซเชเชฌเชฒเชฎเชพเช เชฒเชเซเช เชเซเช, เชชเชเซ เช เชฎเซ เชเชพเชเชจเซเชเชฐ เชตเซเชฐเซเชเชฌเชฒเชจเชพ 32 เชฌเชฟเชเซเชธ เชเชฃเซเช เชเซเช.
เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเชตเชพเชจเซเช เชซเชเชเซเชถเชจ เชนเซเชตเชพเชฅเซ, เช เชฎเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช.
เชเชเชณ เชธเซเชเซเชฐเซเช เชธเชพเชฅเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชพเชเชจเซเชเชฐ เชคเชชเชพเชธเชตเซเช เช เชจเซ เชนเชธเซเชคเชพเชเซเชทเชฐ เชคเชชเชพเชธเชตเซเช. เชเซ เชเชเชเช เชฎเซเชณ เชเชพเชคเซเช เชจเชฅเซ, เชคเซ เช เชฎเซ เชฏเซเชเซเชฏ เชเซเชก เชธเชพเชฅเซ เช เชชเชตเชพเชฆ เชซเซเชเชเซเช เชเซเช.
var signature = in_msg~load_bits(512);
var message = in_msg;
int msg_seqno = message~load_uint(32);
(int stored_seqno, int pubkey, int order_seqno, int number_of_wins, int incoming_amount, int outgoing_amount, int owner_wc, int owner_account_id, cell orders) = unpack_state();
throw_unless(33, msg_seqno == stored_seqno);
throw_unless(34, check_signature(slice_hash(in_msg), signature, pubkey));
เชธเชเชฌเชเชงเชฟเชค เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ
เชเชพเชฒเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซเช เช เชจเซ เชเซเช เชเซ เชฌเซเชเซ เชเชธเซเชเซ เชจเชฟเชทเซเชซเชณ เชเชพเชฏ เชเซ. เชฌเซ เชเชพเชฐเชฃเซเชธเชฐ, เชธเชเชฆเซเชถเชฎเชพเช เชชเชฐเซเชฏเชพเชชเซเชค เชฌเชฟเชเซเชธ เชจเชฅเซ เช เชจเซ เชธเซเชเซเชฐเซเชเชฎเชพเช เชชเชฐเซเชฏเชพเชชเซเชค เชฌเชฟเชเซเชธ เชจเชฅเซ, เชคเซเชฅเซ เชชเชพเชฐเซเชธเชฟเชเช เชเชฐเชคเซ เชตเชเชคเซ เชเซเชก เชเซเชฐเซเชถ เชฅเชพเชฏ เชเซ. เช เชฎเซ เชเซ เชธเชเชฆเซเชถ เชฎเซเชเชฒเซ เชฐเชนเซเชฏเชพ เชเซเช เชคเซเชจเชพ เชชเชฐ เช เชฎเชพเชฐเซ เชนเชธเซเชคเชพเชเซเชทเชฐ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เช เชจเซ เชเซเชฒเซเชฒเซ เชเชธเซเชเซเชฎเชพเชเชฅเซ เชธเชเชเซเชฐเชนเชจเซ เชจเชเชฒ เชเชฐเชตเซ เชชเชกเชถเซ.
เชฌเซเชเชพ เชเซเชธเซเชเชฎเชพเช, เช
เชฎเซ เชเช เชธเชเชฆเซเชถ เชธเชนเซ เชเชฎเซเชฐเซเชถเซเช เช
เชจเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเช เชฌเชฆเชฒเซเชถเซเช.
เชเชพเชฒเซ เชเซเชฅเซ เชเซเชธเซเช เชฒเชเซเช, เชเซเชฎเชพเช เชเชชเชฃเซ เชเซเช เชฌเซเชเชพเชจเซ เชชเซเชฐเชพเชเชตเซเช เชเซ เชตเชกเซ เชธเชนเซ เชเชฐเซเชฒ เชฎเซเชธเซเช เชฎเซเชเชฒเซเชถเซเช. เชเชพเชฒเซ เชฌเซเชเซ เชเชพเชจเชเซ เชเซ เชฌเชจเชพเชตเซเช เช
เชจเซ เชคเซเชจเซ เชซเชพเชเชฒเชฎเชพเช เชธเซเชต เชเชฐเซเช not-owner.pk
. เช
เชฎเซ เช เชเชพเชจเชเซ เชเซ เชตเชกเซ เชธเชเชฆเซเชถ เชชเชฐ เชธเชนเซ เชเชฐเซเชถเซเช. เชเชพเชฒเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซเช เช
เชจเซ เชเชพเชคเชฐเซ เชเชฐเซเช เชเซ เชคเชฎเชพเชฎ เชชเชฐเซเชเซเชทเชฃเซ เชชเชพเชธ เชฅเชพเชฏ เชเซ.
เชนเชตเซ เชเชชเชฃเซ เชเชเชฐเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฒเซเชเชฟเชเชจเซ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชเชเชณ เชตเชงเซ เชถเชเซเช เชเซเช.
ะ recv_external()
เช
เชฎเซ เชฌเซ เชชเซเชฐเชเชพเชฐเชจเชพ เชธเชเชฆเซเชถเชพเช เชธเซเชตเซเชเชพเชฐเซเชถเซเช.
เช เชฎเชพเชฐเซ เชเชฐเชพเชฐ เชเซเชฒเชพเชกเซเชเชจเซ เชเซเช เชเชเช เชพ เชเชฐเชถเซ, เชคเซเชฅเซ เช เชจเชพเชฃเชพเช เชฒเซเชเชฐเซเชจเชพ เชธเชฐเซเชเชเชจเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชเชฐเชตเชพ เชเชตเชถเซเชฏเช เชเซ. เชเซเชฏเชพเชฐเซ เชเชฐเชพเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ เชฒเซเชเชฐเซ เชฌเชจเชพเชตเชจเชพเชฐเชจเซเช เชตเซเชฒเซเช เชธเชฐเชจเชพเชฎเซเช เชธเซเชเซเชฐเซเชเชฎเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชฎเชพเชคเซเชฐ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชฎเชจเซ เชธเชฐเชจเชพเชฎเซเช เชฌเชฆเชฒเชตเชพเชจเซ เชเซเชทเชฎเชคเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชเซเชจเชพ เชชเชฐ เช เชฎเซ เชเซเชฎเชพเชตเชจเชพเชฐเชพเชเชจเชพ เชเซเชฐเชพเชฎ เชฎเซเชเชฒเซเช เชเซเช. เช เชฎเซ เชฒเซเชเชฐเซเชฎเชพเชเชฅเซ เชเซเชฐเชพเชฎ เชชเชฃ เชฎเชพเชฒเชฟเชเชจเชพ เชธเชฐเชจเชพเชฎเซ เชฎเซเชเชฒเชตเชพ เชธเชเซเชทเชฎ เชนเซเชตเชพ เชเซเชเช.
เชเชพเชฒเซ เชชเซเชฐเชฅเชฎ เชธเชพเชฅเซ เชถเชฐเซ เชเชฐเซเช. เชเชพเชฒเซ เชชเชนเซเชฒเชพ เชเช เชเซเชธเซเช เชฒเชเซเช เชเซ เชเซเช เชเชฐเชถเซ เชเซ เชฎเซเชธเซเช เชฎเซเชเชฒเซเชฏเชพ เชชเชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเซ เชธเซเชเซเชฐเซเชเชฎเชพเช เชจเชตเซเช เชธเชฐเชจเชพเชฎเซเช เชธเซเชต เชเชฐเซเชฏเซเช เชเซ. เชฎเชนเซเชฐเชฌเชพเชจเซ เชเชฐเซเชจเซ เชจเซเชเชง เชเชฐเซ เชเซ เชธเชเชฆเซเชถเชฎเชพเช, เชเชพเชเชจเซเชเชฐ เช
เชจเซ เชจเชตเชพ เชธเชฐเชจเชพเชฎเชพเช เชเชชเชฐเชพเชเชค, เช
เชฎเซ เชชเชฃ เชชเซเชฐเชธเชพเชฐเชฟเชค เชเชฐเซเช เชเซเช action
7-เชฌเซเช เชชเซเชฐเซเชฃเชพเชเช เชฌเชฟเชจ-เชจเซเชเซเชเชฟเชต เชจเชเชฌเชฐ, เชคเซเชจเชพ เชเชงเชพเชฐเซ, เช
เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชธเชเชฆเซเชถเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซ เชคเซ เชชเชธเชเชฆ เชเชฐเซเชถเซเช.
<b 0 32 u, 1 @ 7 u, new_owner_wc @ 32 i, new_owner_account_id @ 256 u, b> message_to_sign !
เชชเชฐเซเชเซเชทเชฃเชฎเชพเช เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเช เชเซเชตเซ เชฐเซเชคเซ เชกเซเชธเซเชฐเชฟเชฏเชฒเชพเชเช เชฅเชพเชฏ เชเซ storage
เชชเชพเชเชเชฎเชพเช. เชเชฒเซเชจเซเช เชกเซเชธเซเชฐเชฟเชฏเชฒเชพเชเชเซเชถเชจ เชซเชฟเชซเซเช เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃเชฎเชพเช เชตเชฐเซเชฃเชตเซเชฒ เชเซ.
เชเชพเชฒเซ เชชเชฐเซเชเซเชทเชฃ เชเชฒเชพเชตเซเช เช เชจเซ เชเชพเชคเชฐเซ เชเชฐเซเช เชเซ เชคเซ เชจเชฟเชทเซเชซเชณ เชเชพเชฏ เชเซ. เชนเชตเซ เชฒเซเชเชฐเซ เชฎเชพเชฒเชฟเชเชจเซเช เชธเชฐเชจเชพเชฎเซเช เชฌเชฆเชฒเชตเชพ เชฎเชพเชเซ เชฒเซเชเชฟเช เชเชฎเซเชฐเซเช.
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เช
เชฎเซ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช message
, เชฎเชพเช เชตเชพเชเชเซ action
. เชเชพเชฒเซ เชคเชฎเชจเซ เชฏเชพเชฆ เช
เชชเชพเชตเซเช เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชฌเซ เชนเชถเซ action
: เชธเชฐเชจเชพเชฎเซเช เชฌเชฆเชฒเซ เช
เชจเซ เชเซเชฐเชพเชฎ เชฎเซเชเชฒเซ.
เชชเชเซ เช
เชฎเซ เชเชฐเชพเชฐเชจเชพ เชฎเชพเชฒเชฟเชเชจเซเช เชจเชตเซเช เชธเชฐเชจเชพเชฎเซเช เชตเชพเชเชเซเช เชเซเช เช
เชจเซ เชคเซเชจเซ เชธเซเชเซเชฐเซเชเชฎเชพเช เชธเชพเชเชตเซเช เชเซเช.
เช
เชฎเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซเช เชเซเช เช
เชจเซ เชเซเชเช เชเซเช เชเซ เชคเซเชฐเซเชเซ เชเชธเซเชเซ เชจเชฟเชทเซเชซเชณ เชเชพเชฏ เชเซ. เชคเซ เช เชนเชเซเชเชคเชจเซ เชเชพเชฐเชฃเซ เชเซเชฐเซเชถ เชฅเชพเชฏ เชเซ เชเซ เชเซเชจเซเชเซเชฐเชพเชเซเช เชนเชตเซ เชฎเซเชธเซเชเชฎเชพเชเชฅเซ 7 เชฌเชฟเชเซเชธเชจเซเช เชชเชฃ เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซ เชเซ, เชเซ เชชเชฐเซเชเซเชทเชฃเชฎเชพเช เชเซเชเซ เชเซ. เชธเชเชฆเซเชถเชฎเชพเช เช
เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชจเชฅเซ เชคเซ เชเชฎเซเชฐเซ action
. เชเชพเชฒเซ เชชเชฐเซเชเซเชทเชฃเซ เชเชฒเชพเชตเซเช เช
เชจเซ เชเซเช เชเซ เชฌเชงเซเช เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ.
เชนเชตเซ เชชเชนเซเชฒเชพ เชธเซเชต เชเชฐเซเชฒเชพ เชเชกเซเชฐเซเชธ เชชเชฐ เชเซเชฐเชพเชฎเชจเซ เชธเซเชชเชทเซเช เชธเชเชเซเชฏเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซเชจเซ เชคเชฐเซเช เชฒเชเซเช.
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเช เชชเชฐเซเชเซเชทเชฃ เชฒเชเซเช. เช
เชฎเซ เชฌเซ เชชเชฐเซเชเซเชทเชฃเซ เชฒเชเซเชถเซเช, เชเช เชเซเชฏเชพเชฐเซ เชชเชฐเซเชฏเชพเชชเซเชค เชธเชเชคเซเชฒเชจ เชจ เชนเซเชฏ, เชฌเซเชเซเช เชเซเชฏเชพเชฐเซ เชฌเชงเซเช เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชชเชพเชธ เชฅเชตเซเช เชเซเชเช. เชเซเชธเซเช เชเซเช เชถเชเชพเชฏ เชเซ
เชนเชตเซ เชเชพเชฒเซ เชเซเชก เชเชฎเซเชฐเซเช. เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชฌเซ เชธเชนเชพเชฏเช เชชเชฆเซเชงเชคเชฟเช เชฒเชเซเช. เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชฌเซเชฒเซเชจเซเชธ เชถเซเชงเชตเชพเชจเซ เชชเซเชฐเชฅเชฎ เชชเชฆเซเชงเชคเชฟ เชเซ.
int balance() inline_ref method_id {
return get_balance().pair_first();
}
เช เชจเซ เชฌเซเชเซ เชเช เช เชจเซเชฏ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเชฐ เชเซเชฐเชพเชฎ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เชเซ. เชฎเซเช เช เชชเชฆเซเชงเชคเชฟเชจเซ เชฌเซเชเชพ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเชเชฅเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชเซเชชเชฟ เชเชฐเซ เชเซ.
() send_grams(int wc, int addr, int grams) impure {
;; int_msg_info$0 ihr_disabled:Bool bounce:Bool bounced:Bool src:MsgAddress -> 011000
cell msg = begin_cell()
;; .store_uint(0, 1) ;; 0 <= format indicator int_msg_info$0
;; .store_uint(1, 1) ;; 1 <= ihr disabled
;; .store_uint(1, 1) ;; 1 <= bounce = true
;; .store_uint(0, 1) ;; 0 <= bounced = false
;; .store_uint(4, 5) ;; 00100 <= address flags, anycast = false, 8-bit workchain
.store_uint (196, 9)
.store_int(wc, 8)
.store_uint(addr, 256)
.store_grams(grams)
.store_uint(0, 107) ;; 106 zeroes + 0 as an indicator that there is no cell with the data.
.end_cell();
send_raw_message(msg, 3); ;; mode, 2 for ignoring errors, 1 for sender pays fees, 64 for returning inbound message value
}
เชเชพเชฒเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เช เชฌเซ เชชเชฆเซเชงเชคเชฟเช เชเชฎเซเชฐเซเช เช เชจเซ เชคเชฐเซเช เชฒเชเซเช. เชชเซเชฐเชฅเชฎ, เช เชฎเซ เชธเชเชฆเซเชถเชฎเชพเชเชฅเซ เชเซเชฐเชพเชฎเชจเซ เชธเชเชเซเชฏเชพเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเช เชเซเช. เชเชเชณ เชเชชเชฃเซ เชธเชเชคเซเชฒเชจ เชคเชชเชพเชธเซเช เชเซเช, เชเซ เชคเซ เชชเซเชฐเชคเซเช เชจ เชนเซเชฏ เชคเซ เช เชฎเซ เช เชชเชตเชพเชฆ เชซเซเชเชเซเช เชเซเช. เชเซ เชฌเชงเซเช เชฌเชฐเชพเชฌเชฐ เชเซ, เชคเซ เช เชฎเซ เชเซเชฐเชพเชฎเชจเซ เชธเชพเชเชตเซเชฒเชพ เชธเชฐเชจเชพเชฎเชพเช เชชเชฐ เชฎเซเชเชฒเซเช เชเซเช เช เชจเซ เชเชพเชเชจเซเชเชฐเชจเซ เช เชชเชกเซเช เชเชฐเซเช เชเซเช.
int amount_to_send = message~load_grams();
throw_if(36, amount_to_send + 500000000 > balance());
accept_message();
send_grams(owner_wc, owner_account_id, amount_to_send);
set_data(pack_state(stored_seqno + 1, pubkey, order_seqno, number_of_wins, incoming_amount, outgoing_amount, owner_wc, owner_account_id, orders));
เชฌเชพเชฏ เชง เชตเซ, เชชเซเชฐเซเชธเซเชธเซเชก เชฎเซเชธเซเช เชฎเชพเชเซ เชฆเชฐ เชตเชเชคเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเชเชฅเซ เชเชฎเชฟเชถเชจ เชเชพเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเชเชฆเซเชถเชพเช เชตเชฟเชจเชเชคเซเชจเซ เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชฎเซเชณเชญเซเชค เชคเชชเชพเชธ เชชเชเซ เชคเชฎเชพเชฐเซ เชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ accept_message()
.
เชนเชตเซ เชเชพเชฒเซ เชเชเชคเชฐเชฟเช เชธเชเชฆเซเชถเชพเช เชคเชฐเชซ เชเชเชณ เชตเชงเซเช. เชตเชพเชธเซเชคเชตเชฎเชพเช, เช เชฎเซ เชฎเชพเชคเซเชฐ เชเซเชฐเชพเชฎ เช เชธเซเชตเซเชเชพเชฐเซเชถเซเช เช เชจเซ เชเซ เชเซเชฒเชพเชกเซ เชเซเชคเซ เชคเซ เชฌเชฎเชฃเซ เชฐเชเชฎ เช เชจเซ เชฎเชพเชฒเชฟเชเชจเซ เชคเซเชฐเซเชเซ เชฐเชเชฎ เชเซ เชคเซ เชนเชพเชฐเซ เชเชพเชฏ เชคเซ เชคเซเชจเซ เชชเชฐเชค เชฎเซเชเชฒเซเชถเซเช.
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเช เชธเชฐเชณ เชเชธเซเชเซ เชฒเชเซเช. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเชจเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเซเชเซเชเชจเชพ เชเซเชธเซเช เชเชกเซเชฐเซเชธเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฎเชพเชเชฅเซ เช เชฎเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเชเชฎเชพเช เชเซเชฐเชพเชฎ เชฎเซเชเชฒเซเช เชเซเช.
เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชเชกเซเชฐเซเชธเชฎเชพเช เชฌเซ เชจเชเชฌเชฐเชจเซ เชธเชฎเชพเชตเซเชถ เชฅเชพเชฏ เชเซ, เชตเชฐเซเชเชเซเชจ เชฎเชพเชเซ เชเชตเชพเชฌเชฆเชพเชฐ 32-เชฌเซเช เชชเซเชฐเซเชฃเชพเชเช เช เชจเซ เช เชตเชฐเซเชเชเซเชจเชฎเชพเช 256-เชฌเซเช เชจเซเชจ-เชจเซเชเซเชเชฟเชต เชชเซเชฐเซเชฃเชพเชเช เช เชจเชจเซเชฏ เชเชเชพเชเชจเซเช เชจเชเชฌเชฐ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, -1 เช เชจเซ 12345, เช เช เชธเชฐเชจเชพเชฎเซเช เชเซ เชเซเชจเซ เชเชชเชฃเซ เชซเชพเชเชฒเชฎเชพเช เชธเซเชต เชเชฐเซเชถเซเช.
เชฎเซเช เชเชกเซเชฐเซเชธ เชธเซเชต เชเชฐเชตเชพ เชฎเชพเชเซ เชซเชเชเซเชถเชจ เชเซเชชเซ เชเชฐเซเชฏเซเช 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));
}
เชคเซ เชฌเชงเซเช เชเซ.
เชนเชตเซ เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชธเชฐเชณ เชเซ, เชเชพเชฒเซ เชเซเช-เชฎเซเชฅเชก เชฌเชจเชพเชตเซเช เชเซเชฅเซ เชเชฐเซเชจเซ เชเชชเชฃเซ เชฌเชนเชพเชฐเชจเซ เชฆเซเชจเชฟเชฏเชพเชฎเชพเชเชฅเซ เชเชฐเชพเชฐเชจเซ เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซ เชถเชเซเช (เชนเชเซเชเชคเชฎเชพเช, เชคเซเชฎเชจเชพ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชธเซเชเซเชฐเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเซ).
เชนเซเช เชเซเชก เชเชฎเซเชฐเชตเชพเชจเซเช เชชเชฃ เชญเซเชฒเซ เชเชฏเซ เชเซเช เชเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชคเซ เชตเชเชคเซ เชฅเชคเซ เชชเซเชฐเชฅเชฎ เชตเชฟเชจเชเชคเซ เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเชถเซ.
เชเชเชณเชจเซเช เชชเชเชฒเซเช เช เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชตเชพเชจเซเช เชเซ. เชเชพเชฒเซ เชเช เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซเช 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 เชเซเชฒเชพเชเชก เชชเชฐ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชชเซเชฐเชฏเชคเซเชจ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ
เชนเชตเซ เชเชชเชฃเซ เชคเซเชฏเชพเชเชฅเซ เชซเชฐเซ เชญเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฐเชพเชฎ เชฎเซเชเชฒเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช
เชเชเซเชเชพเชฐเชฃ
เชฒเซเช เชฎเชพเชฐเซ เชงเชพเชฐเชฃเชพ เชเชฐเชคเชพเช เชเชฃเซ เชฒเชพเชเชฌเซ เชจเซเชเชณเซเชฏเซ, เชเชฆเชพเช เชคเซ เชเซเชเชเซ เชนเซเช เชถเชเซ, เช เชฅเชตเชพ เชเชฆเชพเช เชฎเชพเชคเซเชฐ เชเชตเซ เชตเซเชฏเชเซเชคเชฟ เชฎเชพเชเซ เชเซ เชเซ TON เชตเชฟเชถเซ เชเชถเซเช เช เชเชพเชฃเชคเชพ เชจเชฅเซ เช เชจเซ เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชธเชพเชฅเซเชจเซ-เชเชเชฒเซ เชธเชฐเชณ เชธเซเชฎเชพเชฐเซเช เชเชฐเชพเชฐ เชฒเชเชตเชพ เช เชจเซ เชชเซเชฐเชเชพเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ. เชคเซ เชเชฆเชพเช เชเซเชเชฒเซเช เชฌเชพเชฌเชคเซ เชตเชงเซ เชธเชฐเชณ เชฐเซเชคเซ เชธเชฎเชเชพเชตเซ เชถเชเชพเช เชนเซเชค.
เชเชฆเชพเช เช เชฎเชฒเซเชเชฐเชฃเชจเชพ เชเซเชเชฒเชพเช เชชเชพเชธเชพเช เชตเชงเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เช เชจเซ เชธเซเชเชฆเชฐ เชฐเซเชคเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเซเชค, เชชเชฐเชเชคเซ เชคเซ เชชเชเซ เชฒเซเช เชคเซเชฏเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชตเชงเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ เชนเซเชค. เชคเซ เชชเชฃ เชถเชเซเชฏ เชเซ เชเซ เชฎเซเช เชเซเชฏเชพเชเช เชญเซเชฒ เชเชฐเซ เชนเซเชฏ เช เชฅเชตเชพ เชเชเชเช เชธเชฎเชเชพเชฏเซเช เชจ เชนเซเชฏ, เชคเซเชฅเซ เชเซ เชคเชฎเซ เชเชเชเช เชเชเชญเซเชฐ เชเชฐเซ เชฐเชนเซเชฏเชพเช เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชธเชคเซเชคเชพเชตเชพเชฐ เชฆเชธเซเชคเชพเชตเซเชเซ เช เชฅเชตเชพ TON เชเซเชก เชธเชพเชฅเซเชจเชพ เชธเชคเซเชคเชพเชตเชพเชฐ เชญเชเชกเชพเชฐ เชชเชฐ เชเชงเชพเชฐ เชฐเชพเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชจเซเชเชงเชตเซเช เชเซเชเช เชเซ TON เชชเซเชคเซ เชนเชเซ เชตเชฟเชเชพเชธเชจเชพ เชธเชเซเชฐเชฟเชฏ เชคเชฌเชเซเชเชพเชฎเชพเช เชเซ, เชซเซเชฐเชซเชพเชฐเซ เชเชตเซ เชถเชเซ เชเซ เชเซ เช เชฒเซเชเชจเชพ เชเซเชเชชเชฃ เชชเชเชฒเชพเชจเซ เชคเซเชกเซ เชจเชพเชเชถเซ (เชเซ เชนเซเช เชฒเชเชคเซ เชนเชคเซ เชคเซเชฏเชพเชฐเซ เชฅเชฏเซเช เชนเชคเซเช, เชคเซ เชชเชนเซเชฒเชพเชฅเซ เช เชธเซเชงเชพเชฐเซเชฒ เชเซ), เชชเชฐเชเชคเซ เชธเชพเชฎเชพเชจเซเชฏ เช เชญเชฟเชเชฎ เชเซ. เชซเซเชฐเชซเชพเชฐ เชฅเชตเชพเชจเซ เชถเชเซเชฏเชคเชพ เชจเชฅเซ.
เชนเซเช TON เชจเชพ เชญเชตเชฟเชทเซเชฏ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซเชถ เชจเชนเซเช. เชเชฆเชพเช เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชเชเชเช เชฎเซเชเซเช เชฌเชจเชถเซ เช เชจเซ เชเชชเชฃเซ เชคเซเชจเซ เช เชญเซเชฏเชพเชธ เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชฎเชฏ เชชเชธเชพเชฐ เชเชฐเชตเซ เชเซเชเช เช เชจเซ เชนเชตเซ เช เชฎเชพเชฐเชพ เชเชคเซเชชเชพเชฆเชจเซ เชธเชพเชฅเซ เชตเชฟเชถเชฟเชทเซเช เชธเซเชฅเชพเชจ เชญเชฐเชตเซเช เชเซเชเช.
เชซเซเชธเชฌเซเช เชคเชฐเชซเชฅเซ เชคเซเชฒเชพ เชฐเชพเชถเชฟ เชชเชฃ เชเซ, เชเซเชฎเชพเช TON เชเชฐเชคเชพ เชฎเซเชเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเชพ เชธเชเชญเชตเชฟเชค เชชเซเชฐเซเชเซเชทเชเซ เชเซ. เชนเซเช เชคเซเชฒเชพ เชฐเชพเชถเชฟ เชตเชฟเชถเซ เชฒเชเชญเช เชเชเช เชเชพเชฃเชคเซ เชจเชฅเซ, เชซเซเชฐเชฎ เชฆเซเชตเชพเชฐเชพ เชจเชเซเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซ เชคเซเชฏเชพเช TON เชธเชฎเซเชฆเชพเชฏ เชเชฐเชคเชพเช เชเชฃเซ เชตเชงเซ เชชเซเชฐเชตเซเชคเซเชคเชฟ เชเซ. เชเซเชเซ TON เชจเชพ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เช เชจเซ เชธเชฎเซเชฆเชพเชฏ เชตเชงเซ เชญเซเชเชฐเซเชญ เชเซเชตเชพ เชเซ, เชเซ เชธเชฐเชธ เชชเชฃ เชเซ.
เชธเชเชฆเชฐเซเชญเซ
- เชธเชคเซเชคเชพเชตเชพเชฐ TON เชฆเชธเซเชคเชพเชตเซเชเซเชเชฐเชฃ:
https://test.ton.org - เชธเชคเซเชคเชพเชตเชพเชฐ TON เชญเชเชกเชพเชฐ:
https://github.com/ton-blockchain/ton - เชตเชฟเชตเชฟเชง เชชเซเชฒเซเชเชซเซเชฐเซเชฎเซเชธ เชฎเชพเชเซ เชธเชคเซเชคเชพเชตเชพเชฐ เชตเซเชฒเซเช:
https://wallet.ton.org - เช เชฒเซเชเชฎเชพเชเชฅเซ เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชฐเซเชชเซเชเซเชเชฐเซ:
https://github.com/raiym/astonished - เชธเซเชฎเชพเชฐเซเช เชเซเชจเซเชเซเชฐเชพเชเซเช เชตเซเชฌเชธเชพเชเชเชจเซ เชฒเชฟเชเช:
https://ton-lottery.appspot.com - FunC เชฎเชพเชเซ เชตเชฟเชเซเชฏเซเช
เชฒ เชธเซเชเซเชกเชฟเชฏเซ เชเซเชก เชฎเชพเชเซ เชเชเซเชธเซเชเซเชเชถเชจ เชฎเชพเชเซ เชฐเซเชชเซเชเซเชเชฐเซ:
https://github.com/raiym/func-visual-studio-plugin - เชเซเชฒเชฟเชเซเชฐเชพเชฎเชฎเชพเช TON เชตเชฟเชถเซ เชเซเช เชเชฐเซ, เชเซเชฃเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชคเชฌเชเซเชเซ เชคเซเชจเซ เชธเชฎเชเชตเชพเชฎเชพเช เชเชฐเซเชเชฐ เชฎเชฆเชฆ เชเชฐเซ. เชฎเชจเซ เชฒเชพเชเซ เชเซ เชเซ เชเซ เชนเซเช เชเชนเซเช เชเซ TON เชฎเชพเชเซ เชเชเชเช เชฒเชเชจเชพเชฐ เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟ เชคเซเชฏเชพเช เชเซ เชคเซ เชคเซ เชญเซเชฒ เชจเชนเซเช เชฅเชพเชฏ. เชคเชฎเซ เชคเซเชฏเชพเช เชเซเชธเซเช เชเซเชฐเชพเชฎ เชชเชฃ เชฎเชพเชเชเซ เชถเชเซ เชเซ.
https://t.me/tondev_ru - TON เชตเชฟเชถเซ เชฌเซเชเซ เชเซเช เชเซเชฎเชพเช เชฎเชจเซ เชเชชเชฏเซเชเซ เชฎเชพเชนเชฟเชคเซ เชฎเชณเซ:
https://t.me/TONgramDev - เชธเซเชชเชฐเซเชงเชพเชจเซ เชชเซเชฐเชฅเชฎ เชคเชฌเชเซเชเซ:
https://contest.com/blockchain - เชธเซเชชเชฐเซเชงเชพเชจเซ เชฌเซเชเซ เชคเชฌเชเซเชเซ:
https://contest.com/blockchain-2
เชธเซเชฐเซเชธ: www.habr.com