เบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ„เบธเป‰เบกเบ„เบญเบ‡, เป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™ Waves blockchain

เป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ”เบ—เบตเปˆเบกเบตเบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบขเบนเปˆเปƒเบ™ Waves blockchain, เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ Waves Labs เป‚เบ”เบเบ—เบตเบกเบ‡เบฒเบ™ Betex.

เป‚เบžเบชเบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เป‚เบ„เบชเบฐเบ™เบฒ! เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบšเปเปˆเป€เบชเบเบ„เปˆเบฒ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เบเบฐเบ•เบธเป‰เบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ dApp เปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบชเบปเปˆเบ‡เป€เบชเบตเบกเบเบฒเบ™เบเบฐเบˆเบฒเบเบญเปเบฒเบ™เบฒเบ”, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”เบ—เบธเบเบ„เบปเบ™.

เบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ„เบธเป‰เบกเบ„เบญเบ‡, เป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™ Waves blockchain

dApp เบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เบžเบตเปˆเบ™เป‰เบญเบ‡เบเบฑเบ™เปเบกเปˆเบ™เปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เบฅเบฐเบซเบฑเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบฑเบ”เบฅเบญเบ, เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบซเบผเบทเป€เบ›เบฑเบ™เบŠเบธเบ”เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™.

เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบžเบฑเบ™เบ—เบฐเบกเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบเบฑเบšเบœเบนเป‰เบชเบปเปˆเบ‡เบ•เปเปˆ, เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบซเบผเบฒเบเบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เบฅเบฒเบ‡เบงเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเปเบฅเบฐเปเบฎเบ‡เบˆเบนเบ‡เปƒเบˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบฅเบฐเบšเบปเบš (เป€เบ‡เบดเบ™เบ„เบทเบ™). เบฅเบฐเบšเบปเบšเปเบกเปˆเบ™ dApp "เบšเปเบฅเบดเบชเบธเบ”", เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบงเบฑเบšเบžเบปเบงเบžเบฑเบ™เบเบฑเบš blockchain เป‚เบ”เบเบเบปเบ‡, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบกเบต backend เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เป€เบ•เบฑเบเบ™เบดเบเบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ:

  • เป‚เบ—เบซเบฒเบšเบฑเบ™เบŠเบต smart เป€เบ›เบฑเบ™เบซเบ™เบตเป‰เบชเบดเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบŠเปเบฒเบฅเบฐเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ” (เปƒเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบšเปเปˆเบกเบต tokens เปƒเบ™เบšเบฑเบ™เบŠเบตเบ—เบตเปˆเบˆเบฐเบˆเปˆเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ›เบฐเบเบปเบ”เบงเปˆเบฒเบกเบตเบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เป‚เบ—).
  • PoW-captcha - เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป‚เบ—เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบ–เบตเปˆเบชเบนเบ‡เบ•เปเปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบšเบฑเบ™เบŠเบต smart - เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบš captcha, เปเบ•เปˆเบœเปˆเบฒเบ™เบซเบผเบฑเบเบ–เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰.
  • เบชเบญเบšเบ–เบฒเบกเบ‚เปเบเบฐเปเบˆเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เปเบกเปˆเปเบšเบš.

เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹:

  • เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบšเบฑเบ™โ€‹เบŠเบต smart เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒ ride4dapps (เบŠเบถเปˆเบ‡โ€‹เบ•เบฒเบกโ€‹เปเบœเบ™โ€‹เบเบฒเบ™โ€‹, เปเบกเปˆเบ™โ€‹เบฅเบงเบกโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบŠเบต smart เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เป€เบ›เบฑเบ™โ€‹เบžเบตเปˆโ€‹เบ™เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹)โ€‹;
  • js wrapper เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบ”เบฑเบš abstraction เปƒเบ™เป„เบฅเบเบฐ WAVES NODE REST API;
  • code on the vuejs framework, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰ Library เปเบฅเบฐ RIDE code.

เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰.

เป‚เบ—เบซเบฒเบšเบฑเบ™เบŠเบต smart เบชเปเบฒเบฅเบฑเบšเบซเบ™เบตเป‰เบชเบดเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบŠเปเบฒเบฅเบฐเบ—เบฑเบ™เบ—เบต

