Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚!

БовсСм Π½Π΅Π΄Π°Π²Π½ΠΎ Waves Labs анонсировал конкурс для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ Ρ€Π΅Π»ΠΈΠ·Ρƒ Π² Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² RIDE для Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ride4Dapps!

ΠœΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ кСйс DAO, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ventuary ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ dApp с ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ функциями: голосованиСм, Ρ„Π°Π½Π΄Ρ€Π΅ΠΉΠ·ΠΈΠ½Π³ΠΎΠΌ, Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΡ€.
ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с простого ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² Q&A-сСссии ΠΈ Π² RIDE IDE β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ с ΠΎΠ±Ρ‰ΠΈΠΌ кошСльком.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹ ΠΈ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ странности:

ΠŸΡƒΡΡ‚ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Alice β€” dApp Owner
Boob ΠΈ Cooper β€” ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Ρ‹ Alice, соосноватСли Alice-BC DAO
Neli β€” Π²Π»Π°Π΄Π΅Π»Π΅Ρ† бизнСса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΡƒΠΆΠ½ΠΎ финансированиС
Bank β€” Π±Π°Π½ΠΊ, Ρ€Π°Π·Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹

Π­Ρ‚Π°ΠΏ 1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ балансов

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² тСстовой сСти waves ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ faucet ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ адрСс Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹.
АдрСс ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² IDE, раскрыв Π΄Π°Π½Π½Ρ‹Π΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°.
ВыдСляСм Bank 10 WAVES. ПослС провСряСм, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ поступили Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ: ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»ΡŒ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π΄Π°Π΄ΠΈΠΌ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈΠ· Π±Π°Π½ΠΊΠ° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ участникам. (Notes: ВсС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСти waves Π½Π΅ бСсплатны, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ баланс Ρƒ всСх участников, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ).

1 WAVES = 100000000 Π΅Π΄ΠΈΠ½ΠΈΡ† (wavelets), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ amounts ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ integer
0.01 WAVES (Transaction Fee) = 1000000

Bank -> [3 WAVES] -> Alice, Ρ‡Π΅Ρ€Π΅Π· TransferTransaction (Type: 4).

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Ρ‡Ρ‚ΠΎ env.SEED, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ соотвСтствуСт Π½Π°ΡˆΠ΅ΠΌΡƒ Bank:
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)
οΏΌ
Если Ρƒ вас Π½Π΅Ρ‚ соотвСтствия seed Ρ„Ρ€Π°Π·, просто ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² Π½Π΅Π³ΠΎ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Accounts ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ Ρ€Π°Π·.
ПослС этого создаСм, анонсируСм ΠΈ подписываСм Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ 3 WAVES Alice.
Π£Π·Π½Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Алисы ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ env.accounts. НумСрация начинаСтся с 0, соотвСствСнно Алиса это env.accounts[1].
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅, ссылка Π½Π° Π½Π΅Π³ΠΎ Π½Π°ΠΌ возвратится сразу послС исполнСния Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

УбСТдаСмся, Ρ‡Ρ‚ΠΎ баланс Alice ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ Π½Π° 3 WAVES, Π° Π½Π° балансС Π±Π°Π½ΠΊΠ° ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 10 β€” 3 β€” 0.01 = 0.699.
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Boob ΠΈ Cooper ΠΏΠΎ 3 WAVES, Π° Neli, Xena ΠΈ Mark ΠΏΠΎ 0.2 WAVES Ρ‚Π΅ΠΌ ΠΆΠ΅ способом.
(Notes: ΠœΡ‹ допустили ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° ΠΎΠ΄ΠΈΠ½ Π·Π½Π°ΠΊ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Neli 0.02 WAVES. Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹!)

broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))

ПослС пополнСния балансов всСх участников ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ:
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π­Ρ‚Π°ΠΏ 2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ dApp Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°

ΠœΡ‹ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ создатСлСм ΠΈ ΠΎΡƒΠ½Π΅Ρ€ΠΎΠΌ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Alice.
Π’ Accounts ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ устанавливаСм Π΅Π΅, ΠΊΠ°ΠΊ SEED ΠΈ провСряСм env.SEED соотвСтствуСт Alice.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Alice самый простой скрипт (ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚) ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ….
Π‘ΠΌΠ°Ρ€Ρ‚-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Π² Waves β€” это ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‚ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊΠΎΠΌΡƒ Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏΡƒ исходящСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС это условиС β€” ALWAYS. Код ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° β€” true. Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ deploy().

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Fee Π·Π° setScript Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ 1400000/100000000 = 0.014 WAVES. Π£ Алисы Π½Π° балансС ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 2.986 WAVES.

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ сСйчас ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Alice Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°, ΠΎΠΏΠΈΡΠ°Π½Π½ΡƒΡŽ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅

Ride4Dapps Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 2 Π½ΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ:

  1. @Callable(i) β€” ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° i, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π²Ρ‹Π·Π²Π°Π»/подписал Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ. ИмСнно Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ опрСдСляСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния dApp Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°. Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с этой Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС dApp Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π°.
  2. @Verifier(tx) β€” Π’Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ tx Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. БоотвСтствуСт Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΈΠ· RIDE. ИмСнно Π² этом Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ дальнСйшиС измСнСния Π»ΠΎΠ³ΠΈΠΊΠΈ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² Π½Π° dApp Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅.

Π”Π°Π²Π°ΠΉΡ‚Π΅ сдСлаСм dApp Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠΉ кошСлСк для всСх участников.
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ сСйчас ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π½Π° Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Π±Π»ΠΎΠΊΠΎΠ² ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ base64 ΠΊΠΎΠ΄ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· дСкомпилятор (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€)
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

УбСТдаСмся, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΠΊΠ° смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ.
Π£ Алисы Π½Π° балансС ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 2.972 WAVES.

Π”Π°Π½Π½Ρ‹ΠΉ dApp Π²Π΅Π΄Π΅Ρ‚ ΡƒΡ‡Π΅Ρ‚ Ρ‚ΠΎΠ³ΠΎ, сколько вносят ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· участников Π² ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΠ½Π΄ Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ data transaction β€” DataEntry(currentKey, newAmount), Π³Π΄Π΅ currentKey β€” это Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ deposit, Π° newAmount β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠ³ΠΎ баланса.

Boob ΠΈ Cooper вносят свои Π΄Π΅ΠΏΠΎΠ·ΠΈΡ‚Ρ‹ Π½Π° dApp account ΠΏΠΎ 1 WAVES.
Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

ДопускаСм ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΈ транзакция Π½Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠ±Π΅Π΄ΠΈΠ»ΠΈΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ Bob ошиблись Π² индСксС ΠΈ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Bank, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅Ρ‚ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°. Π’ΡƒΡ‚ стоит ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ β€” Π·Π° Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ комиссия Π½Π΅ снимаСтся! Π£ Алисы Π½Π° балансС ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 2.972 WAVES. Π£ Bob 3 WAVES.

Bob ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» 1 WAVES Π½Π° dApp Account.

broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π£ Bob ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ 1.99 WAVES. Π’ΠΎ Π΅ΡΡ‚ΡŒ Bob Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΠ» 0.01 WAVES комиссии

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π£ Алисы Π½Π° балансС Π±Ρ‹Π»ΠΎ 2.972 WAVES, стало 3.972. На Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅ Alice Ρ‚Π°ΠΊΠΆΠ΅ зарСгистрирована транзакция, ΠΎΠ΄Π½Π°ΠΊΠΎ c dApp Account (Alice) Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ комиссии Π½Π΅ Π±Ρ‹Π»ΠΎ списано.
ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Cooper Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΠ» счСт Ρƒ Алисы Π½Π° балансС стало 4.972 WAVES.

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

О Ρ‚ΠΎΠΌ, ΠΊΠΎΠΌΡƒ сколько WAVES Π² ΠΎΠ±Ρ‰Π΅ΠΌ кошСлькС ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² ΠΎΠ±ΠΎΠ·Ρ€Π΅Π²Π°Ρ‚Π΅Π»Π΅ Π±Π»ΠΎΠΊΠΎΠ² Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Data.

Cooper ΠΏΠ΅Ρ€Π΅Π΄ΡƒΠΌΠ°Π» ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ сумму Π² 1 WAVES Π½Π° ΠΎΠ±Ρ‰Π΅ΠΌ кошСлькС ΠΈ Ρ€Π΅ΡˆΠΈΠ» вывСсти ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ сродств. Для этого ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ withdraw.

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Однако, ΠΌΡ‹ снова ошиблись, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ withdraw совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, другая сигнатура. Когда Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE4DAPPS слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° этот ΠΌΠΎΠΌΠ΅Π½Ρ‚

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π£ Cooper Π½Π° балансС стало 2.48 WAVES. БоотвСтсвСнно 3 WAVES β€” 1 β€” 0.01, Π° ΠΏΠΎΡ‚ΠΎΠΌ + 0.5 β€” 0.01. БоотвСствСнно ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² deposit ΠΈ withdraw обходится Π² 0.01 WAVES. Π’ ΠΈΡ‚ΠΎΠ³Π΅, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ собствСнников dApps записи помСнялись ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Bob Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ» ΠΈΠ·ΡŠΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сумму ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ кошСлька, Π½ΠΎ ошибся ΠΈ попытался ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ 1.5 WAVES.

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Однако Π² смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

Xena β€” ΠΌΠΎΡˆΠ΅Π½Π½ΠΈΡ†Π°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»Π° вывСсти 1 WAVES ΠΈΠ· ΠΎΠ±Ρ‰Π΅Π³ΠΎ счСта.

Учимся ΠΏΠΈΡΠ°Ρ‚ΡŒ Waves смарт-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° RIDE ΠΈ RIDE4DAPPS. Π§Π°ΡΡ‚ΡŒ 1 (ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ кошСлСк)

Π£ Π½Π΅Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹ΡˆΠ»ΠΎ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ части рассмотрим Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹ связанныС с Π½Π΅ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠΌ Alice dApp Account.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