Hello a pau!
ʻO ka mea hou aku, Waves Labs
Мы выбрали кейс DAO, так как
Ua hoʻomaka mākou me kahi laʻana maʻalahi ma
Давайте разберем данный пример, проверим гипотезы и рассмотрим некоторые странности:
E loaʻa iā mākou ʻo Alice - dApp Owner
Boob и Cooper — партнеры Alice, сооснователи Alice-BC DAO
Neli — владелец бизнеса, которой нужно финансирование
Bank — банк, раздающий токены
Ka Papa 1. Hoʻomaka i nā koena
I mea e loaʻa ai nā hōʻailona ma ka pūnaewele hoʻāʻo nalu, pono ʻoe e hoʻopili
Адрес можно узнать в IDE, раскрыв данные аккаунта.
Hōʻike mākou i ka Bank 10 WAVES. A laila nānā mākou ua hōʻea lākou ma o ka poloka a me ka polokalamu kele pūnaewele:
Теперь давайте раздадим токены из банка остальным участникам. (Notes: Все транзакции в сети waves не бесплатны, поэтому необходим минимальный положительный баланс у всех участников, чтобы совершать транзакции).
1 WAVES = 100000000 единиц (wavelets), так как amounts могут быть только integer
0.01 NA WAVE (Uku Kūʻai) = 1000000
Bank -> [3 WAVES] -> Alice, ma o TransferTransaction (Type: 4).
ʻIke mākou i ka env.SEED kahi i hoʻopaʻa inoa ʻia ai e pili ana i kā mākou Bank:
Η
Если у вас нет соответствия seed фраз, просто переключитесь в него во вкладке Accounts и проверьте еще раз.
Ma hope o kēia, hana mākou, hoʻolaha a kau inoa i kahi kālepa no ka hoʻoili ʻana o 3 WAVES Alice.
Hiki iā ʻoe ke ʻike i ka ʻikepili a Alice ma o ka hoʻololi env.accounts. Hoʻomaka ka helu ʻana mai ka 0, no laila ʻo Alice env.accounts[1].
broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))
Hiki ke ʻike ʻia ka hopena ma ka polokalamu kele pūnaewele, e hoʻihoʻi ʻia kahi loulou iā mākou ma hope koke o ka hoʻokō ʻana
Manaʻo mākou ua hoʻopiha hou ʻia ke koena o Alice e 3 WAVES, a mau ke koena panakō ma 10 - 3 - 0.01 = 0.699.
Hoʻouna mākou iā Boob a me Cooper 3 WAVES i kēlā me kēia, a ʻo Neli, Xena a me Mark 0.2 WAVES kēlā me kēia ma ke ʻano like.
(Notes: Мы допустили ошибку на один знак и отправили Neli 0.02 WAVES. Будьте внимательны!)
broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))
После пополнения балансов всех участников мы видим:
Этап 2. Создание dApp аккаунта
Ua ʻae mākou ʻo Alice ka mea nāna i hoʻokumu a nona ka noi decentralized.
В Accounts переходим устанавливаем ее, как SEED и проверяем env.SEED соответствует Alice.
E ho'āʻo kākou e hoʻokomo i ka palapala maʻalahi loa (ʻaelike) ma ka moʻokāki a Alice.
ʻO nā pilina naʻauao ma Waves nā predicates e pāpā a ʻae i kekahi ʻano o ke kālepa puka e hana ʻia ma lalo o kekahi mau kūlana. I kēia hihia, ʻo kēia ʻano maʻamau. He ʻoiaʻiʻo ke code aelike. Kāhea i ka hoʻolālā ().
Uku no kēlā me kēia hoʻopaʻa hoʻopaʻa palapala 1400000/100000000 = 0.014 WAVES. He 2.986 WAVES i koe ma kona koena.
E ho'āʻo kākou i kēia manawa e hoʻokomo i ka loiloi ʻaelike akamai paʻakikī ma ka moʻokāki Alice, i wehewehe ʻia ma
Ride4Dapps i kēia manawa he 2 mau ʻano hōʻike hou:
- @Callable(i) - lawe ʻia ma ke ʻano he ʻāpana i, ʻikepili e pili ana i kahi moʻokāki i kapa ʻia / pūlima i ke kālepa. ʻO ia ka hopena o kēia hana e hoʻoholo ai i ka hoʻololi ʻana i ke kūlana o ka moʻokāki dApp. Hiki i nā moʻolelo ʻē aʻe ke hana i nā kālepa a hoʻokō i nā hana me kēia annotation a hoʻololi i ke kūlana o ka moʻokāki dApp.
- @Verifier(tx) — Верификатор транзакции с параметром tx транзакции. Соответствует логики предикатов из RIDE. Именно в этом выражении можно разрешить или запретить дальнейшие изменения логики смарт-контрактов на dApp аккаунте.
E hana kāua ikal lomi helu ma ke ʻano he ʻeke maʻamau no nā mea komo a pau.
No ka nānā ʻana i kahi ʻaelike e hana nei i kāu moʻokāki, hiki iā ʻoe ke kope i ke code base64 o ka ʻaelike akamai i ka block explorer a ʻike iā ia me ka hoʻohana ʻana i kahi decompiler (
Hoʻomaopopo mākou i ka loiloi o ka ʻaelike akamai i ka mea a mākou e manaʻo ai.
He 2.972 WAVES i koe ma kona koena.
Mālama kēia dApp i ka nui o ka hāʻawi ʻana o kēlā me kēia mea i ke kālā maʻamau ma o kahi mīkini kaʻina ʻikepili - DataEntry(currentKey, newAmount), где currentKey — это аккаунт, который вызывает функцию deposit, а newAmount — это значение пополненного баланса.
Hoʻokomo ʻo Boob lāua ʻo Cooper i kā lākou waihona i ka moʻokāki dApp me 1 WAVES.
Hana hewa mākou a ʻaʻole hele ka hana. No ka mea, ʻoiai ua manaʻoʻiʻo mākou e hana ana mākou i kahi kālepa no Bob, ua hana hewa mākou i ka papa kuhikuhi a hōʻike i kahi waihona Bank ʻaʻohe ʻaelike akamai. Pono e ʻike i kahi mea nui ma aneʻi - aia kahi uku no nā hoʻāʻo kūleʻa e hoʻomaka i nā hana. не снимается! У Алисы на балансе осталось 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 }]}))
He 1.99 WAVES i koe ia Bob. ʻO ia hoʻi, ua uku ʻo Bob i ke kōmike 0.01 WAVES
Ua loaʻa iā Alice he 2.972 WAVES ma kāna kaulike, i kēia manawa he 3.972. Ua hoʻopaʻa inoa ʻia kekahi kālepa ma ka moʻokāki Alice, akā ʻaʻohe komisina i hoʻopiʻi ʻia mai ka dApp Account (Alice).
Ma hope o ka hoʻopiha hou ʻana o Cooper i ka moʻolelo, ua lilo ke koena o Alice i 4.972 WAVES.
Hiki iā ʻoe ke ʻike i ka mea nona ka nui o WAVES i loko o ka ʻeke maʻamau ma ka ʻimi poloka ma ka pā ʻikepili.
Ua hoʻololi ʻo Cooper i kona manaʻo e pili ana i ka waiho ʻana i ka nui o 1 WAVES ma ka ʻeke nui a hoʻoholo e hoʻihoʻi i ka hapalua o ka pili. No ka hana ʻana i kēia, pono ʻo ia e kāhea i ka hana withdraw.
Однако, мы снова ошиблись, так как у функции withdraw совсем другие параметры, другая сигнатура. Когда будете проектировать смарт-контракты на RIDE4DAPPS следует обратить внимание на этот момент
Loaʻa iā Cooper i kēia manawa he 2.48 WAVES ma kāna pepa kaulike. No laila, 3 NĀ WAVE - 1 - 0.01, a laila + 0.5 - 0.01. No laila, ʻo kēlā me kēia kelepona e waiho a hoʻihoʻi i nā kumukūʻai 0.01 WAVES. ʻO ka hopena, ua hoʻololi ʻia nā mea i loko o ka papa ʻaina o nā dApps penei.
Ua hoʻoholo pū ʻo Bob e hoʻihoʻi i kekahi kālā mai ka ʻeke kālā like ʻole, akā ua hana hewa a hoʻāʻo e unuhi i 1.5 WAVES.
Eia nō naʻe, ua loaʻa i ka ʻaelike akamai kahi hōʻoia no kēia kūlana.
He scammer ʻo Xena, ua hoʻāʻo ʻo ia e hoʻihoʻi i 1 WAVES mai ka huina kālā.
У нее также ничего не вышло.
Ma ka ʻāpana aʻe, e nānā mākou i nā pilikia paʻakikī e pili ana i ka hemahema o Alice dApp Account.
Source: www.habr.com