Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π½Π° Waves

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Waves, Π²Π½Π΅Π΄Ρ€Π΅Π½Π° ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Π³Ρ€Π°Π½Ρ‚ Π½Π° Waves Labs ΠΎΡ‚ Π΅ΠΊΠΈΠΏΠ° Π½Π° Bettex.

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡΡ‚Π° Π½Π΅ Π΅ спонсорирана! ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° Π΅ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π½Π΅ΠΉΠ½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ ΠΈ разпространСниС Π΅ Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° стимулира Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° dApp прилоТСния ΠΈ ΠΊΠ°Ρ‚ΠΎ цяло Π½Π°ΡΡŠΡ€Ρ‡Π°Π²Π° дСцСнтрализацията, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΎΡ‚ ΠΏΠΎΠ»Π·Π° Π·Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π½Π° Waves

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ΠΎΡ‚ΠΎ dApp Π·Π° Π°Ρ„ΠΈΠ»ΠΈΠ΅ΠΉΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π΅ шаблон Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Π°Ρ„ΠΈΠ»ΠΈΠ΅ΠΉΡ‚ ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ своята функционалност. ΠšΠΎΠ΄ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°Ρ‚ΠΎ шаблон Π·Π° ΠΊΠΎΠΏΠΈΡ€Π°Π½Π΅, ΠΊΠ°Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ°Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΈΠ΄Π΅ΠΈ Π·Π° тСхничСска рСализация.

По ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° функционалността Ρ‚ΠΎΠ²Π° Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° систСма, която Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° рСгистрация с Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚, многостСпСнно начисляванС Π½Π° Π²ΡŠΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° Ρ€Π΅Ρ„Π΅Ρ€Π°Π»ΠΈ ΠΈ мотивация Π·Π° рСгистрация Π² систСмата (кСшбСк). БистСмата Π΅ β€žΡ‡ΠΈΡΡ‚ΠΎβ€œ dApp, тоСст ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ взаимодСйства Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ с Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π±Π΅Π· собствСн Π±Π΅ΠΊΠ΅Π½Π΄, Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Ρ‚.Π½.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ сС Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ:

  • ОбаТданС Π½Π° смарт Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚ с Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ погасяванС (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° Π² смСтката няма Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° ΠΏΠ»Π°Ρ‰Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°, Π½ΠΎ Ρ‚Π΅ сС появяват Ρ‚Π°ΠΌ Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°).
  • PoW-captcha - Π·Π°Ρ‰ΠΈΡ‚Π° срСщу високочСстотно Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° смарт Π°ΠΊΠ°ΡƒΠ½Ρ‚ - ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° captcha, Π½ΠΎ Ρ‡Ρ€Π΅Π· доказатСлство Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π½ΠΈ рСсурси.
  • Заявка Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ шаблон.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС ΡΡŠΡΡ‚ΠΎΠΈ ΠΎΡ‚:

  • ΠΊΠΎΠ΄ Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π°ΠΊΠ°ΡƒΠ½Ρ‚ Π½Π° Π΅Π·ΠΈΠΊΠ° ride4dapps (ΠΊΠΎΠΉΡ‚ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ, Π΅ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ Π² основния ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π°ΠΊΠ°ΡƒΠ½Ρ‚, Π·Π° ΠΊΠΎΠΉΡ‚ΠΎ трябва Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ°Ρ‚Π° функционалност);
  • js ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°, която ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° абстракционСн слой Π²ΡŠΡ€Ρ…Ρƒ WAVES NODE REST API;
  • ΠΊΠΎΠ΄ Π½Π° Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° vuejs, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΠΈ RIDE ΠΊΠΎΠ΄Π°.

НСка опишСм всички ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈ характСристики.

