E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

Hello a pau!

ʻO ka mea hou aku, Waves Labs kūkala ʻia hoʻokūkū no nā mea hoʻomohala i hoʻolaʻa ʻia no ka hoʻokuʻu ʻana i ka hoʻonui ʻōlelo aelike akamai RIDE no nā noi decentralized Ride4Dapps i loko o ka pūnaewele hoʻāʻo!

Мы выбрали кейс DAO, так как Ventuary планирует заниматься разработкой dApp с социальными функциями: голосованием, фандрейзингом, доверительным управлением и пр.
Ua hoʻomaka mākou me kahi laʻana maʻalahi ma Q&A-сессии a i IDE HAI — примере с putele puolo.

Давайте разберем данный пример, проверим гипотезы и рассмотрим некоторые странности:

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 poloka a hōʻike i ka helu wahi e hoʻouna ai i nā hōʻailona.
Адрес можно узнать в 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: mea loiloi

Теперь давайте раздадим токены из банка остальным участникам. (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:
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)
Η
Если у вас нет соответствия 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].
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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 nā kālepa.

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.
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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}))

После пополнения балансов всех участников мы видим:
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

Этап 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ā ().

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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 laʻana

Ride4Dapps i kēia manawa he 2 mau ʻano hōʻike hou:

  1. @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.
  2. @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.
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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 (Eia kekahi lā)
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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.
E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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 }]}))

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

He 1.99 WAVES i koe ia Bob. ʻO ia hoʻi, ua uku ʻo Bob i ke kōmike 0.01 WAVES

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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.

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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.

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

Однако, мы снова ошиблись, так как у функции withdraw совсем другие параметры, другая сигнатура. Когда будете проектировать смарт-контракты на RIDE4DAPPS следует обратить внимание на этот момент

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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.

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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.

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

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ā.

E aʻo ana e kākau i nā ʻaelike akamai Waves ma RIDE a me RIDE4DAPPS. Mahele 1 (Wallet hoʻohana lehulehu)

У нее также ничего не вышло.

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

Pākuʻi i ka manaʻo hoʻopuka