Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Салом хама!

Ба наздикӣ, Waves Labs эълон озмун барои таҳиягарон бахшида ба интишори васеъшавии забони шартномаи интеллектуалии RIDE барои замимаҳои ғайримарказии Ride4Dapps ба шабакаи санҷишӣ!

Мо парвандаи DAO-ро интихоб кардем, зеро Вентуар таҳияи dApps бо вазифаҳои иҷтимоӣ ба нақша гирифтааст: овоздиҳӣ, фандрайзинг, идоракунии эътимод ва ғайра.
Мо бо як мисоли оддӣ дар Сессияҳои саволу ҷавоб ва дар RIDE IDE - мисол бо ҳамёни муштарак.

Биёед ин мисолро бубинем, гипотезаҳоро санҷем ва ба баъзе аҷибиятҳо назар андозем:

Биёед Алиса - соҳиби dApp дошта бошем
Буб ва Купер шарикони Алис, ҳаммуассисони Alice-BC DAO мебошанд
Нели соҳиби тиҷорат аст, ки ба маблағгузорӣ ниёз дорад
Бонк - бонке, ки нишонаҳо паҳн мекунад

Марҳилаи 1. Оғози тавозуни

Барои гирифтани нишонаҳо дар шабакаи санҷиши мавҷҳо, шумо бояд тамос гиред крани обӣ ва суроғаеро, ки ба он нишонаҳо фиристода мешаванд, нишон диҳед.
Шумо метавонед суроғаро дар IDE тавассути кушодани тафсилоти ҳисоби худ пайдо кунед.
Мо Bank 10 WAVES-ро таъкид мекунем. Сипас мо тафтиш мекунем, ки онҳо тавассути блок ва браузери транзаксия омадаанд: шарҳдиҳанда

Акнун биёед токенҳоро аз бонк ба иштирокчиёни боқимонда тақсим кунем. (Эзоҳ: Ҳама транзаксияҳо дар шабакаи мавҷҳо ройгон нестанд, аз ин рӯ барои анҷом додани муомилот барои ҳамаи иштирокчиён тавозуни ҳадди ақали мусбӣ лозим аст).

1 МАВҶ = 100000000 воҳид (мавҷҳо), зеро миқдорҳо танҳо адад буда метавонанд
0.01 МАВҷҳо (Пардохти муомилот) = 1000000

Бонк -> [3 МАВҲ] -> Алиса, тавассути TransferTransaction (Намуд: 4).

Мо тафтиш мекунем, ки ENV.SEED, ки транзаксияҳо аз он имзо шудаанд, мувофиқат мекунанд Бонки мо:
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Агар шумо ибораи насли мувофиқ надошта бошед, танҳо ба он дар ҷадвали Ҳисобҳо гузаред ва дубора санҷед.
Пас аз ин, мо барои интиқоли 3 WAVES Алиса муомила эҷод мекунем, эълон мекунем ва имзо мекунем.
Шумо инчунин метавонед маълумоти Алисаро тавассути тағирёбандаи env.accounts пайдо кунед. Рақамгузорӣ аз 0 оғоз мешавад, аз ин рӯ Алиса env.accounts[1] аст.
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

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

Натиҷаро инчунин дар браузер мушоҳида кардан мумкин аст, истиноди он фавран пас аз иҷро ба мо баргардонида мешавад муомилот.

Мо боварӣ ҳосил мекунем, ки тавозуни Алиса бо 3 МАВҶ пур карда мешавад ва тавозуни бонк дар 10 - 3 - 0.01 = 0.699 боқӣ мемонад.
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Мо ҳар кадоми Бооб ва Купер 3 МАВҷро мефиристем ва Нели, Ксена ва Марк 0.2 МАВҶРО ба ҳар кадоми онҳо ҳамин тавр мефиристем.
(Эзоҳ: Мо хатои як аломат кардем ва Neli 0.02 WAVES фиристодем. Эҳтиёт бошед!)

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

Пас аз пур кардани тавозуни ҳамаи иштирокчиён, мо мебинем:
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Марҳилаи 2. Ҳисоби dApp эҷод кунед

Мо розӣ шудем, ки Алис созанда ва соҳиби барномаи ғайримарказонидашуда хоҳад буд.
Ба ҳисобҳо равед, онро ҳамчун SEED муқаррар кунед ва мувофиқати env.SEED-ро тафтиш кунед.

Биёед кӯшиш кунем, ки соддатарин скриптро (шартнома) дар ҳисоби Алиса насб кунем.
Тамосҳои интеллектуалӣ дар мавҷҳо предикатҳое мебошанд, ки ҳар гуна амалиёти содиротӣ дар шароити муайянро манъ ё иҷозат медиҳанд. Дар ин ҳолат, ин ҳолат ҲАМЕША. Рамзи шартнома дуруст аст. Call deploy().

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Пардохти як амалиёти setScript 1400000/100000000 = 0.014 МАВҶҲО. Алис дар тавозуни худ 2.986 МАВҲ боқӣ мондааст.

Биёед ҳоло кӯшиш кунем, ки мантиқи мураккабтари шартномаи интеллектуалиро дар ҳисоби Алиса насб кунем, ки дар он тасвир шудааст мисол