ИзвикванС Π½Π° ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π½Π° смСтка Π² дълг с Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΏΠ»Π°Ρ‰Π°Π½Π΅

Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° InvokeScript изисква ΠΏΠ»Π°Ρ‰Π°Π½Π΅ Π½Π° такса ΠΎΡ‚ смСтката, ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°Ρ‰Π° транзакцията. Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π°ΠΊΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ ΠΌΠ°Π½ΠΈΠ°Ρ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ количСство WAVES Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π² Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° си, Π½ΠΎ Π°ΠΊΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΡŠΡ‚ Π΅ насочСн към маситС, Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² сСриозСн ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° потрСбитСлят трябва Π΄Π° сС ΠΏΠΎΠ³Ρ€ΠΈΠΆΠΈ Π·Π° Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ WAVES (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ подходящ Π°ΠΊΡ‚ΠΈΠ², ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΠ»Π°Ρ‰Π°Π½Π΅ Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ), ΠΊΠΎΠ΅Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° ΠΈ Π±Π΅Π· Ρ‚ΠΎΠ²Π° значитСлния ΠΏΡ€Π°Π³ Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. МоТСм Π΄Π° разпрСдСлямС Π°ΠΊΡ‚ΠΈΠ²ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΄Π° ΠΏΠ»Π°Ρ‰Π°Ρ‚ Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π° сС изправят ΠΏΡ€Π΅Π΄ риска ΠΎΡ‚ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° с тях, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π±ΡŠΠ΄Π°Ρ‚ създадСни Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ систСми Π·Π° ΠΈΠ·ΠΏΠΎΠΌΠΏΠ²Π°Π½Π΅ Π½Π° Π»ΠΈΠΊΠ²ΠΈΠ΄Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈ ΠΎΡ‚ Π½Π°ΡˆΠ°Ρ‚Π° систСма.

Π‘ΠΈ Π±ΠΈΠ»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Π°ΠΊΠΎ Π΅ възмоТно Π΄Π° сС ΠΈΠ·Π²ΠΈΠΊΠ° InvokeScript β€žΠ·Π° смСтка Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»Ρβ€œ (интСлигСнтния Π°ΠΊΠ°ΡƒΠ½Ρ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ Π΅ инсталиран ΡΠΊΡ€ΠΈΠΏΡ‚ΡŠΡ‚), ΠΈ Ρ‚Π°Π·ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°, ΠΌΠ°ΠΊΠ°Ρ€ ΠΈ Π½Π΅ ΠΏΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ Π½Π°Ρ‡ΠΈΠ½.

Ако Π²ΡŠΡ‚Ρ€Π΅ Π² InvokeScript сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ScriptTransfer Π΄ΠΎ адрСса Π½Π° повикващия, ΠΊΠΎΠΉΡ‚ΠΎ компСнсира Ρ‚ΠΎΠΊΠ΅Π½ΠΈΡ‚Π΅, ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Π½ΠΈ Π·Π° таксата, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Π°ΠΊΠΎΠ²Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ Ρ‰Π΅ бъдС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ няма Π°ΠΊΡ‚ΠΈΠ²ΠΈ Π² извикващия Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ. Π’ΠΎΠ²Π° Π΅ възмоТно, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π·Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° слСд ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° транзакцията, Π° Π½Π΅ ΠΏΡ€Π΅Π΄ΠΈ нСя, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΅ възмоТно Π΄Π° сС правят Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚, ΠΏΡ€ΠΈ условиС Ρ‡Π΅ Ρ‚Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈΠ·ΠΊΡƒΠΏΠ΅Π½ΠΈ.

ScriptTransfer(i.caller, i.fee, unit)

ΠšΠΎΠ΄ΡŠΡ‚ ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π° ΠΈΠ·Ρ€Π°Π·Ρ…ΠΎΠ΄Π²Π°Π½Π°Ρ‚Π° такса, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° срСдства ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Π»ΠΈΠ³Π΅Π½Ρ‚Π΅Π½ Π°ΠΊΠ°ΡƒΠ½Ρ‚. Π—Π° Π΄Π° сС ΠΏΡ€Π΅Π΄ΠΏΠ°Π·ΠΈΡ‚Π΅ ΠΎΡ‚ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° с Ρ‚Π°Π·ΠΈ функция, трябва Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ обаТдащият сС Ρ…Π°Ρ€Ρ‡ΠΈ таксата Π² правилния Π°ΠΊΡ‚ΠΈΠ² ΠΈ Π² Ρ€Π°Π·ΡƒΠΌΠ½ΠΈ Π³Ρ€Π°Π½ΠΈΡ†ΠΈ:

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, ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° транзакция:

