เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เด’เดฐเต เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต - เด’เดฐเต เดตเดฟเด•เต‡เดจเตเดฆเตเดฐเต€เด•เตƒเดค เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเตฝ เด’เดฐเต เด•เตเดฐเดฎเดฐเดนเดฟเดค เดจเดฎเตเดชเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต. เดฎเดฟเด•เตเด•เดตเดพเดฑเตเด‚ เดŽเดฒเตเดฒเดพ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเตเด•เดณเตเด‚ เด‡เดคเดฟเดจเด•เด‚ เด‡เดคเต เดจเต‡เดฐเดฟเดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดตเดฟเดถเตเดตเดพเดธเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เตเด•เดณเดฟเตฝ, เดจเดฟเดทเต‡เดงเดฟเด•เตเด•เดพเดจเดพเดตเดพเดคเตเดค เดฑเดพเตปเดกเด‚ เดจเดฎเตเดชเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

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

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เด’เดฐเต เดจเดฎเตเดชเตผ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดฐเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเดฟเดจเตเดจเต€เดŸเต เด…เดคเต เดตเตเดฏเด•เตเดคเดฎเดพเดฏเดฟ: เดจเดฎเตเดชเตผ เด•เตƒเดคเตเดฐเดฟเดฎเดฎเดพเด•เตเด•เดพเด‚, เด…เดคเดฟเดจเตผเดคเตเดฅเด‚ เดชเดฐเดฟเดนเดพเดฐเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต.

เดžเด™เตเด™เตพ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเดตเตเดฎเดพเดฏเดฟ เดŽเดคเตเดคเดฟ: เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดค-เดตเดฟเด•เดธเดจเด‚ เดธเตเด•เต€เด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด•. เดธเต†เตผเดตเตผ 1 เดฎเตเดคเตฝ 5 เดตเดฐเต†เดฏเตเดณเตเดณ เด’เดฐเต เดจเดฎเตเดชเตผ เดŠเดนเดฟเดšเตเดšเต, เด…เดคเดฟเตฝ เด’เดฐเต เด‰เดชเตเดชเต เดšเต‡เตผเดคเตเดคเต, เดคเตเดŸเตผเดจเตเดจเต เดซเดฒเด‚ เดนเดพเดทเต เดšเต†เดฏเตเดคเต เด•เต†เด•เตเด•เดพเด•เตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ. เดธเต†เตผเดตเตผ เด‡เดคเดฟเดจเด•เด‚ เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดš เดจเดฎเตเดชเดฑเตเดณเตเดณ เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเต. เดนเดพเดทเต เดฎเดฑเดšเตเดš เดจเดฎเตเดชเตผ เดŠเดนเดฟเด•เตเด•เตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดฒเต‡เด•เตเด•เต เด—เต†เดฏเดฟเด‚ เดคเดฟเดณเดšเตเดšเตเดฎเดฑเดฟเดฏเตเดจเตเดจเต.

เด•เดณเดฟเด•เตเด•เดพเดฐเตป เด’เดฐเต เดชเดจเตเดคเดฏเด‚ เดตเต†เดšเตเดšเต, เดธเต†เตผเดตเตผ เดฎเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดจเดฎเตเดชเดฑเตเด‚ "เด‰เดชเตเดชเต" เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดšเตเดšเต. เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด…เดตเตป เด•เดพเตผเดกเตเด•เตพ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ. เด…เดคเดฟเดจเตเดถเต‡เดทเด‚, เดธเต†เตผเดตเตผ เดจเดฎเตเดชเดฑเตเด•เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเดฟเดœเดฏเดฟเดšเตเดšเต‹ เดคเต‹เดฑเตเดฑเดคเต‹ เดŽเดจเตเดจเต เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต.

เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดธเต†เตผเดตเตผ เด’เดฐเต เดจเดฎเตเดชเดฑเต‹ "เด‰เดชเตเดชเต" เด…เดฏเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเดฟเดœเดฏเดฟเดšเตเดšเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด“เดฐเต‹ เด—เต†เดฏเดฟเดฎเดฟเดจเตเด‚ เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเตฝ เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดตเดฟเดœเดฏเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดคเต เด…เดธเต—เด•เดฐเตเดฏเดตเตเด‚ เดธเดฎเดฏเดฎเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดšเต†เดฒเดตเต‡เดฑเดฟเดฏเดคเตเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เด…เด•เตเด•เดพเดฒเดคเตเดคเต เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดพเดฏ เดฎเดฑเตเดฑเตŠเดฐเต เดชเดฐเดฟเดนเดพเดฐเดตเตเด‚ เด‡เดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เด…เดŸเตเดคเตเดคเดฟเดŸเต†, เดŸเตเดฐเต‡เดกเดฟเดธเดฟเดธเต เดŸเต€เด‚ เดตเต‡เดตเตเดธเต เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดซเด‚เด—เตเดทเตป เดšเต‡เตผเด•เตเด•เดพเตป เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดšเต rsaVerify(). เด‡เดคเต เดชเตŠเดคเต, เดธเตเดตเด•เดพเดฐเตเดฏ เด•เต€ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ RSA เด’เดชเตเดชเดฟเดจเตเดฑเต† เดธเดพเดงเตเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดธเดตเดฟเดถเต‡เดทเดค เดšเต‡เตผเดคเตเดคเต.

เดžเด™เตเด™เตพ เดฎเต‚เดจเตเดจเต เด—เต†เดฏเดฟเดฎเตเด•เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเดคเตเดคเต: เดกเตˆเดธเต เดฑเต‹เดณเตผ, เด•เต‹เดฏเดฟเตป เดซเตเดฒเดฟเดชเตเดชเต ะธ เดคเดฟเดฐเดฎเดพเดฒเด•เดณเดฟเตฝ เดธเดตเดพเดฐเดฟ เดšเต†เดฏเตเดฏเตเด•. เด“เดฐเต‹เดจเตเดจเตเด‚ เดฑเดพเตปเดกเด‚ เดจเดฎเตเดชเตผ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดตเดฟเดฆเตเดฏ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเดฎเตเด•เตเด•เต เด•เดฃเตเดŸเต†เดคเตเดคเดพเด‚.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เดฑเตˆเดกเต เด“เตบ เดตเต‡เดตเตเดธเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดฑเดพเตปเดกเด‚ เดจเดฎเตเดชเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเต‹เด•เตเด•เดพเด‚. เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เด•เดฃเตเดŸเต†เดคเตเดคเดพเดจเดพเด•เตเด‚ เด‡เดตเดฟเดŸเต†.

เดŸเดพเดฌเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด• เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด•เต‚เดŸเดพเดคเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด• เดตเดฟเด˜เดŸเดฟเดชเตเดชเดฟเดšเตเดšเต. เดจเดฟเด™เตเด™เตพ เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เด•เต‹เดกเต (เด…เดคเดพเดฏเดคเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต) เด•เดพเดฃเตเด‚.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เด•เต‹เดกเดฟเตฝ เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดซเด‚เด—เตเดทเดจเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. @Callable เดŽเดจเตเดจเต เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเดพเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจ เด‡เดŸเดชเดพเดŸเตเด•เตพ. เดžเด™เตเด™เตพเด•เตเด•เต เดฐเดฃเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเดฟเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดŸเต: เดชเดจเตเดคเดฏเด‚ ะธ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เต‚:

  • เดซเด™เตเด•เต เดฌเต†เดฑเตเดฑเต (เดชเตเดฒเต†เดฏเตผ เดšเต‹เดฏเตเดธเต)
  • func withdraw(gameId,rsaSign)

1. เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดธเต†เด—เตโ€Œเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดจเต€เดณเดตเตเด‚ เดชเดจเตเดคเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเดตเตเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

2. เด•เตเดฒเดฏเดจเตเดฑเต เด’เดฐเต เดชเดจเตเดคเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเต เด…เดคเต เด†เดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ เดชเดจเตเดคเดฏเด‚ ("50").

3. เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เต‹เตบเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฒเดฏเดจเตเดฑเต เด’เดฐเต เด‡เตปเดตเต‹เด•เตเด•เต‡เดทเตป เด‡เดŸเดชเดพเดŸเต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต (เดฌเตเดฐเต‹เดกเตโ€Œเด•เดพเดธเตโ€Œเดฑเตเดฑเต InvocationTx). เด‡เดŸเดชเดพเดŸเดฟเตฝ เด’เดฐเต เด•เต‹เตพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เดฌเต†เดฑเตเดฑเต เดซเด‚เด—เตเดทเตป เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚, เด‡เตปเดตเต‹เด•เตเด•เต‡เดทเตป เด‡เดŸเดชเดพเดŸเต, เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดฒเต† เดฌเต†เดฑเตเดฑเต เดซเด‚เด—เตโ€Œเดทเตป (เดšเต‹เดฏเตโ€Œเดธเต: เดธเตเดŸเตเดฐเดฟเด‚เด—เต) เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เดชเตเดฐเต‡เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดพเดฃเต.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