Ride4Dapps ҳоло 2 намуди нави эзоҳро дар бар мегирад:

  1. @Callable(i) — ҳамчун параметри i, маълумотро дар бораи он, ки кадом ҳисоб транзаксияро даъват кардааст/имзо кардааст, мегирад. Маҳз натиҷаи ин функсия тағиротро дар ҳолати ҳисоби dApp муайян мекунад. Ҳисобҳои дигар метавонанд транзаксия эҷод кунанд ва вазифаҳоро бо ин эзоҳ иҷро кунанд ва ҳолати ҳисоби dApp-ро тағир диҳанд.
  2. @Verifier(tx) — Санҷандаи транзаксия бо параметри транзаксия tx. Ба мантиқи предикат аз RIDE мувофиқат мекунад. Маҳз дар ин ифода шумо метавонед тағироти минбаъдаро ба мантиқи шартномаҳои интеллектуалӣ дар ҳисоби dApp иҷозат диҳед ё манъ кунед.

Биёед dapper ҳисоб ҳамчун ҳамёни умумӣ барои ҳамаи иштирокчиён.
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Барои санҷидани он, ки кадом шартнома ҳоло дар ҳисоби шумо фаъол аст, шумо метавонед коди base64-и шартномаи интеллектуалиро дар Explorer блок нусхабардорӣ кунед ва онро бо истифода аз декомпилятор эътироф кунед (барои мисол)
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Мо боварӣ ҳосил мекунем, ки мантиқи шартномаи оқилона ба он чизе, ки мо интизор ҳастем, мувофиқат мекунад.
Алис дар тавозуни худ 2.972 МАВҲ боқӣ мондааст.

Ин dApp пайгирӣ мекунад, ки ҳар як иштирокчӣ ба фонди умумӣ тавассути механизм чӣ қадар саҳм мегузорад муомилоти додаҳо - DataEntry (Калиди ҷорӣ, Маблағи нав), ки дар ин ҷо currentKey ҳисобе мебошад, ки функсияи амонатиро даъват мекунад ва newAmount арзиши тавозуни пуршуда мебошад.

Бооб ва Купер пасандозҳои худро ба ҳисоби dApp бо 1 WAVES мегузоранд.
Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Мо хато мекунем ва муомилот намегузарад. Азбаски, сарфи назар аз он, ки мо боварӣ доштем, ки мо аз номи Боб амалиёт анҷом медиҳем, мо дар индекс хато кардем ва ҳисоби бонкиро нишон додем, ки шартномаи оқилона надорад. Дар ин ҷо як нуктаи муҳимро қайд кардан лозим аст - барои кӯшиши бемуваффақият оғоз кардани транзаксияҳо пул гирифта мешавад. нест кардан мумкин нест! Алис дар тавозуни худ 2.972 МАВҲ боқӣ мондааст. Боб 3 мавҷ дорад.

Боб ба ҳисоби dApp 1 МАВҶ фиристод.

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

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Боб 1.99 МАВҶ дорад. Яъне, Боб комиссияи 0.01 WAVES пардохт кардааст

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Алис дар тавозуни худ 2.972 МАВҶ дошт, ҳоло он 3.972 аст. Дар ҳисоби Алиса транзаксия низ ба қайд гирифта шуд, аммо аз ҳисоби dApp (Алис) ягон комиссия ситонида нашуд.
Пас аз он ки Купер низ ҳисобро пур кард, тавозуни Алиса 4.972 МАВҶ шуд.

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Шумо метавонед фаҳмед, ки дар муҳаққиқи блок дар ҷадвали маълумот дар ҳамёни умумӣ чанд МАВҶ дорад.

Купер фикри худро дар бораи гузоштани маблағи 1 МАВҶ дар ҳамёни умумӣ тағйир дод ва тасмим гирифт, ки нисфи наздикиро бозпас гирад. Барои ин, ӯ бояд функсияи бозпасро даъват кунад.

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Аммо, мо боз хато кардем, зеро функсияи бозхонд параметрҳои комилан дигар ва имзои дигар дорад. Ҳангоми тарҳрезии шартномаҳои интеллектуалӣ дар RIDE4DAPPS шумо бояд ба ин нукта диққат диҳед

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Купер ҳоло дар тавозуни худ 2.48 МАВҶ дорад. Мутаносибан, 3 МАВҶ - 1 - 0.01, ва сипас + 0.5 - 0.01. Мувофиқи он, ҳар як занг барои пасандоз ва бозхондани он 0.01 WAVES арзиш дорад. Дар натиҷа, сабтҳо дар ҷадвали соҳибони dApps ба таври зерин тағир ёфтанд.

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Боб инчунин тасмим гирифт, ки аз ҳамёни муштарак каме пул бигирад, аммо хато кард ва кӯшиш кард, ки 1.5 МАВҷро гирад.

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Бо вуҷуди ин, шартномаи интеллектуалӣ барои ин вазъият чек дошт.

Xena як қаллоб аст, вай кӯшиш кард, ки аз ҳисоби умумӣ 1 МАВҷро гирад.

Омӯзиши навиштани шартномаҳои интеллектуалии Waves дар RIDE ва RIDE4DAPPS. Қисми 1 (ҳамёни бисёркорбар)

Ин ба вай хам муяссар нашуд.

Дар қисми оянда, мо масъалаҳои мураккаби марбут ба нокомилии ҳисоби Alice dApp-ро баррасӣ хоҳем кард.

Манбаъ: will.com

Илова Эзоҳ