if take(toBase58String(i.transactionId), 3) != β€œ123” then throw(β€œΠ΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡΡ‚Π²ΠΎ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎβ€) else

Π—Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ транзакция, повикващият трябва Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΠ²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ нСговият ΠΊΠΎΠ΄ base58 (id) Π΄Π° Π·Π°ΠΏΠΎΡ‡Π²Π° с числата 123, ΠΊΠΎΠ΅Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° срСдно Π½Π° няколко дСсСтки сСкунди процСсорно Π²Ρ€Π΅ΠΌΠ΅ ΠΈ ΠΊΠ°Ρ‚ΠΎ цяло Π΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π°. Ако сС изисква ΠΏΠΎ-прост ΠΈΠ»ΠΈ ΠΏΠΎ-слоТСн PoW, Ρ‚ΠΎΠ³Π°Π²Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ лСсно Π΄Π° бъдС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π° ΠΏΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ Π½Π°Ρ‡ΠΈΠ½.

Заявка Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ шаблон

Π—Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΆΠΈΠ·Π½Π΅Π½ΠΎΠ²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ API инструмСнти Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡-Π²Π°Π» с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° шаблони. Вакъв инструмСнтариум сС появи Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° юли 2019 Π³. ΠΊΠ°Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ ?съвпада ΠΏΡ€ΠΈ заявка Π·Π° REST API /addresses/data?matches=regexp. Π‘Π΅Π³Π°, Π°ΠΊΠΎ трябва Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡, Π° Π½Π΅ всички ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ навСднъТ ΠΎΡ‚ ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π° само някаква Π³Ρ€ΡƒΠΏΠ°, Ρ‚ΠΎΠ³Π°Π²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΈΠ·Π±ΠΎΡ€ ΠΏΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ»ΡŽΡ‡Π°. НапримСр Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅Π³Π»Π΅Π½Π΅ са ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ

withdraw_${userAddress}_${txid}

ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΈ позволява Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ списък с Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π° Ρ‚Π΅Π³Π»Π΅Π½Π΅ Π½Π° срСдства Π·Π° всСки Π΄Π°Π΄Π΅Π½ адрСс, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ шаблона:

?matches=withdraw_${userAddress}_.*

Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π½Π° Π³ΠΎΡ‚ΠΎΠ²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

vuejs ΠΊΠΎΠ΄

ΠšΠΎΠ΄ΡŠΡ‚ Π΅ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΎ Π΄Π΅ΠΌΠΎ, Π±Π»ΠΈΠ·ΠΊΠΎ Π΄ΠΎ Ρ€Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Waves Keeper ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° affiliate.js, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° която рСгистрира ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π² систСмата, ΠΏΡ€Π°Π²ΠΈ заявки Π·Π° Π΄Π°Π½Π½ΠΈ Π·Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π²ΠΈ позволява Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ спСчСлСнитС срСдства Π² Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° Π½Π° потрСбитСля.

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ Π² Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Π° Π½Π° Waves

Код за RIDE

Π‘ΡŠΡΡ‚ΠΎΠΈ сС ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° рСгистриранС, Ρ„ΠΎΠ½Π΄ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ‚Π΅Π³Π»Π΅Π½Π΅.

Ѐункцията Π·Π° рСгистриранС рСгистрира ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π² систСмата. Π’ΠΎΠΉ ΠΈΠΌΠ° Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€Π°: Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚ (адрСс Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚) ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ сол, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΠΎΠ΄Π° Π½Π° функцията, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° транзакцията (PoW-captcha Π·Π°Π΄Π°Ρ‡Π°).