เบเบฒเบ™เป‚เบ—เบซเบฒ InvokeScript เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบŠเปเบฒเบฅเบฐเบ„เปˆเบฒเบ—เปเบฒเบ™เบฝเบกเบˆเบฒเบเบšเบฑเบ™เบŠเบตเบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ. เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบš blockchain geeks เบœเบนเป‰เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡ WAVES tokens เปƒเบ™เบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เปเบ•เปˆเบ–เป‰เบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปเบกเปˆเบ™เปเบ™เปƒเบชเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบ›เบฐเบŠเบฒเบŠเบปเบ™เบ—เบปเปˆเบงเป„เบ›, เบ™เบตเป‰เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบœเบนเป‰เปƒเบŠเป‰เบ•เป‰เบญเบ‡เป€เบšเบดเปˆเบ‡เปเบเบ‡เบเบฒเบ™เบŠเบทเป‰ WAVES tokens (เบซเบผเบทเบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบญเบทเปˆเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบŠเปเบฒเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ), เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเบญเบธเบ›เบฐเบชเบฑเบเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปเบˆเบเบขเบฒเบเบŠเบฑเบšเบชเบดเบ™เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบˆเบฐเบชเบฒเบกเบฒเบ”เบŠเปเบฒเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเปˆเบฝเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฐเบšเบปเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบžเบทเปˆเบญเบชเบนเบšเป€เบญเบปเบฒเบŠเบฑเบšเบชเบดเบ™เบ‚เบญเบ‡เปเบซเบผเบงเบญเบญเบเบˆเบฒเบเบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

เบกเบฑเบ™เบˆเบฐเบชเบฐเบ”เบงเบเบซเบผเบฒเบเบ–เป‰เบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเป‚เบ—เบซเบฒ InvokeScript "เปƒเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบœเบนเป‰เบฎเบฑเบš" (เบšเบฑเบ™เบŠเบต smart เบ—เบตเปˆเบชเบฐเบ„เบดเบšเบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡), เปเบฅเบฐเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เบกเบตเบขเบนเปˆ.

เบ–เป‰เบฒเบขเบนเปˆเปƒเบ™ InvokeScript เป€เบˆเบปเป‰เบฒเป€เบฎเบฑเบ” ScriptTransfer เป„เบ›เบซเบฒเบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบœเบนเป‰เป‚เบ—, เป€เบŠเบดเปˆเบ‡เบŠเบปเบ”เป€เบŠเบตเบเบ„เปˆเบฒเป‚เบ—เป€เบ„เบ™เบ—เบตเปˆเบˆเปˆเบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เป‚เบ—เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเป‚เบ—เบšเปเปˆเบกเบตเบŠเบฑเบšเบชเบดเบ™เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบเบฒเบ™เป‚เบ—. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเป‰เบญเบ™เบงเปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเปเบฒเบฅเบฑเบš tokens เบžเบฝเบ‡เบžเปเปเบกเปˆเบ™เป€เบฎเบฑเบ”เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบเปˆเบงเบฒเบกเบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เบ”เป‰เบงเบเบชเบดเบ™เป€เบŠเบทเปˆเบญ, เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบŠเปเบฒเบฅเบฐเบ„เบทเบ™เบ—เบฑเบ™เบ—เบต.

ScriptTransfer(i.caller, i.fee, เบซเบปเบงเปœเปˆเบงเบ)

เบฅเบฐเบซเบฑเบ”เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบˆเบฐเบˆเปˆเบฒเบเบ„เบทเบ™เบ„เปˆเบฒเบ—เปเบฒเบ™เบฝเบกเบ—เบตเปˆเปƒเบŠเป‰เบˆเปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰เป€เบ‡เบดเบ™เบšเบฑเบ™เบŠเบต smart. เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบœเบดเบ”, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบœเบนเป‰เป‚เบ—เปƒเบŠเป‰เบˆเปˆเบฒเบเบ„เปˆเบฒเบ—เปเบฒเบ™เบฝเบกเปƒเบ™เบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเบžเบฒเบเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™:

func checkFee(i:Invocation) = {
if i.fee > maxFee then throw(โ€œunreasonable large feeโ€) else
if i.feeAssetId != unit then throw(โ€œfee must be in WAVESโ€) else true
}

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบชเบเป€เบ‡เบดเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบญเบฑเบ™เบ•เบฐเบฅเบฒเบเปเบฅเบฐเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบ, เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป‚เบ—เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” (PoW-captcha) เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™.

