በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ሁሉም ሰው ሰላም!

በጣም በቅርብ ጊዜ, Waves Labs ይፋ ተደርጓል ለRIDE ስማርት ኮንትራት ቋንቋ ማራዘሚያ ለRide4Dapps ያልተማከለ አፕሊኬሽኖች ለሙከራ አውታር ለመልቀቅ ለወሰኑ ገንቢዎች ውድድር!

የ DAO ጉዳይን የመረጥነው ምክኒያት ነው። ቬንቱሪ dApp ከማህበራዊ ተግባራት ጋር ለመስራት አቅዷል፡ ድምጽ መስጠት፣ ገንዘብ ማሰባሰብ፣ የእምነት አስተዳደር፣ ወዘተ.
በቀላል ምሳሌ ጀመርን። የጥያቄ እና መልስ ክፍለ-ጊዜዎች እና ውስጥ IDE IDE - ምሳሌ ከ ጋር የጋራ ቦርሳ.

ይህንን ምሳሌ እንመርምር፣ መላምቶችን እንፈትሽ እና አንዳንድ ያልተለመዱ ነገሮችን እናስብ፡

አሊስ - dApp ባለቤት ይኑረን
ቦብ እና ኩፐር የአሊስ-ቢሲ DAO ተባባሪ መስራቾች የአሊስ አጋሮች ናቸው።
ኔሊ የገንዘብ ድጋፍ የሚያስፈልገው የንግድ ባለቤት ነው።
ባንክ - ቶከኖች የሚያሰራጭ ባንክ

ደረጃ 1. ሚዛኖችን መጀመር

በሞገዶች የሙከራ አውታር ውስጥ ቶከኖችን ለመቀበል, ማነጋገር ያስፈልግዎታል የውሃ መውጫ እና ቶከኖቹን የሚልኩበትን አድራሻ ይግለጹ.
የመለያ ዝርዝሮችን በመግለጽ አድራሻው በ IDE ውስጥ ሊገኝ ይችላል.
ባንክ 10 WAVES ን ይምረጡ። በብሎክ እና ግብይት አሳሽ በኩል እንደመጡ ካረጋገጥን በኋላ፡- ገምጋሚ

አሁን ቶከኖች ከባንክ ለተቀሩት ተሳታፊዎች እናሰራጭ። (ማስታወሻዎች፡በሞገዶች አውታረመረብ ላይ ያሉ ሁሉም ግብይቶች ነፃ አይደሉም፣ስለዚህ ግብይቶችን ለማድረግ ለሁሉም ተሳታፊዎች ቢያንስ አዎንታዊ ሚዛን ያስፈልጋል)።

1 WAVES = 100000000 ዩኒት (ሞገድ) መጠን ኢንቲጀር ብቻ ሊሆን ስለሚችል
0.01 WAVES (የግብይት ክፍያ) = 1000000

ባንክ -> [3 WAVES] -> አሊስ፣ በTransferTransaction (ዓይነት፡ 4)።

ግብይቶች የተፈረሙበት env.SEED ከባንካችን ጋር እንደሚዛመድ እናረጋግጣለን።
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

የሚዛመዱ የዘር ሀረጎች ከሌልዎት፣ በቀላሉ በመለያዎች ትር ውስጥ ወደ እሱ ይቀይሩ እና እንደገና ያረጋግጡ።
ከዚያ በኋላ በ 3 WAVES Alice ዝውውር ላይ ግብይት እንፈጥራለን፣ እናሳውቃለን።
እንዲሁም የአሊስን ውሂብ በ env.accounts ተለዋዋጭ በኩል ማግኘት ይችላሉ። ቁጥር መስጠት የሚጀምረው ከ0 ነው፣ ስለዚህ አሊስ env.accounts ነው[1]።
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

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

ውጤቱም በአሳሹ ውስጥ ሊታይ ይችላል, ከእሱ ጋር ያለው አገናኝ ከተገደለ በኋላ ወዲያውኑ ወደ እኛ ይመለሳል ግብይቶች.