Ѐункцията (ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ останалитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚) ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π·Π°Π΅ΠΌΠ°Π½Π΅, Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ функцията Π΅ финансиранС Π½Π° ΠΏΠ»Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° такса Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ функция. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ Ρ‚ΠΎΠΊΡƒ-Ρ‰ΠΎ Π΅ създал ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ», ΠΌΠΎΠΆΠ΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ със систСмата ΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° бъдС ΠΎΠ·Π°Π΄Π°Ρ‡Π΅Π½ ΠΎΡ‚ Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π°ΠΊΡ‚ΠΈΠ², ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΡƒ позволява Π΄Π° ΠΏΠ»Π°Ρ‚ΠΈ такса Π·Π° транзакция.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ функцията Π·Π° рСгистрация Π΅ Π΄Π²Π° записа:

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

Π’ΠΎΠ²Π° позволява Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄ (Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚ Π½Π° дадСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ всички Ρ€Π΅Ρ„Π΅Ρ€Π°Π»ΠΈ Π½Π° дадСния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»).

Ѐункцията Ρ„ΠΎΠ½Π΄ Π΅ ΠΏΠΎ-скоро шаблон Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π°Π»Π½Π° функционалност. Π’ прСдставСната Ρ„ΠΎΡ€ΠΌΠ° Ρ‚ΠΎΠΉ Π²Π·Π΅ΠΌΠ° всички срСдства, ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»Π΅Π½ΠΈ ΠΎΡ‚ транзакцията, ΠΈ Π³ΠΈ разпрСдСля към ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Π½ΠΈΡ‚Π΅ смСтки Π½Π° 1-Π²ΠΎ, 2-Ρ€ΠΎ, 3-Ρ‚ΠΎ Π½ΠΈΠ²ΠΎ, към смСтката β€žΠΊΠ΅ΡˆΠ±Π΅ΠΊβ€œ ΠΈ смСтката β€žΠΏΡ€ΠΎΠΌΡΠ½Π°β€œ (всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ остава ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ към ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ смСтки стига Ρ‚ΡƒΠΊ).

ΠšΠ΅ΡˆΠ±Π΅ΠΊΡŠΡ‚ Π΅ срСдство Π·Π° стимулиранС Π½Π° крайния ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΄Π° участва Π² систСмата Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ. Частта ΠΎΡ‚ комисионната, ΠΏΠ»Π°Ρ‚Π΅Π½Π° ΠΎΡ‚ систСмата ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° β€žΠΊΠ΅ΡˆΠ±Π΅ΠΊβ€œ, ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½Π° ΠΎΡ‚ потрСбитСля ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°Ρ‚ΠΎ Π½Π°Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π΅Ρ„Π΅Ρ€Π°Π»ΠΈ.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ€Π΅Ρ„Π΅Ρ€Π°Π»Π½Π°Ρ‚Π° систСма, функцията Π½Π° Ρ„ΠΎΠ½Π΄Π° трябва Π΄Π° бъдС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π°, Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π² основната Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° смарт Π°ΠΊΠ°ΡƒΠ½Ρ‚Π°, Π²ΡŠΡ€Ρ…Ρƒ ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ систСмата. НапримСр, Π°ΠΊΠΎ сС ΠΈΠ·ΠΏΠ»Π°Ρ‰Π° Π½Π°Π³Ρ€Π°Π΄Π° Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠ° Π·Π° Π½Π°ΠΏΡ€Π°Π²Π΅Π½ Π·Π°Π»ΠΎΠ³, Ρ‚ΠΎΠ³Π°Π²Π° функцията Π·Π° Ρ„ΠΎΠ½Π΄ΠΈΡ€Π°Π½Π΅ трябва Π΄Π° бъдС Π²Π³Ρ€Π°Π΄Π΅Π½Π° Π² Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС ΠΏΡ€Π°Π²ΠΈ Π·Π°Π»ΠΎΠ³ΡŠΡ‚ (ΠΈΠ»ΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π΄Ρ€ΡƒΠ³ΠΎ Ρ†Π΅Π»Π΅Π²ΠΎ дСйствиС, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠ»Π°Ρ‰Π° Π½Π°Π³Ρ€Π°Π΄Π°Ρ‚Π°). Има Ρ‚Ρ€ΠΈ Π½ΠΈΠ²Π° Π½Π° Π½Π°Π³Ρ€Π°Π΄ΠΈ Π·Π° Ρ€Π΅Ρ„Π΅Ρ€Π°Π»ΠΈ, ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ Π² Ρ‚Π°Π·ΠΈ функция. Ако искатС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΈΠ»ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½ΠΈΠ²Π°, Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ сС ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° Π² ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ΡŠΡ‚ Π½Π° Π½Π°Π³Ρ€Π°Π΄Π°Ρ‚Π° сС Π·Π°Π΄Π°Π²Π° ΠΎΡ‚ константитС level1-level3, Π² ΠΊΠΎΠ΄Π° сС изчислява ΠΊΠ°Ρ‚ΠΎ сума * Π½ΠΈΠ²ΠΎ / 1000, тоСст стойността 1 ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° 0,1% (Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π°).

