په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

سلام هر!

په دې وروستیو کې، Waves Labs اعلان شو د پراختیا کونکو لپاره سیالي د ازموینې شبکې کې د غیر متمرکز غوښتنلیکونو Ride4Dapps لپاره د RIDE سمارټ قرارداد ژبې توسیع خوشې کولو ته وقف شوې!

موږ د DAO قضیه غوره کړه ځکه وینچری پالن لري چې د ټولنیزو دندو سره dApps ته وده ورکړي: رایه ورکول، تمویل راټولول، د باور مدیریت، او نور.
موږ د یو ساده مثال سره پیل کړ د پوښتنې او ځواب ناستې او په RIDE IDE - د مثال سره شریک بټوه.

راځئ چې دې مثال ته وګورو، فرضیې معاینه کړو او ځینې توپیرونه وګورو:

اجازه راکړئ چې ایلیس - dApp مالک ولرو
بوب او کوپر د الیس شریکان دي، د الیس-BC DAO شریک بنسټ ایښودونکي دي
نیلي د سوداګرۍ مالک دی چې تمویل ته اړتیا لري
بانک - یو بانک چې توکی توزیع کوي

مرحله 1. د بیلانس پیل کول

د دې لپاره چې د موجونو ټیسټ شبکه کې ټکنونه ترلاسه کړئ، تاسو اړتیا لرئ اړیکه ونیسئ د اوبو نل او هغه آدرس په ګوته کړئ کوم چې ټیکونه لیږل کیږي.
تاسو کولی شئ د خپل حساب توضیحاتو په خلاصولو سره په IDE کې پته ومومئ.
موږ بانک 10 څپې روښانه کوو. بیا موږ ګورو چې دوی د بلاک او لیږد براوزر له لارې راغلي: کتونکی

اوس راځئ چې د بانک څخه نورو ګډون کوونکو ته ټکنونه وویشو. (یادونه: د موجونو په شبکه کې ټولې راکړې ورکړې وړیا ندي، نو د ټولو ګډون کونکو لپاره د لیږد لپاره لږترلږه مثبت توازن اړین دی).

1 څپې = 100000000 واحدونه (wavelets)، ځکه چې مقدارونه یوازې بشپړ کیدی شي
0.01 WAVES (د راکړې ورکړې فیس) ​​= 1000000

بانک -> [3 څپې] -> ایلیس، د لیږد لیږد له لارې (ډول: 4).

موږ ګورو چې د env.SEED هغه معاملې چې له هغې څخه لاسلیک کیږي زموږ د بانک سره سمون لري:
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

که تاسو د تخمونو سره ورته والی نلرئ، یوازې د حسابونو په ټب کې یې بدل کړئ او بیا یې وګورئ.
له دې وروسته، موږ د 3 WAVES الیس د لیږد لپاره یو تړون جوړ، اعلان او لاسلیک کوو.
تاسو کولی شئ د الیس ډیټا د 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 څپې لیږو، او نیلي، زینا او مارک 0.2 څپې هر یو په ورته ډول لیږو.
(یادونه: موږ د یو کرکټر تېروتنه وکړه او نیلي 0.02 څپې یې واستولې. محتاط اوسئ!)

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

د ټولو ګډونوالو د توازن له ډکولو وروسته، موږ ګورو:
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

مرحله 2. د dApp حساب جوړ کړئ

موږ موافقه وکړه چې الیس به د غیر متمرکز غوښتنلیک جوړونکی او مالک وي.
حسابونو ته لاړ شئ، دا د SEED په توګه وټاکئ او وګورئ چې env.SEED د ایلیس سره سمون لري.

راځئ هڅه وکړو چې د الیس په حساب کې ترټولو ساده ممکن سکریپټ (قرارداد) نصب کړو.
په څپو کې سمارټ تماسونه هغه وړاندوینې دي چې د ځینې شرایطو لاندې د هر ډول بهر لیږد لیږد منع کوي یا اجازه ورکوي. په دې حالت کې، دا حالت تل دی. د تړون کوډ ریښتیا دی. د زنګ وهلو ().

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

د هر سیټ سکریپټ لیږد فیس 1400000/100000000 = 0.014 WAVES. الیس په خپل توازن کې 2.986 څپې لري.

راځئ چې اوس هڅه وکړو چې په الیس حساب کې ډیر پیچلي سمارټ قرارداد منطق نصب کړو، چې تشریح شوي مثال

Ride4Dapps اوس د 2 نوي تشریح ډولونه شامل دي:

  1. @د زنګ وهلو وړ(i) - د پیرامیټر i په توګه اخلي، د دې په اړه معلومات چې کوم حساب یې لیږد بللی / لاسلیک کړی. دا د دې فعالیت پایله ده چې د dApp حساب حالت کې بدلون ټاکي. نور حسابونه کولی شي لیږد رامینځته کړي او د دې تشریح سره دندې اجرا کړي او د dApp حساب حالت بدل کړي.
  2. @Verifier(tx) - د لیږد tx پیرامیټر سره د لیږد تصدیق کونکی. د RIDE څخه د وړاندوینې منطق سره مطابقت لري. دا په دې بیان کې دی چې تاسو کولی شئ د dApp حساب کې د سمارټ قراردادونو منطق کې نور بدلونونو ته اجازه ورکړئ یا منع کړئ.