PoW-captcha

เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบซเบผเบฑเบเบ–เบฒเบ™เบชเบฐเปเบ”เบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ captcha เปเบกเปˆเบ™เบšเปเปˆเปƒเบซเบกเปˆเปเบฅเบฐเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบงเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†, เบฅเบงเบกเบ—เบฑเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบปเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ WAVES. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เบงเปˆเบฒเป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบšเปเบฅเบดเป‚เบžเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบœเบนเป‰เป‚เบ—เบเบฑเบ‡เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป‚เบˆเบกเบ•เบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ‚เบฒเบ”เปเบ„เบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เปเบžเบ‡. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเปเบฅเบฐเบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ•เปˆเปเบฒเบ—เบตเปˆเบœเบนเป‰เบชเบปเปˆเบ‡เบ—เบธเบฅเบฐเบเปเบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ PoW, เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบš ID เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ:

เบ–เป‰เบฒ take(toBase58String(i.transactionId), 3) != โ€œ123โ€ เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบดเป‰เบก(โ€œเบซเบผเบฑเบเบ–เบฒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฅเบปเป‰เบกเป€เบซเบฅเบงโ€) เบญเบทเปˆเบ™.

เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบœเบนเป‰เป‚เบ—เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบฐเบซเบฑเบ” base58 (id) เบ‚เบญเบ‡เบกเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบ 123, เป€เบŠเบดเปˆเบ‡เบเบปเบ‡เบเบฑเบ™เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบเบฑเบšเบชเบญเบ‡เบชเบฒเบกเบชเบดเบšเบงเบดเบ™เบฒเบ—เบตเบ‚เบญเบ‡เป€เบงเบฅเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเปเบกเปˆเบ™เบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ–เป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™ PoW เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบทเบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบซเบผเบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบงเบฝเบเบ‡เบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ”เบฑเบ”เปเบ›เบ‡เป„เบ”เป‰เบ‡เปˆเบฒเบเปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™.

เบชเบญเบšเบ–เบฒเบกเบ‚เปเบเบฐเปเบˆเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เปเบกเปˆเปเบšเบš

เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰ blockchain เป€เบ›เบฑเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบท API เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™ key-val เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเปเบกเปˆเปเบšเบš. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™เบ•เบปเป‰เบ™เป€เบ”เบทเบญเบ™เบเปเบฅเบฐเบเบปเบ” 2019 เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต ?เบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™ เบ•เบฒเบกเบ„เบณเบฎเป‰เบญเบ‡เบ‚เป REST API /addresses/data?match=regexp. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบฅเบฐเบซเบฑเบ”เบˆเบฒเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเปเบฅเบฐเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบ„เบตเปƒเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง, เปเบ•เปˆเบงเปˆเบฒเบžเบฝเบ‡เปเบ•เปˆเบšเบฒเบ‡เบเบธเปˆเบก, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเป‚เบ”เบเบŠเบทเปˆเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰, เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเบฒเบ™เบ–เบญเบ™เป€เบ‡เบดเบ™เปเบกเปˆเบ™เบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบ›เบฑเบ™

withdraw_${userAddress}_${txid}

เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เบญเบ™เป€เบ‡เบดเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบตเปˆเบขเบนเปˆเปƒเบ”เบซเบ™เบถเปˆเบ‡เป‚เบ”เบเปƒเบŠเป‰เปเบกเปˆเปเบšเบš:

?matches=withdraw_${userAddress}_.*

เบ•เบญเบ™เบ™เบตเป‰เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบชเปเบฒเป€เบฅเบฑเบ”เบฎเบนเบš.

เบฅเบฐเบซเบฑเบ” Vuejs

เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบเป‰เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบœเปˆเบฒเบ™ Waves Keeper เปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” affiliate.js, เป€เบŠเบดเปˆเบ‡เบกเบฑเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš, เบชเบญเบšเบ–เบฒเบกเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เปเบฅเบฐเบเบฑเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบญเบ™เป€เบ‡เบดเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป€เบ‚เบปเป‰เบฒเปƒเบ™เบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.

เบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ„เบธเป‰เบกเบ„เบญเบ‡, เป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™ Waves blockchain