4. เดชเดจเตเดคเดฏเดคเตเดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเด•:

@Callable(i)
func bet (playerChoice) = {
    let newGameNum = IncrementGameNum()
    let gameId = toBase58String(i.transactionId)
    let pmt = extract(i.payment)
    let betNotInWaves = isDefined(pmt.assetId)
    let feeNotInWaves = isDefined(pmt.assetId)
    let winAmt = ValidateBetAndDefineWinAmt(pmt.amount, playerChoice)
    let txIdUsed = isDefined(getString(this, gameId))
    if (betNotInWaves)
        then throw ("Bet amount must be in Waves")
        else if (feeNotInWaves)
            then throw ("Transaction's fee must be in Waves")
            else if (txIdUsed)
                then throw ("Passed txId had been used before. Game aborted.")
                else {
                    let playerPubKey58 = toBase58String(i.callerPublicKey)
                    let gameDataStr = FormatGameDataStr(STATESUBMITTED, playerChoice, playerPubKey58, height, winAmt, "")
                    ScriptResult(WriteSet(cons(DataEntry(RESERVATIONKEY, ValidateAndIncreaseReservedAmt(winAmt)), cons(DataEntry(GAMESCOUNTERKEY, newGameNum), cons(DataEntry(gameId, gameDataStr), nil)))), TransferSet(cons(ScriptTransfer(SERVER, COMMISSION, unit), nil)))
                    }
    }

เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅเดฏเดฟเดฒเต‡เด•เตเด•เต เดซเด‚เด—เตเดทเตป เด’เดฐเต เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเด‚ เดŽเดดเตเดคเตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต:

  • เด’เดฐเต เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเดฎเดฟเดจเตเดณเตเดณ เด…เดฆเตเดตเดฟเดคเต€เดฏ เดเดกเดจเตเดฑเดฟเดซเดฏเตผ (เด—เต†เดฏเดฟเด‚ เดเดกเดฟ)
  • เด—เต†เดฏเดฟเด‚ เดจเดฟเดฒ = เดธเดฎเตผเดชเตเดชเดฟเดšเตเดšเต
  • เด•เดณเดฟเด•เตเด•เดพเดฐเดจเตเดฑเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต (เดธเต†เด—เตโ€Œเดฎเต†เดจเตเดฑเต เดฆเตˆเตผเด˜เตเดฏเด‚ 50)
  • เดชเตŠเดคเต เด•เต€
  • เดธเดพเดงเตเดฏเดคเดฏเตเดณเตเดณ เดตเดฟเดœเดฏเด™เตเด™เตพ (เด•เดณเดฟเด•เตเด•เดพเดฐเดจเตเดฑเต† เดชเดจเตเดคเดฏเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต)

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเดจเดฟเดฒเต† เด’เดฐเต เดกเดพเดฑเตเดฑ เดฑเต†เด•เตเด•เต‹เตผเดกเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต (เด•เต€ เดฎเต‚เดฒเตเดฏเด‚):

{
    "type": "string",
    "value": "03WON_0283_448t8Jn9P3717UnXFEVD5VWjfeGE5gBNeWg58H2aJeQEgJ_06574069_09116020000_0229",
    "key": "2GKTX6NLTgUrE4iy9HtpSSHpZ3G8W4cMfdjyvvnc21dx"
  }

"เด•เต€" (เด•เต€) - เด—เต†เดฏเดฟเด‚ เดเดกเดฟ เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเด‚. เดถเต‡เดทเดฟเด•เตเด•เตเดจเตเดจ เดกเดพเดฑเตเดฑ "เดฎเต‚เดฒเตเดฏเด‚" เดซเต€เตฝเดกเดฟเดจเตเดฑเต† เดตเดฐเดฟเดฏเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เดŽเตปเดŸเตเดฐเดฟเด•เตพ เดŸเดพเดฌเดฟเตฝ เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เดกเดพเดฑเตเดฑ เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเตผ:

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

