RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ආයුබෝවන් හැමෝටම!

මෑතකදී, වේව්ස් ලැබ්ස් නිවේදනය කරන ලදි විමධ්‍යගත යෙදුම් සඳහා වන RIDE ස්මාර්ට් කොන්ත්‍රාත් භාෂා දිගුවේ පරීක්ෂණ ජාල නිකුතුවට සමගාමීව සංවර්ධක තරඟයක්, Ride4Dapps!

අපි DAO නඩුව තෝරා ගත්තේ මොකද වෙන්චුවරි සමාජ විශේෂාංග සහිත dApp එකක් සංවර්ධනය කිරීමට සැලසුම් කරයි: ඡන්දය ප්‍රකාශ කිරීම, අරමුදල් රැස් කිරීම, විශ්වාස කළමනාකරණය යනාදිය.
අපි සරල උදාහරණයකින් පටන් ගත්තා ප්‍රශ්නෝත්තර සැසි හා ඇතුළත පදින්න IDE - උදාහරණයක් ලෙස පොදු පසුම්බිය.

අපි මෙම උදාහරණය දෙස බලමු, උපකල්පන පරීක්ෂා කර, සමහර අමුතුකම් සලකා බලමු:

අපිට ඇලිස් - dApp හිමිකරු ඉන්නවා කියමු.
බූබ් සහ කූපර් යනු ඇලිස් හවුල්කරුවන් සහ ඇලිස්-බීසී DAO හි සම-නිර්මාතෘවරුන් වේ.
නෙලි යනු අරමුදල් අවශ්‍ය ව්‍යාපාර හිමිකරුවෙක්.
බැංකුව — ටෝකන් බෙදා හරින බැංකුවක්

පියවර 1. ශේෂයන් ආරම්භ කිරීම

Waves පරීක්ෂණ ජාලයේ ටෝකන ලබා ගැනීම සඳහා, ඔබ සම්බන්ධ කර ගත යුතුය ෆියුස් සහ ටෝකන යැවිය යුතු ලිපිනය සඳහන් කරන්න.
ගිණුම් විස්තර විවෘත කිරීමෙන් IDE එකේ ලිපිනය සොයාගත හැකිය.
අපි Bank 10 WAVES තෝරා ගනිමු. ඉන්පසු අපි ඒවා බ්ලොක් සහ ගනුදෙනු ගවේෂකය හරහා පැමිණි බව තහවුරු කරමු: විචාරක

දැන් අපි බැංකුවෙන් ලැබෙන ටෝකන් ඉතිරි සහභාගිවන්නන්ට බෙදා හරිමු. (සටහන්: Waves ජාලයේ සියලුම ගනුදෙනු නොමිලේ නොවේ, එබැවින් ගනුදෙනු සිදු කිරීමට සියලුම සහභාගිවන්නන්ට අවම ධනාත්මක ශේෂයක් අවශ්‍ය වේ.)

1 තරංග = ඒකක 100000000 (තරංග ආශ්‍රිත), මන්ද ප්‍රමාණ පූර්ණ සංඛ්‍යා පමණක් විය හැකි බැවිනි.
0.01 තරංග (ගනුදෙනු ගාස්තුව) = 1000000

බැංකුව -> [තරංග 3] -> ඇලිස්, හුවමාරු ගනුදෙනුව හරහා (වර්ගය: 4).

ගනුදෙනු අත්සන් කරන ලද env.SEED අපගේ බැංකුවට ගැලපෙන බව අපි පරීක්ෂා කරමු:
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ඔබට ගැලපෙන බීජ වාක්‍ය ඛණ්ඩයක් නොමැති නම්, ගිණුම් පටිත්තෙහි එයට මාරු වී නැවත පරීක්ෂා කරන්න.
මෙයින් පසු, අපි ඇලිස් වෙත WAVES 3ක් මාරු කිරීම සඳහා ගනුදෙනුවක් නිර්මාණය කර, නිවේදනය කර අත්සන් කරන්නෙමු.
ඔබට env.accounts විචල්‍යය හරහා ඇලිස්ගේ දත්ත සොයා ගත හැක. අංකනය 0 න් ආරම්භ වන බැවින් ඇලිස් යනු env.accounts[1] වේ.
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

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

ප්‍රතිඵලය බ්‍රවුසරයේ ද දැකිය හැකිය, ක්‍රියාත්මක කිරීමෙන් පසු එයට සබැඳියක් වහාම අපට ආපසු එවනු ලැබේ. ගනුදෙනු.

අපි ඇලිස්ගේ ශේෂය තරංග 3 කින් නැවත පුරවන බවටත්, බැංකු ශේෂය 10 - 3 - 0.01 = 0.699 වන බවටත් සහතික වෙමු.
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

අපි බූබ් සහ කූපර් 3 WAVES බැගින් යවන අතර, නෙලි, සෙනා සහ මාර්ක් 0.2 WAVES බැගින් එකම ආකාරයකින් යවමු.
(සටහන්: අපි එක චරිතයක වැරැද්දක් කළා, ඒ නිසා අපි Neli 0.02 WAVES යැව්වා. පරිස්සම් වෙන්න!)

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