Π˜Π·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° функцията промСня баланса Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° ΠΈ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° създава записи Π·Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° записванС Π½Π° формуляра:

fund_address_txid = address:owner:inc:level:timestamp
Для получСния timestamp (Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ такая Π²ΠΎΡ‚ связка
func getTimestamp() = {
let block = extract(blockInfoByHeight(height))
toString(block.timestamp)
}

ВоСст Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° транзакцията Π΅ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊΠ°, Π² ΠΊΠΎΠΉΡ‚ΠΎ сС Π½Π°ΠΌΠΈΡ€Π°. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΠΎΡ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠ»Π΅ΠΉΠΌΠΎΡ‚ΠΎ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΎΡ‚ самата транзакция, особСно слСд ΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎ ΠΎΡ‚ извиквания.
Ѐункцията Π·Π° Ρ‚Π΅Π³Π»Π΅Π½Π΅ изтСгля всички Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈ Π½Π°Π³Ρ€Π°Π΄ΠΈ Π² смСтката Π½Π° потрСбитСля. Бъздава записи Π·Π° Ρ†Π΅Π»ΠΈΡ‚Π΅ Π½Π° рСгистриранС:

# withdraw log: withdraw_user_txid=amount:timestamp

App

ΠžΡΠ½ΠΎΠ²Π½Π°Ρ‚Π° част ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° affiliate.js, която Π΅ мост ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠΈΡ‚Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ WAVES NODE REST API. ВнСдрява нСзависим ΠΎΡ‚ Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° абстракционСн слой (ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° всСки). АктивнитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (рСгистрация, оттСглянС) ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚, Ρ‡Π΅ Waves Keeper Π΅ инсталиран Π² систСмата, самата Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π½Π΅ провСрява Ρ‚ΠΎΠ²Π°.

ΠŸΡ€ΠΈΠ»Π°Π³Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ:

fetchReferralTransactions
fetchWithdrawTransactions
fetchMyBalance
fetchReferrals
fetchReferer
withdraw
register

Ѐункционалността Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π° ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°Ρ‚Π°, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΈ Π²Ρ€ΡŠΡ‰Π°Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ са описани Π² ΠΊΠΎΠ΄Π°. Ѐункцията Π·Π° рСгистриранС изисква Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ - тя стартира Ρ†ΠΈΠΊΡŠΠ»Π° Π·Π° ΠΈΠ·Π±ΠΎΡ€ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° транзакция, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΠΎΡ‚ 123 - Ρ‚ΠΎΠ²Π° Π΅ PoW captcha, описана ΠΏΠΎ-Π³ΠΎΡ€Π΅, която ΠΏΡ€Π΅Π΄ΠΏΠ°Π·Π²Π° ΠΎΡ‚ масови рСгистрации. Ѐункцията Π½Π°ΠΌΠΈΡ€Π° транзакция с нСобходимия ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ слСд Ρ‚ΠΎΠ²Π° я подписва Ρ‡Ρ€Π΅Π· Waves Keeper.

ΠŸΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΡΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° DEX, Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π½Π° GitHub.com.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€