เบฅเบฐเบซเบฑเบ”เบชเปเบฒเบฅเบฑเบš RIDE

เบ›เบฐโ€‹เบเบญเบšโ€‹เบ”เป‰เบงเบโ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบˆเบปเบ”โ€‹เบ—เบฐโ€‹เบšเบฝเบ™โ€‹, เบเบญเบ‡โ€‹เบ—เบถเบ™โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ–เบญเบ™โ€‹เป€เบ‡เบดเบ™โ€‹.

เบŸเบฑเบ‡เบŠเบฑเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบš. เบกเบฑเบ™เบกเบตเบชเบญเบ‡เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™: referer (เบ—เบตเปˆเบขเบนเปˆ referrer) เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบเบทเบญ, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”เบŸเบฑเบ‡เบŠเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบ id เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ (PoW-captcha task).

เบŸเบฑเบ‡เบŠเบฑเบ™ (เบ„เบทเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบญเบทเปˆเบ™เป†เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰) เปƒเบŠเป‰เป€เบ•เบฑเบเบ™เบดเบเบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เบตเป‰เบชเบดเบ™, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบ—เบถเบ™เปƒเบ™เบเบฒเบ™เบŠเปเบฒเบฅเบฐเบ„เปˆเบฒเบ—เปเบฒเบ™เบฝเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰. เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰, เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบซเบฒเบเปเปˆเบชเป‰เบฒเบ‡เบเบฐเป€เบ›เบปเบฒเป€เบ‡เบดเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเบฐเบšเบปเบšเป„เบ”เป‰เบ—เบฑเบ™เบ—เบตเปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบŠเบทเป‰เบซเบผเบทเป„เบ”เป‰เบฎเบฑเบšเบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฒเบงเบˆเปˆเบฒเบเบ„เปˆเบฒเบ—เบธเบฅเบฐเบเปเบฒ.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปเบกเปˆเบ™เบชเบญเบ‡เบšเบฑเบ™เบ—เบถเบ:

${owner)_referer = referer
${referer}_referral_${owner} = owner

เบญเบฑเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ„เบปเป‰เบ™เบซเบฒเปเบšเบšเบ•เปเปˆเป†เป„เบ› เปเบฅเบฐ เบ›เบตเป‰เบ™เบ„เบทเบ™ (เบœเบนเป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปƒเบซเป‰เบกเบฒ เปเบฅเบฐเบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปƒเบซเป‰).

เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบเบญเบ‡เบ—เบถเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡. เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ‚เบญเบ‡เบกเบฑเบ™, เบกเบฑเบ™เป€เบญเบปเบฒเป€เบ‡เบดเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ–เบทเบเป‚เบญเบ™เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเปเบˆเบเบขเบฒเบเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบœเบนเป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เบฅเบฐเบ”เบฑเบš 1, 2, 3, เป„เบ›เบซเบฒเบšเบฑเบ™เบŠเบต "เป€เบ‡เบดเบ™เบ„เบทเบ™" เปเบฅเบฐเบšเบฑเบ™เบŠเบต "เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡" (เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเป€เบกเบทเปˆเบญเปเบˆเบเบขเบฒเบเป„เบ›เบเปˆเบญเบ™เบซเบ™เป‰เบฒ. เบšเบฑเบ™โ€‹เบŠเบตโ€‹เป„เบ›โ€‹เบ—เบตเปˆโ€‹เบ™เบตเป‰).

Cashback เปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบเบฐเบ•เบธเป‰เบ™เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ. เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ–เบญเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ„เบฐเบ™เบฐเบเปเบฒเบกเบฐเบเบฒเบ™เบ—เบตเปˆเบˆเปˆเบฒเบเป‚เบ”เบเบฅเบฐเบšเบปเบšเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ "เป€เบ‡เบดเบ™เบ„เบทเบ™" เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฒเบ‡เบงเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ.

เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ, เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบญเบ‡เบ—เบถเบ™เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰เปเบฅเบฐเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบ™เป€เบซเบ”เบœเบปเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบšเบฑเบ™เบŠเบต smart เบ—เบตเปˆเบฅเบฐเบšเบปเบšเบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบฅเบฒเบ‡เบงเบฑเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ–เบทเบเบˆเปˆเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ”เบตเบกเบžเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบเบญเบ‡เบ—เบถเบ™เบ„เบงเบ™เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เปƒเบ™เป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบงเบฒเบ‡เป€เบ”เบตเบกเบžเบฑเบ™ (เบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบญเบทเปˆเบ™เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฒเบ‡เบงเบฑเบ™เบ—เบตเปˆเบˆเปˆเบฒเบ). เบชเบฒเบกเบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เบฅเบฒเบ‡เบงเบฑเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเปƒเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบฅเบฐเบ”เบฑเบšเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ™เบตเป‰เบเปเปˆเบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™เบฅเบฐเบซเบฑเบ”. เป€เบ›เบตเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบฅเบฒเบ‡เบงเบฑเบ™เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบฅเบฐเบ”เบฑเบš 1-level3; เปƒเบ™เบฅเบฐเบซเบฑเบ”เบกเบฑเบ™เบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเป€เบ›เบฑเบ™ เบˆเปเบฒโ€‹เบ™เบงเบ™ * เบฅเบฐโ€‹เบ”เบฑเบš / 1000โ€‹, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบกเบนเบ™เบ„เปˆเบฒ 1 เป€เบ—เบปเปˆเบฒเบเบฑเบš 0,1% (เบ™เบตเป‰เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”).

เบเบฒเบ™เป€เบญเบตเป‰เบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบ›เปˆเบฝเบ™เบเบญเบ”เป€เบ‡เบดเบ™เปƒเบ™เบšเบฑเบ™เบŠเบต เปเบฅเบฐเบเบฑเบ‡เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเปเบšเบšเบŸเบญเบก:

fund_address_txid = address:owner:inc:level:timestamp
ะ”ะปั ะฟะพะปัƒั‡ะตะฝะธั timestamp (ั‚ะตะบัƒั‰ะตะณะพ ะฒั€ะตะผะตะฝะธ) ะธัะฟะพะปัŒะทัƒะตั‚ัั ั‚ะฐะบะฐั ะฒะพั‚ ัะฒัะทะบะฐ
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบงเบฅเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบกเปˆเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบ•เบฑเบ™เบ—เบตเปˆเบกเบฑเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆ. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบฒเบเบเปˆเบงเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ timestamp เบˆเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบˆเบฒเบ callable เป„เบ”เป‰.
เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบ–เบญเบ™เบ•เบปเบงเบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เบชเบฐเบชเบปเบกเบ—เบฑเบ‡เปเบปเบ”เปƒเบซเป‰เบเบฑเบšเบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰. เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ:

# withdraw log: withdraw_user_txid=amount:timestamp

Application

เบชเปˆเบงเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” affiliate.js, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบ‚เบปเบงเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ•เบปเบงเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ”เปเบฅเบฐ WAVES NODE REST API. เบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบ”เบฑเบš abstraction เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบเบญเบš (เบญเบฑเบ™เปƒเบ”เบ™เบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป„เบ”เป‰). เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ (เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เบ–เบญเบ™เบ•เบปเบง) เบ–เบทเบงเปˆเบฒ Waves Keeper เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš; เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบญเบ‡เบšเปเปˆเป„เบ”เป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบ™เบตเป‰.

เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เปเบกเปˆเบ™เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบˆเบฒเบเบŠเบทเปˆ; เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เบฅเบฐเบซเบฑเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ„เปเบฒเบ„เบดเบ”เป€เบซเบฑเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก - เบกเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบฎเบญเบšเบงเบฝเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบ id เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเบ—เบตเปˆ 123 - เบ™เบตเป‰เปเบกเปˆเบ™ PoW-captcha เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เป€เบŠเบดเปˆเบ‡เบ›เบปเบเบ›เป‰เบญเบ‡เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบกเบฐเบซเบฒเบŠเบปเบ™. เบŸเบฑเบ‡เบŠเบฑเบ™เบŠเบญเบเบซเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบกเบต id เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบŠเบฑเบ™เบกเบฑเบ™เบœเปˆเบฒเบ™ Waves Keeper.

เป‚เบ„เบ‡เบเบฒเบ™เบžเบฑเบ™เบ—เบฐเบกเบดเบ” DEX เปเบกเปˆเบ™เบกเบตเบขเบนเปˆ GitHub.com.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™