සියලුම සහභාගිවන්නන්ගේ ශේෂයන් නැවත පිරවීමෙන් පසු, අපට පෙනෙන්නේ:
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

පියවර 2: dApp ගිණුමක් සාදන්න

විමධ්‍යගත යෙදුමේ නිර්මාතෘ සහ හිමිකරු ඇලිස් බව අපි එකඟ වුණා.
Accounts වල, SEED ලෙස ස්ථාපනය කිරීමට ගොස් env.SEED Alice ට ගැලපෙනවාද කියා පරීක්ෂා කරන්න.

ඇලිස්ගේ ගිණුමේ හැකි සරලම ස්ක්‍රිප්ට් (කොන්ත්‍රාත්තුව) ස්ථාපනය කිරීමට උත්සාහ කරමු.
Waves හි ස්මාර්ට් සම්බන්ධතා යනු යම් යම් කොන්දේසි යටතේ යම් ආකාරයක පිටතට යන ගනුදෙනුවක් සිදුවීම වළක්වන හෝ ඉඩ සලසන පුරෝකථන වේ. මෙම අවස්ථාවේදී, එම කොන්දේසිය සැමවිටම පවතී. කොන්ත්‍රාත් කේතය සත්‍ය වේ. අපි deploy() ලෙස හඳුන්වමු.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

setScript ගනුදෙනුව සඳහා ගාස්තුව 1400000/100000000 = 0.014 WAVES වේ. ඇලිස්ගේ ශේෂයේ WAVES 2.986 ක් ඉතිරිව ඇත.

දැන් අපි විස්තර කර ඇති පරිදි, ඇලිස්ගේ ගිණුමේ වඩාත් සංකීර්ණ ස්මාර්ට් කොන්ත්‍රාත් තර්කනය ස්ථාපනය කිරීමට උත්සාහ කරමු උදාහරණයක්

රයිඩ්4ඩැප්ස් දැන් නව විවරණ වර්ග 2ක් ඇතුළත් වේ:

  1. @කැඳවිය හැකි(i) — පරාමිතියක් ලෙස ගනු ලබන්නේ ගනුදෙනුව ඇමතූ/අත්සන් කළ ගිණුමයි. මෙම ශ්‍රිතයේ ප්‍රතිඵලය ගිණුමේ dApp තත්වයේ වෙනස තීරණය කරයි. අනෙකුත් ගිණුම්වලට මෙම විවරණයෙන් ගනුදෙනු නිර්මාණය කර කාර්යයන් ක්‍රියාත්මක කළ හැකි අතර, ගිණුමේ dApp තත්වය වෙනස් කළ හැකිය.
  2. @සත්‍යාපකය(tx) — tx ගනුදෙනු පරාමිතිය සහිත ගනුදෙනු සත්‍යාපකයක්. RIDE හි පුරෝකථන තර්කනයට අනුරූප වේ. dApp ගිණුමක ස්මාර්ට් කොන්ත්‍රාත් තර්කනයට තවදුරටත් වෙනස්කම් සක්‍රීය කිරීමට හෝ අක්‍රීය කිරීමට මෙම ප්‍රකාශනය භාවිතා කළ හැක.

අපි කරමු dApp සියලුම සහභාගිවන්නන් සඳහා පොදු මුදල් පසුම්බියක් ලෙස ගිණුම.
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ගිණුමක දැනට සක්‍රියව ඇත්තේ කුමන කොන්ත්‍රාත්තුව දැයි පරීක්ෂා කිරීමට, ඔබට බ්ලොක් එක්ස්ප්ලෝරර් හි ස්මාර්ට් කොන්ත්‍රාත්තුවේ base64 කේතය පිටපත් කර විසංයෝජනයක් භාවිතයෙන් එය හඳුනාගත හැකිය (උදාහරණයක් ලෙස)
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ස්මාර්ට් කොන්ත්‍රාත්තුවේ තර්කනය අප අපේක්ෂා කරන දේට ගැලපෙන බවට අපි සහතික වෙමු.
ඇලිස්ගේ ශේෂයේ තරංග 2.972 ක් ඉතිරිව ඇත.

මෙම dApp යාන්ත්‍රණයක් හරහා එක් එක් සහභාගිවන්නා පොදු අරමුදලට කොපමණ දායක වේද යන්න නිරීක්ෂණය කරයි. දත්ත ගනුදෙනුව — DataEntry(currentKey, newAmount), මෙහි currentKey යනු තැන්පතු ශ්‍රිතය කැඳවන ගිණුම වන අතර, newAmount යනු නැවත පිරවූ ශේෂයේ වටිනාකමයි.

බූබ් සහ කූපර් dApp ගිණුමට WAVE 1 බැගින් තැන්පත් කරති.
RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