የአሊስ ቀሪ ሂሳብ በ 3 WAVES መሞላቱን እናረጋግጣለን እና 10 - 3 - 0.01 = 0.699 በባንኩ ቀሪ ሂሳብ ላይ ይቀራሉ።
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ቡብ እና ኩፐር በ 3 WAVES, እና Neli, Xena እና Mark በ 0.2 WAVES በተመሳሳይ መንገድ እንልካለን.
(ማስታወሻ፡ የአንድ ቁምፊ ስህተት ሰርተናል እና ኔሊ 0.02 WAVES ልከናል። ተጠንቀቅ!)

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

የሁሉንም ተሳታፊዎች ሚዛን ከሞላ በኋላ፣ እናያለን፡-
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ደረጃ 2. የ dApp መለያ ይፍጠሩ

አሊስ ያልተማከለ መተግበሪያ ፈጣሪ እና ባለቤት እንድትሆን ተስማምተናል።
በመለያዎች ውስጥ፣ ይቀጥሉ እና እንደ SEED ያቀናብሩ እና env.SEED ከአሊስ ጋር የሚዛመድ መሆኑን ያረጋግጡ።

በአሊስ መለያ ላይ በጣም ቀላል የሆነውን ስክሪፕት (ኮንትራት) ለመጫን እንሞክር።
በ Waves ውስጥ ያሉ ስማርት እውቂያዎች አንዳንድ የወጪ ግብይቶችን በተወሰኑ ሁኔታዎች ውስጥ የሚከለክሉ ወይም የሚፈቅዱ ተንታኞች ናቸው። በዚህ ሁኔታ, ይህ ሁኔታ ሁልጊዜ ነው. የኮንትራት ኮድ እውነት ነው። ማሰማራት() ብለን እንጠራዋለን።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ክፍያ በአንድ ስብስብ ስክሪፕት ግብይት 1400000/100000000 = 0.014 WAVES። አሊስ ቀሪዋ ላይ 2.986 WAVES ቀርታለች።

አሁን የበለጠ ውስብስብ የሆነ ዘመናዊ የኮንትራት ሎጂክን በአሊስ መለያ ላይ ለመጫን እንሞክር፣ በተገለጸው። ለምሳሌ

Ride4Dapps አሁን 2 አዳዲስ የማብራሪያ ዓይነቶችን ያካትታል፡-

  1. @የሚባል(i) - እንደ ልኬት i ይወስዳል፣ ስለ የትኛው መለያ ግብይቱን እንደተጠራ/ተፈረመ። በ dApp መለያ ሁኔታ ላይ ያለውን ለውጥ የሚወስነው የዚህ ተግባር ውጤት ነው። ሌሎች መለያዎች በዚህ ማብራሪያ ግብይቶችን መፍጠር እና ተግባራትን ማከናወን እና የ dApp መለያ ሁኔታን መለወጥ ይችላሉ።
  2. @ አረጋጋጭ(tx) - የግብይት አረጋጋጭ ከግብይት tx መለኪያ ጋር። ከRIDE ከተሳቢዎች አመክንዮ ጋር ይዛመዳል። በdApp መለያ ላይ በስማርት ኮንትራቶች አመክንዮ ላይ ተጨማሪ ለውጦችን መፍቀድ ወይም መከልከል የምትችለው በዚህ አገላለጽ ነው።

እናድርግ dApp ለሁሉም ተሳታፊዎች እንደ አንድ የተለመደ የኪስ ቦርሳ መለያ።
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

የትኛው ውል በአሁኑ ጊዜ በሂሳቡ ላይ እንደሚሰራ ለማረጋገጥ በብሎክ አሳሽ ውስጥ ያለውን የስማርት ኮንትራት ቤዝ64 ኮድ መቅዳት እና በዲኮፒየር በኩል መለየት ይችላሉ (ለምሳሌ)
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

የስማርት ኮንትራቱ አመክንዮ ከምንጠብቀው ጋር የሚስማማ መሆኑን እናረጋግጣለን።
አሊስ ቀሪዋ ላይ 2.972 WAVES ቀርታለች።

ይህ dApp እያንዳንዱ ተሳታፊ ለጠቅላላ ፈንድ በስልቱ ምን ያህል እንደሚያዋጣ ይከታተላል የውሂብ ግብይት - DataEntry (የአሁኑ ቁልፍ ፣ አዲስ መጠን), currentKey የተቀማጭ ተግባሩን የሚጠራው መለያ ሲሆን, እና newAmount የተጠናቀቀው ቀሪ ሂሳብ ዋጋ ነው.