5. เดธเต†เตผเดตเตผ เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เต‹เตบเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดจเต‹เด•เตเด•เตเด•เดฏเตเด‚ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป Api เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดฏเดšเตเดš เด‡เดŸเดชเดพเดŸเต (เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเด‚) เด•เดฃเตเดŸเต†เดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเดฎเดฟเดจเตเดฑเต† เด—เต†เดฏเดฟเด‚ เดเดกเดฟ เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเดจเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด…เดคเดฟเดจเตผเดคเตเดฅเด‚ เด…เดคเต เด‡เดจเดฟ เดฎเดพเดฑเตเดฑเดพเดจเต‹ เดธเตเดตเดพเดงเต€เดจเดฟเด•เตเด•เดพเดจเต‹ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ เดŽเดจเตเดจเดพเดฃเต.

6. เดธเต†เตผเดตเตผ เด’เดฐเต เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ (เด—เต†เดฏเดฟเด‚เดเดกเดฟ, เด†เตผเดŽเดธเตเดŽเดธเตˆเตป) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดคเตเดชเต‹เดฒเต†:

withdraw ("FwsuaaShC6DMWdSWQ5osGWtYkVbTEZrsnxqDbVx5oUpq", "base64:Gy69dKdmXUEsAmUrpoWxDLTQOGj5/qO8COA+QjyPVYTAjxXYvEESJbSiCSBRRCOAliqCWwaS161nWqoTL/TltiIvw3nKyd4RJIBNSIgEWGM1tEtNwwnRwSVHs7ToNfZ2Dvk/GgPUqLFDSjnRQpTHdHUPj9mQ8erWw0r6cJXrzfcagKg3yY/0wJ6AyIrflR35mUCK4cO7KumdvC9Mx0hr/ojlHhN732nuG8ps4CUlRw3CkNjNIajBUlyKQwpBKmmiy3yJa/QM5PLxqdppmfFS9y0sxgSlfLOgZ51xRDYuS8NViOA7c1JssH48ZtDbBT5yqzRJXs3RnmZcMDr/q0x6Bg==")

7. เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดธเต†เตผเดตเตผ เด’เดฐเต เด‡เตปเดตเต‹เด•เตเด•เต‡เดทเตป เด‡เดŸเดชเดพเดŸเต เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเต (เดฌเตเดฐเต‹เดกเตโ€Œเด•เดพเดธเตเดฑเตเดฑเต InvocationTx). เด‡เดŸเดชเดพเดŸเดฟเตฝ เดฐเต‚เดชเต€เด•เดฐเดฟเดšเตเดš เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดซเด‚เด—เตโ€Œเดทเดจเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เด’เดฐเต เด•เต‹เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด—เต†เดฏเดฟเด‚เดเดกเดฟ, rsaSign):

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เดšเดŸเด™เตเด™เดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด—เต†เดฏเดฟเด‚ เดเดกเดฟ เดชเตเดคเดฟเดฏ เด—เต†เดฏเดฟเดฎเตเด‚ เด’เดฐเต เดธเตเดตเด•เดพเดฐเตเดฏ เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เด…เดฆเตเดตเดฟเดคเต€เดฏ เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเดฟเดจเตเดฑเต† RSA เด’เดชเตเดชเดฟเดŸเตเดŸเดคเดฟเดจเตเดฑเต† เดซเดฒเดตเตเด‚. เด’เดชเตเดชเต เดซเดฒเด‚ เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒ.

เด‡เดคเต เดŽเดจเตเดคเดพเดฃเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดคเต?

เดžเด™เตเด™เตพ เด…เดคเต‡ เดฎเต‚เดฒเตเดฏเด‚ (เด—เต†เดฏเดฟเด‚ เดเดกเดฟ) เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเตฝ RSA เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดฐเต€เดคเดฟ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดžเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพเดฏเตเดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต‡ เดซเดฒเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚. RSA เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต. เด—เต†เดฏเดฟเด‚ เดเดกเดฟเดฏเตเด‚ RSA เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเดคเดฟเดจเตเดฑเต† เดซเดฒเดตเตเด‚ เด…เดฑเดฟเดฏเดพเดคเตเดคเดคเดฟเดจเดพเตฝ, เด…เดตเดธเดพเดจ เดจเดฎเตเดชเตผ เด•เตƒเดคเตเดฐเดฟเดฎเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด’เดฐเต เดจเดฎเตเดชเตผ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเตเด‚ เด…เตผเดคเตเดฅเดถเต‚เดจเตเดฏเดฎเดพเดฃเต.

8. เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เด‡เดŸเดชเดพเดŸเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดซเด‚เด—เตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต (เด—เต†เดฏเดฟเด‚เดเดกเดฟ, เด†เตผเดŽเดธเตเดŽเดธเตˆเตป)

9. เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ, เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต RandInt เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด• (เด—เต†เดฏเดฟเด‚เดเดกเดฟ, เด†เตผเดŽเดธเตเดŽเดธเตˆเตป). เด‡เดคเตŠเดฐเต เดฑเดพเตปเดกเด‚ เดจเดฎเตเดชเตผ เดœเดจเดฑเต‡เดฑเตเดฑเดฑเดพเดฃเต

# @return 1 ... 100
func GenerateRandInt (gameId,rsaSign) = {
   	# verify RSA signature to proof random
    let rsaSigValid = rsaVerify (SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)
    if (rsaSigValid)
        then {
            let rand = (toInt(sha256(rsaSign)) % 100)
            if ((0 > rand))
                then ((-1 * rand) + 1)
                else (rand + 1)
            }
        else throw ("Invalid RSA signature")
    }

เดฑเดพเตปเดกเต - เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดฑเดพเตปเดกเด‚ เดจเดฎเตเดชเตผ เด‰เดฃเตเดŸเต.

เด†เดฆเตเดฏเด‚, เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต RSA เด’เดชเตเดชเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฃเต เด—เต†เดฏเดฟเด‚ เดเดกเดฟ เดธเตเดตเด•เดพเดฐเตเดฏ เด•เต€ (rsaSign). เดคเตเดŸเตผเดจเตเดจเต SHA-256 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดนเดพเดทเต เดšเต†เดฏเตเดคเต (sha256(rsaSign)).

เด’เดชเตเดชเดฟเดจเตเดฑเต†เดฏเตเด‚ เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดนเดพเดทเดฟเด‚เด—เดฟเดจเตเดฑเต†เดฏเตเด‚ เดซเดฒเด‚ เดชเตเดฐเดตเดšเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เด•เตเดฐเดฎเดฐเดนเดฟเดค เดธเด‚เด–เตเดฏเดฏเตเดŸเต† เดœเดจเดฑเต‡เดทเดจเต† เดธเตเดตเดพเดงเต€เดจเดฟเด•เตเด•เตเด• เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดถเตเดฐเต‡เดฃเดฟเดฏเดฟเตฝ เด’เดฐเต เดจเดฎเตเดชเตผ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 1 เดฎเตเดคเตฝ 100 โ€‹โ€‹เดตเดฐเต†), toInt เด•เตบเดตเต‡เตผเดทเตป เดซเด‚เด—เตโ€Œเดทเดจเตเด‚ % 100 (เด‡เดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดคเต เดŽเดคเดฟเดฐเดพเดฏเดฟ).

เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดšเต rsaVerify(), เด‡เดคเต เด’เดฐเต เดชเตŠเดคเต เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต RSA เด’เดชเตเดชเดฟเดจเตเดฑเต† เดธเดพเดงเตเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. GenerateRandInt(gameId,rsaSign) เดญเดพเด—เด‚ เด‡เดคเดพ:

rsaVerify (SHA256, toBytes(gameId), rsaSign, RSAPUBLIC)

RSAPUBLIC เดŽเดจเตเดจ เดชเตŠเดคเต เด•เต€เดฏเตเด‚ rsaSign เดธเตเดŸเตเดฐเดฟเด‚เด—เตเด‚ เด‡เตปเดชเตเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต. เด’เดชเตเดชเต เดธเดพเดงเตเดค เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเต. เดชเดฐเดฟเดถเต‹เดงเดจ เดตเดฟเดœเดฏเดฟเดšเตเดšเดพเตฝ เดจเดฎเตเดชเตผ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดธเดฟเด—เตเดจเต‡เดšเตเดšเตผ เดธเดพเดงเตเดตเดฒเตเดฒเต†เดจเตเดจเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เดฐเตเดคเตเดจเตเดจเต (เด…เดธเดพเดงเตเดตเดพเดฏ RSA เด’เดชเตเดชเต).