අපි වැරැද්දක් කරන අතර ගනුදෙනුව අසාර්ථක වේ. මෙයට හේතුව, අපි බොබ් වෙනුවෙන් ගනුදෙනුව ක්‍රියාත්මක කරන බව සහතික කළද, අපි දර්ශකය වැරදි ලෙස ටයිප් කර ඇති අතර ස්මාර්ට් කොන්ත්‍රාත්තුවක් නොමැති බැංකු ගිණුමක් සඳහන් කර ඇත. මෙහිදී සටහන් කර ගැනීම වැදගත් වේ: ගනුදෙනු ආරම්භ කිරීමට අසාර්ථක උත්සාහයන් සඳහා ගාස්තුවක් ඇත. එය ඉවත් කළ නොහැක! ඇලිස්ගේ ශේෂයේ තරංග 2.972 ක් ඉතිරිව ඇත. බොබ්ට තරංග 3 ක් ඇත.

බොබ් dApp ගිණුමට WAVE 1ක් යැව්වා.

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

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

බොබ්ට WAVES 1.99ක් ඉතිරිව ඇත. ඒ කියන්නේ බොබ් ගාස්තු වශයෙන් WAVES 0.01ක් ගෙව්වා.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ඇලිස්ගේ ශේෂය තරංග 2.972 ක් වූ අතර දැන් එය 3.972 කි. ඇලිස්ගේ ගිණුමේ ගනුදෙනුවක් ද ලියාපදිංචි කරන ලද නමුත් dApp ගිණුමට (ඇලිස්) කිසිදු ගාස්තුවක් අය නොකෙරේ.
කූපර් ද ඇලිස්ගේ ගිණුමට මුදල් පුරවා ගත් පසු, ඇගේ ශේෂය තරංග 4.972 ක් විය.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

බ්ලොක් ගවේෂකයේ දත්ත පටිත්තෙන් බෙදාගත් මුදල් පසුම්බියේ කොපමණ WAVES ප්‍රමාණයක් හිමි දැයි ඔබට සොයා ගත හැක.

කූපර් හවුල් මුදල් පසුම්බියේ තරංග 1ක් ඉතිරි කිරීම පිළිබඳ ඔහුගේ අදහස වෙනස් කර ඔහුගේ සම්බන්ධතා වලින් අඩක් ආපසු ගැනීමට තීරණය කළේය. මෙය සිදු කිරීම සඳහා, ඔහු withdraw function එක ඇමතිය යුතුය.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

කෙසේ වෙතත්, අපි නැවතත් වැරදියට තේරුම් ගත්තා, withdraw function එකට සම්පූර්ණයෙන්ම වෙනස් පරාමිතීන් සහ වෙනස් අත්සනක් ඇති නිසා. RIDE4DAPPS මත ස්මාර්ට් කොන්ත්‍රාත්තු නිර්මාණය කිරීමේදී, ඔබ මෙම කරුණ කෙරෙහි අවධානය යොමු කළ යුතුය.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

කූපර්ගේ ශේෂය දැන් තරංග 2.48 ක් වේ. මෙය තරංග 3 ක් - 1 - 0.01 ක් ලෙසත්, පසුව + 0.5 - 0.01 ක් ලෙසත් පරිවර්තනය වේ. එහි ප්‍රතිඵලයක් ලෙස, එක් එක් තැන්පතු සහ ආපසු ගැනීමේ ඇමතුම් සඳහා තරංග 0.01 ක් වැය වේ. එහි ප්‍රතිඵලයක් ලෙස, dApp හිමිකරු වගු ඇතුළත් කිරීම් පහත පරිදි වෙනස් විය.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

බොබ් ද බෙදාගත් මුදල් පසුම්බියෙන් යම් මුදලක් ලබා ගැනීමට තීරණය කළ නමුත් වැරැද්දක් කර තරංග 1.5 ක් ලබා ගැනීමට උත්සාහ කළේය.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

කෙසේ වෙතත්, ස්මාර්ට් කොන්ත්‍රාත්තුවේ මෙම තත්ත්වය සඳහා චෙක්පතක් අඩංගු විය.

Xena යනු සාමාන්‍ය ගිණුමෙන් WAVES 1ක් ලබා ගැනීමට උත්සාහ කළ වංචාකරුවෙකි.

RIDE සහ RIDE4DAPPS මත Waves ස්මාර්ට් කොන්ත්‍රාත්තු ලිවීමට ඉගෙන ගැනීම. 1 කොටස (බහු-පරිශීලක මුදල් පසුම්බිය)

ඇයත් අසාර්ථක වුණා.

ඊළඟ කොටසේදී, අපි Alice dApp ගිණුමේ අසම්පූර්ණකම් සම්බන්ධ වඩාත් සංකීර්ණ ගැටළු දෙස බලමු.

මූලාශ්රය: www.habr.com

DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත අඩවි සඳහා විශ්වාසදායක සත්කාරකත්වය මිලදී ගන්න 🔥 DDoS ආරක්ෂාව, VPS VDS සේවාදායකයන් සහිත විශ්වාසදායක වෙබ් අඩවි සත්කාරකත්වය මිලදී ගන්න | ProHoster