راځئ چې وکړو dApp د ټولو ګډون کوونکو لپاره د یو عام بټوې په توګه حساب کړئ.
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

د دې لپاره چې وګورئ کوم قرارداد اوس مهال ستاسو په حساب کې فعال دی، تاسو کولی شئ د سمارټ قرارداد بیس 64 کوډ په بلاک اکسپلورر کې کاپي کړئ او د ډیکمپیلر په کارولو سره یې پیژنئ (د مثال په توګه)
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

موږ ډاډ ترلاسه کوو چې د سمارټ قرارداد منطق د هغه څه سره سمون لري چې موږ یې تمه کوو.
الیس په خپل توازن کې 2.972 څپې لري.

دا dApp د میکانیزم له لارې د هر ګډون کونکي په عمومي فنډ کې څومره مرسته کوي تعقیبوي د معلوماتو لیږد - د ډاټا داخله (اوسني کیلي، نوي رقم)، چیرې چې currentKey هغه حساب دی چې د زیرمې فعالیت ته زنګ وهي، او newAmount د بیا ډک شوي بیلانس ارزښت دی.

بوب او کوپر د dApp حساب ته د 1 WAVES سره خپلې زیرمې ورکوي.
په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

موږ خطا کوو او معامله نه کیږي. له هغه ځایه، سره له دې چې موږ باوري یو چې موږ د باب په استازیتوب معامله کوو، موږ په شاخص کې تېروتنه وکړه او یو بانکي حساب ته مو اشاره وکړه چې سمارټ قرارداد نلري. دلته د یو مهم ټکي په پام کې نیولو سره ارزښت لري - د لیږد پیل کولو لپاره د ناکامو هڅو لپاره فیس شتون لري لرې نه شي! الیس په خپل توازن کې 2.972 څپې لري. باب 3 څپې لري.

باب د dApp حساب ته 1 WAVES لیږلي.

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

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

باب 1.99 څپې پاتې دي. دا دی، باب د 0.01 WAVES کمیشن ورکړ

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

الیس په خپل توازن کې 2.972 څپې درلودې، اوس دا 3.972 دی. د الیس اکاونټ کې لیږد هم ثبت شوی و، مګر د dApp حساب (ایلس) څخه هیڅ کمیسون نه و اخیستل شوی.
وروسته له هغه چې کوپر حساب هم ډک کړ، د الیس بیلانس 4.972 WAVES شو.

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

تاسو کولی شئ ومومئ چې څوک د ډیټا ټب کې د بلاک اکسپلورر کې په عام المارۍ کې څومره WAVES لري.

کوپر په عمومي بټوه کې د 1 WAVES مقدار پریښودو په اړه خپل فکر بدل کړ او پریکړه یې وکړه چې د تړاو نیمایي بیرته واخلي. د دې کولو لپاره، هغه باید د وتلو فعالیت ته زنګ ووهي.

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

په هرصورت، موږ بیا غلط وو، ځکه چې د وتلو فعالیت په بشپړه توګه مختلف پیرامیټونه او یو بل لاسلیک لري. کله چې تاسو په RIDE4DAPPS کې سمارټ قراردادونه ډیزاین کړئ تاسو باید دې ټکي ته پام وکړئ

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

کوپر اوس په خپل بیلانس شیټ کې 2.48 WAVES لري. په دې اساس، 3 څپې - 1 - 0.01، او بیا + 0.5 - 0.01. په دې اساس، د زیرمه کولو او وتلو لپاره هر کال 0.01 WAVES لګښت لري. د پایلې په توګه، د dApps مالکینو جدول کې ننوتل په لاندې ډول بدل شوي.

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

باب هم پریکړه وکړه چې د شریک بټو څخه یو څه پیسې وباسي، مګر غلطي یې وکړه او هڅه یې وکړه چې د 1.5 WAVES وباسي.

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

په هرصورت، سمارټ قرارداد د دې وضعیت لپاره چک درلود.

Xena یو سکیمر دی، هغې هڅه وکړه چې له ټول حساب څخه 1 WAVES وباسي.

په RIDE او RIDE4DAPPS کې د Waves سمارټ قراردادونو لیکلو زده کړه. برخه 1 (د څو کاروونکو بټوه)

دا د هغې لپاره هم کار نه کوي.

په راتلونکې برخه کې، موږ به د الیس dApp حساب نیمګړتیا پورې اړوند نور پیچلي مسلې وګورو.

سرچینه: www.habr.com

Add a comment