เดธเต†เตผเดตเตผ เด—เต†เดฏเดฟเด‚ เดเดกเดฟเดฏเดฟเตฝ เด’เดฐเต เดธเตเดตเด•เดพเดฐเตเดฏ เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดชเตเดชเดฟเดŸเตเด•เดฏเตเด‚ 2880 เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพเด•เตเด•เตเดณเตเดณเดฟเตฝ เดธเดพเดงเตเดตเดพเดฏ เด’เดฐเต Rsa เด’เดชเตเดชเต เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดจเตเดตเดฆเดฟเดšเตเดš เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เด’เดจเตเดจเตเด‚ เดธเด‚เดญเดตเดฟเดšเตเดšเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดตเดฟเดœเดฏเดฟเด•เตเด•เตเด‚. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดธเดฎเตเดฎเดพเดจเด‚ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดฃเด‚. "เดธเต†เตผเดตเดฑเดฟเดจเต เดตเดžเตเดšเดฟเด•เตเด•เตเดจเตเดจเดคเต เดฒเดพเดญเด•เดฐเดฎเดฒเตเดฒ" เดŽเดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เด‡เดคเต เดจเดทเตเดŸเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดคเดพเดดเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ RSA เดฑเดพเตปเดกเด‚

เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เด•เดณเดฟเด•เตเด•เตเดจเตเดจเต เดกเตˆเดธเต เดฑเต‹เดณเตผ. เดžเดพเตป เด•เตเดฏเต‚เดฌเดฟเดจเตเดฑเต† 2 เดตเดถเด™เตเด™เดณเดฟเตฝ 6 เดŽเดฃเตเดฃเด‚ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต, เดชเดจเตเดคเดฏเด‚ 14 เดคเดฐเด‚เด—เด™เตเด™เดณเดพเดฃเต. เดจเดฟเดถเตเดšเดฟเดค เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ (2880 เดฌเตเดฒเต‹เด•เตเด•เตเด•เตพ) เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดธเต†เตผเดตเตผ เดธเดพเดงเตเดตเดพเดฏ RSA เด’เดชเตเดชเต เด…เดฏเดšเตเดšเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต 34.44 เดคเดฐเด‚เด—เด™เตเด™เตพ เดŽเดŸเตเด•เตเด•เตเด‚.

เด—เต†เดฏเดฟเดฎเตเด•เดณเดฟเตฝ เดจเดฎเตเดชเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด’เดฐเต เด’เดฑเดพเด•เตเด•เดฟเตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - เด’เดฐเต เดฌเดพเดนเตเดฏ, เดจเต‹เตบ-เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เดธเดฟเดธเตเดฑเตเดฑเด‚. เด—เต†เดฏเดฟเด‚ เดเดกเดฟเดฏเตเดŸเต† RSA เด’เดชเตเดชเต เดธเต†เตผเดตเตผ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเตผ เด’เดชเตเดชเดฟเดจเตเดฑเต† เดธเดพเดงเตเดค เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เดตเดฟเดœเดฏเดฟเดฏเต† เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต. เดธเต†เตผเดตเตผ เด’เดจเตเดจเตเด‚ เด…เดฏเดšเตเดšเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดฏเดพเดจเตเดคเตเดฐเดฟเด•เดฎเดพเดฏเดฟ เดตเดฟเดœเดฏเดฟเด•เตเด•เตเด‚.

เด‡เดคเต เด’เดฐเต เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏ เดœเดจเดฑเต‡เดทเตป เดฐเต€เดคเดฟเดฏเดพเดฃเต, เด•เดพเดฐเดฃเด‚ เด•เตƒเดคเตเดฐเดฟเดฎเด‚ เดธเดพเด™เตเด•เต‡เดคเดฟเด•เดฎเดพเดฏเดฟ เด…เดธเดพเดงเตเดฏเดฎเดพเดฃเต. เดŽเดฒเตเดฒเดพ Tradisys เด—เต†เดฏเดฟเดฎเตเด•เดณเตเด‚ เดตเดฟเดตเดฐเดฟเดšเตเดš เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต. เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เด—เต†เดฏเดฟเดฎเตเด•เตพ เด‡เด™เตเด™เดจเต†เดฏเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดŽเดฒเตเดฒเดพเด‚ เดธเตเดคเดพเดฐเตเดฏเดตเตเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเตเดฎเดพเดฃเต. เดฎเดฑเตเดฑเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเตฝ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เด…เดจเดฒเต‹เด—เต เด‡เดฒเตเดฒ. เด‡เดคเตŠเดฐเต เดจเตเดฏเดพเดฏเดฎเดพเดฏ เดฏเดพเดฆเตƒเดถเตเดšเดฟเด•เดคเดฏเดพเดฃเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

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