ቡብ እና ኩፐር 1 WAVES ወደ dApp መለያ አስቀምጠዋል።
በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ስህተት እንሰራለን እና ግብይቱ አያልፍም. እኛ ቦብ ወክለው ግብይት እንደምናደርግ እርግጠኛ ብንሆንም በመረጃ ጠቋሚው ላይ ስህተት ሰርተን ብልጥ ውል የሌለው የባንክ አካውንት አመልክተናል። እዚህ አንድ አስፈላጊ ነጥብ መጥቀስ ተገቢ ነው - ግብይቶችን ለመጀመር ያልተሳኩ ሙከራዎች, ኮሚሽኑ አልተወገደም! አሊስ ቀሪዋ ላይ 2.972 WAVES ቀርታለች። ቦብ 3 WAVES አለው።

ቦብ 1 WAVES ወደ dApp መለያ ልኳል።

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

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ቦብ 1.99 WAVES ይቀራል። ማለትም ቦብ 0.01 WAVES ኮሚሽን ከፍሏል።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

አሊስ ሚዛኗ ላይ 2.972 WAVES ነበራት፣ 3.972 ሆነ። አንድ ግብይት በአሊስ መለያ ላይም ተመዝግቧል፣ ነገር ግን ከdApp መለያ (አሊስ) ምንም አይነት ኮሚሽን አልተከፈለም።
ኩፐር ሂሳቡን ከሞላ በኋላ፣ አሊስ በሂሳቧ ላይ 4.972 WAVES ነበራት።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

በመረጃ ትሩ ውስጥ ባለው የማገጃ አሳሽ ውስጥ በአጠቃላይ የኪስ ቦርሳ ውስጥ ስንት WAVES ባለቤት ማን እንደሆነ ማወቅ ይችላሉ።

ኩፐር የ 1 WAVES መጠን በአጠቃላይ የኪስ ቦርሳ ላይ ለመተው ሀሳቡን ቀይሮ ግማሹን ግማሹን ለማስወጣት ወሰነ። ይህንን ለማድረግ የማውጣት ተግባር መደወል አለበት።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ሆኖም ግን, እንደገና ስህተት ሰርተናል, ምክንያቱም የማውጣት ተግባር ሙሉ ለሙሉ የተለያዩ መለኪያዎች, የተለየ ፊርማ አለው. በ RIDE4DAPPS ላይ ብልጥ ኮንትራቶችን ሲነድፉ, ለዚህ ነጥብ ትኩረት መስጠት አለብዎት

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ኩፐር በሒሳብ ወረቀቱ ላይ 2.48 WAVES አለው። በቅደም ተከተል 3 WAVES - 1 - 0.01, እና ከዚያ + 0.5 - 0.01. በዚህ መሠረት, እያንዳንዱ ጥሪ ለማስገባት እና ለማውጣት 0.01 WAVES ያስከፍላል. በውጤቱም፣ በ dApps ባለቤቶች ሠንጠረዥ ውስጥ ያሉት ግቤቶች እንደሚከተለው ተለውጠዋል።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

በተጨማሪም ቦብ ከአጠቃላይ የኪስ ቦርሳ የተወሰነ ገንዘብ ለማውጣት ወሰነ, ነገር ግን ተሳስቷል እና 1.5 WAVES ለማውጣት ሞክሯል.

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

ነገር ግን, በዘመናዊው ኮንትራት ውስጥ እንዲህ ላለው ሁኔታ ቼክ ነበር.

Xena ከአጠቃላይ መለያ 1 WAVES ለማውጣት የሞከረ አጭበርባሪ ነው።

በRIDE እና RIDE4DAPPS ላይ Waves smart contracts እንዴት እንደሚፃፍ መማር። ክፍል 1 (ባለብዙ ተጠቃሚ ቦርሳ)

እሷም አልተሳካላትም።

በሚቀጥለው ክፍል ከአሊስ dApp መለያ አለፍጽምና ጋር የተያያዙ ይበልጥ ውስብስብ ጉዳዮችን እንመለከታለን።

ምንጭ: hab.com

አስተያየት ያክሉ