ආයුබෝවන් හැමෝටම!
වඩාත් මෑතකදී, Waves Labs
අපි DAO නඩුව තෝරා ගත්තෙමු
අපි සරල උදාහරණයක් සමඟ ආරම්භ කළෙමු
අපි මෙම උදාහරණය දෙස බලමු, උපකල්පන පරීක්ෂා කර සමහර අමුතුකම් දෙස බලමු:
අපට ඇලිස් - dApp හිමිකරු ලබා ගනිමු
Boob සහ Cooper Alice හවුල්කරුවන්, Alice-BC DAO හි සම-නිර්මාතෘවරුන් වේ
නෙලී යනු මූල්ය පහසුකම් අවශ්ය ව්යාපාර හිමියෙකි
බැංකුව - ටෝකන බෙදාහරින බැංකුවකි
අදියර 1. ශේෂයන් ආරම්භ කිරීම
තරංග පරීක්ෂණ ජාලයේ ටෝකන ලබා ගැනීම සඳහා, ඔබ සම්බන්ධ කර ගත යුතුය
ඔබගේ ගිණුම් විස්තර විවෘත කිරීමෙන් ඔබට IDE හි ලිපිනය සොයාගත හැකිය.
අපි බැංකු 10 තරංග ඉස්මතු කරමු. එවිට අපි ඔවුන් බ්ලොක් සහ ගණුදෙණු බ්රව්සරය හරහා පැමිණියාදැයි පරීක්ෂා කරමු:
දැන් අපි ඉතිරි සහභාගිවන්නන්ට බැංකුවෙන් ටෝකන් බෙදාහරිමු. (සටහන්: තරංග ජාලයේ සියලුම ගනුදෙනු නොමිලේ නොවේ, එබැවින් සියලුම සහභාගිවන්නන් ගනුදෙනු කිරීමට අවම ධනාත්මක ශේෂයක් අවශ්ය වේ).
1 තරංග = ඒකක 100000000 (තරංග), ප්රමාණ නිඛිල පමණක් විය හැකි බැවින්
0.01 WAVES (ගනුදෙනු ගාස්තු) = 1000000
බැංකුව -> [3 තරංග] -> ඇලිස්, TransferTransaction හරහා (වර්ගය: 4).
ගනුදෙනු අත්සන් කර ඇති env.SEED අපගේ බැංකුවට ගැළපෙන බව අපි පරීක්ෂා කරමු:

ඔබට ගැළපෙන බීජ වාක්ය ඛණ්ඩයක් නොමැති නම්, ගිණුම් පටිත්තෙහි එයට මාරු වී නැවත පරීක්ෂා කරන්න.
මෙයින් පසු, අපි 3 WAVES ඇලිස් මාරු කිරීම සඳහා ගනුදෙනුවක් නිර්මාණය, නිවේදනය සහ අත්සන් කරන්නෙමු.
env.accounts විචල්යය හරහා ඔබට ඇලිස්ගේ දත්ත ද සොයාගත හැකිය. අංකනය 0 සිට ආරම්භ වේ, එබැවින් ඇලිස් යනු env.accounts[1].
broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))
ප්රති result ලය බ්රව්සරයේ ද නිරීක්ෂණය කළ හැකිය, ක්රියාත්මක වූ වහාම එයට සබැඳියක් අප වෙත ආපසු එවනු ලැබේ
අපි ඇලිස්ගේ ශේෂය තරංග 3 කින් නැවත පිරවීමට වග බලා ගන්නෙමු, සහ බැංකු ශේෂය 10 - 3 - 0.01 = 0.699 ලෙස පවතී.
අපි Boob සහ Cooper 3 WAVES බැගින් ද, Neli, Xena සහ Mark 0.2 WAVES බැගින් ද ඒ ආකාරයෙන්ම යවමු.
(සටහන්: අපි එක් අක්ෂර දෝෂයක් සිදු කර නෙලි 0.02 තරංග එව්වා. ප්රවේශම් වන්න!)
broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))
සියලුම සහභාගිවන්නන්ගේ ශේෂයන් නැවත පිරවීමෙන් පසු, අපි දකින්නේ:
අදියර 2. dApp ගිණුමක් සාදන්න
විමධ්යගත යෙදුමේ නිර්මාතෘ සහ හිමිකරු ඇලිස් බව අපි එකඟ විය.
ගිණුම් වෙත ගොස්, එය SEED ලෙස සකසා, env.SEED ඇලිස්ට ගැලපේදැයි පරීක්ෂා කරන්න.
ඇලිස්ගේ ගිණුමේ හැකි සරලම ස්ක්රිප්ට් (කොන්ත්රාත්තුව) ස්ථාපනය කිරීමට උත්සාහ කරමු.
Waves හි ඇති Smart contacts යනු යම් යම් කොන්දේසි යටතේ සිදු වන ඕනෑම ආකාරයක පිටතට යන ගනුදෙනුවක් තහනම් හෝ ඉඩ දෙන පුරෝකතන වේ. මෙම අවස්ථාවෙහිදී, මෙම තත්ත්වය සැමවිටම පවතී. කොන්ත්රාත් කේතය සත්ය වේ. ඇමතුම් යෙදවීම ().
SetScript ගනුදෙනුවකට ගාස්තුව 1400000/100000000 = 0.014 WAVES. ඇලිස්ගේ ශේෂයේ තරංග 2.986ක් ඉතිරිව ඇත.
විස්තර කර ඇති ඇලිස් ගිණුමේ වඩාත් සංකීර්ණ ස්මාර්ට් කොන්ත්රාත් තර්කනය ස්ථාපනය කිරීමට දැන් උත්සාහ කරමු
Ride4Dapps දැන් නව විවරණ වර්ග 2ක් ඇතුළත් වේ:
- @Callable(i) — පරාමිතියක් ලෙස ගනී i, ගනුදෙනුව හැඳින්වූ/අත්සන් කළ ගිණුම පිළිබඳ දත්ත. dApp ගිණුමේ තත්වය වෙනස් කිරීම තීරණය කරන මෙම කාර්යයේ ප්රතිඵලය වේ. වෙනත් ගිණුම්වලට මෙම විවරණ සමඟ ගනුදෙනු නිර්මාණය කිරීමට සහ කාර්යයන් ක්රියාත්මක කිරීමට සහ dApp ගිණුමේ තත්ත්වය වෙනස් කිරීමට හැකිය.
- @Verifier(tx) - ගනුදෙනු tx පරාමිතිය සමඟ ගනුදෙනු සත්යාපනය කරන්න. RIDE වෙතින් පුරෝකථන තර්කයට අනුරූප වේ. dApp ගිණුමේ ස්මාර්ට් කොන්ත්රාත්තුවේ තර්කනයට තවදුරටත් වෙනස් කිරීමට ඔබට ඉඩ දීම හෝ තහනම් කිරීම මෙම ප්රකාශනය තුළ වේ.
අපි කරමු dApp සියලුම සහභාගිවන්නන් සඳහා පොදු මුදල් පසුම්බියක් ලෙස ගිණුම.
ඔබගේ ගිණුමේ දැනට ක්රියාත්මක වන්නේ කුමන කොන්ත්රාත්තුවක්ද යන්න පරීක්ෂා කිරීමට, ඔබට බ්ලොක් ගවේෂකයේ ඇති ස්මාර්ට් කොන්ත්රාත්තුවේ මූලික 64 කේතය පිටපත් කර එය විසංයෝජනය භාවිතයෙන් හඳුනා ගත හැකිය (
ස්මාර්ට් කොන්ත්රාත්තුවේ තර්කනය අප අපේක්ෂා කරන දෙයට ගැළපෙන බවට අපි සහතික වෙමු.
ඇලිස්ගේ ශේෂයේ තරංග 2.972ක් ඉතිරිව ඇත.
මෙම dApp මගින් එක් එක් සහභාගිවන්නන් යාන්ත්රණයක් හරහා පොදු අරමුදලට කොපමණ දායකත්වයක් ලබා දෙනවාද යන්න නිරීක්ෂණය කරයි දත්ත ගනුදෙනු - DataEntry (වත්මන් කී, නව මුදල), currentKey යනු තැන්පතු කාර්යය හඳුන්වන ගිණුම වන අතර, newAmount යනු නැවත පිරවූ ශේෂයේ අගයයි.
Boob සහ Cooper ඔවුන්ගේ තැන්පතු dApp ගිණුමට තරංග 1කින් සිදු කරයි.
අපි වැරැද්දක් කරනවා, ගනුදෙනුව සිදු නොවේ. අපි බොබ් වෙනුවෙන් ගනුදෙනුවක් කරන බව අපට ඒත්තු ගියත්, අපි දර්ශකයේ වැරැද්දක් කර ස්මාර්ට් කොන්ත්රාත්තුවක් නොමැති බැංකු ගිණුමක් පෙන්වා දුන්නෙමු. මෙහි වැදගත් කරුණක් සඳහන් කිරීම වටී - ගනුදෙනු ආරම්භ කිරීමට අසාර්ථක උත්සාහයන් සඳහා ගාස්තුවක් ඇත ඉවත් කළ නොහැක! ඇලිස්ගේ ශේෂයේ තරංග 2.972ක් ඉතිරිව ඇත. බොබ් සතුව තරංග 3 ක් ඇත.
බොබ් dApp ගිණුමට WAVES 1ක් යැව්වා.
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
බොබ්ට තරංග 1.99 ක් ඉතිරිව ඇත. එනම් බොබ් 0.01 WAVES කොමිස් මුදලක් ගෙවා ඇත
ඇලිස්ගේ ශේෂය මත තරංග 2.972 ක් තිබුණි, දැන් එය 3.972 කි. ඇලිස් ගිණුමේ ගනුදෙනුවක් ද ලියාපදිංචි කර ඇත, නමුත් dApp ගිණුමෙන් (ඇලිස්) කොමිස් මුදලක් අය නොකෙරේ.
කූපර් ගිණුම නැවත පිරවීමෙන් පසුව, ඇලිස්ගේ ශේෂය 4.972 තරංග බවට පත් විය.
දත්ත පටිත්තෙහි බ්ලොක් එක්ස්ප්ලෝරර් හි පොදු මුදල් පසුම්බියේ WAVES කීයක් අයිති කාටදැයි ඔබට සොයාගත හැකිය.
කූපර් සාමාන්ය මුදල් පසුම්බියට තරංග 1 ක ප්රමාණය තැබීම ගැන ඔහුගේ අදහස වෙනස් කර ඇති අතර සම්බන්ධතාවයෙන් අඩක් ඉවත් කර ගැනීමට තීරණය කළේය. මෙය සිදු කිරීම සඳහා, ඔහු ආපසු ගැනීමේ කාර්යය ඇමතිය යුතුය.
කෙසේ වෙතත්, ආපසු ගැනීමේ ශ්රිතයට සම්පූර්ණයෙන්ම වෙනස් පරාමිති සහ වෙනස් අත්සනක් ඇති බැවින් අපට නැවතත් වැරදී ඇත. ඔබ RIDE4DAPPS හි ස්මාර්ට් කොන්ත්රාත්තු සැලසුම් කරන විට ඔබ මෙම කරුණ කෙරෙහි අවධානය යොමු කළ යුතුය
Cooper දැන් එහි ශේෂ පත්රයේ තරංග 2.48ක් ඇත. ඒ අනුව, 3 තරංග - 1 - 0.01, පසුව + 0.5 - 0.01. ඒ අනුව, තැන්පත් කිරීමට සහ ආපසු ගැනීමට සෑම ඇමතුමකටම තරංග 0.01ක් වැය වේ. එහි ප්රතිඵලයක් වශයෙන්, dApps හිමිකරුවන්ගේ වගුවේ ඇතුළත් කිරීම් පහත පරිදි වෙනස් විය.
බොබ් ද බෙදාගත් පසුම්බියෙන් මුදල් ටිකක් ලබා ගැනීමට තීරණය කළ නමුත් වැරැද්දක් කර WAVES 1.5 ක් ආපසු ගැනීමට උත්සාහ කළේය.
කෙසේ වෙතත්, ස්මාර්ට් කොන්ත්රාත්තුවේ මෙම තත්ත්වය සඳහා චෙක්පතක් තිබුණි.
Xena වංචාකාරයෙක්, ඇය මුළු ගිණුමෙන් WAVES 1 ක් ලබා ගැනීමට උත්සාහ කළාය.
එය ඇයටද සාර්ථක වූයේ නැත.
මීළඟ කොටසින් අපි Alice dApp ගිණුමේ අසම්පූර්ණකම සම්බන්ධ වඩාත් සංකීර්ණ ගැටළු දෙස බලමු.
මූලාශ්රය: www.habr.com