хүн бүрт Сайн байна уу!
Сүүлийн үед Waves Labs
Учир нь бид DAO хэргийг сонгосон
Бид энгийн жишээгээр эхэлсэн
Энэ жишээг харцгаая, таамаглалыг шалгаж, зарим хачирхалтай зүйлсийг харцгаая.
Алис - dApp эзэмшигчтэй болцгооё
Boob, Cooper нар бол Алиса-BC DAO-ийн үүсгэн байгуулагчид болох Алис түншүүд юм
Нели бол санхүүжилт хэрэгтэй бизнес эрхлэгч юм
Банк - жетон түгээх банк
Үе шат 1. Үлдэгдлийг эхлүүлэх
Долгионы тестийн сүлжээнд жетон хүлээн авахын тулд та холбоо барих хэрэгтэй
Та өөрийн дансны дэлгэрэнгүй мэдээллийг нээснээр IDE дахь хаягийг олох боломжтой.
Бид Банкны 10 давалгааг онцолж байна. Дараа нь бид блок болон гүйлгээний хөтөчөөр дамжуулан ирсэн эсэхийг шалгана.
Одоо бусад оролцогчдод банкнаас жетон тараацгаая. (Тэмдэглэл: Waves сүлжээний бүх гүйлгээ үнэ төлбөргүй биш тул бүх оролцогчид гүйлгээ хийхэд хамгийн бага эерэг үлдэгдэл шаардлагатай).
1 ДОЛГОО = 100000000 нэгж (долгион), учир нь хэмжээ нь зөвхөн бүхэл тоо байж болно.
0.01 WAVES (Гүйлгээний хураамж) = 1000000
Bank -> [3 WAVES] -> Alice, TransferTransaction-ээр дамжуулан (Төрөл: 4).
Гүйлгээнд гарын үсэг зурсан env.SEED нь манай Банктай тохирч байгаа эсэхийг бид шалгаж байна.

Хэрэв танд тохирох үг хэллэг байхгүй бол Бүртгэл таб дээрээс түүн рүү шилжиж, дахин шалгана уу.
Үүний дараа бид 3 WAVES Алисыг шилжүүлэх гүйлгээг үүсгэж, зарлаж, гарын үсэг зурна.
Та мөн env.accounts хувьсагчаар дамжуулан Алисын өгөгдлийг олж мэдэх боломжтой. Дугаарлалт нь 0-ээс эхэлдэг тул Алис env.accounts[1] байна.
broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))
Үр дүнг хөтөч дээрээс харж болно, үүнтэй холбогдох холбоосыг гүйцэтгэсний дараа нэн даруй бидэнд буцааж өгөх болно
Бид Алисын үлдэгдэл 3 ДАЛГААН-аар нөхөгдөж, банкны үлдэгдэл 10 - 3 - 0.01 = 0.699 хэвээр байгаа эсэхийг шалгаарай.
Бид Boob, Cooper нар тус бүрдээ 3 WAVES, Neli, Xena, Mark нар тус бүр 0.2 WAVES илгээдэг.
(Жич: Бид нэг тэмдэгтийн алдаа гаргаж, Neli 0.02 WAVES илгээсэн. Болгоомжтой байгаарай!)
broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))
Бүх оролцогчдын үлдэгдлийг дүүргэсний дараа бид дараахь зүйлийг харж байна.
2-р шат. dApp бүртгэл үүсгэнэ үү
Бид Алисыг төвлөрсөн бус програмыг бүтээгч, эзэмшигч байхаар тохиролцсон.
Accounts руу очоод үүнийг SEED болгож тохируулаад env.SEED нь Алистай таарч байгаа эсэхийг шалгаарай.
Алисын дансанд хамгийн энгийн скрипт (гэрээ) суулгахыг хичээцгээе.
Waves дахь ухаалаг контактууд нь тодорхой нөхцөлд ямар ч төрлийн гадагшаа гүйлгээ хийхийг хориглодог эсвэл зөвшөөрдөг предикатууд юм. Энэ тохиолдолд энэ нөхцөл байдал ҮРГЭЛЖ байна. Гэрээний код үнэн. Дуудлага deploy().
setScript гүйлгээний хураамж 1400000/100000000 = 0.014 WAVES. Алис өөрийн тэнцвэрт байдалд 2.986 ДАЛГААН үлдсэн байна.
-д тайлбарласан Алис дансанд илүү нарийн төвөгтэй ухаалаг гэрээний логикийг суулгахыг хичээцгээе
Ride4Dapps одоо 2 шинэ тэмдэглэгээний төрлийг оруулсан байна:
- @Дуудагдах боломжтой(i) — гүйлгээнд аль данс руу залгасан/гарын үсэг зурсан талаарх мэдээллийг i параметр болгон авна. Энэ нь dApp дансны төлөвийн өөрчлөлтийг тодорхойлдог энэ функцийн үр дүн юм. Бусад акаунтууд энэ тэмдэглэгээг ашиглан гүйлгээ үүсгэж, функцуудыг гүйцэтгэж, dApp дансны төлөвийг өөрчлөх боломжтой.
- @Verifier(tx) — Гүйлгээний tx параметртэй гүйлгээ шалгагч. RIDE-ийн предикатын логиктой тохирч байна. Энэ илэрхийлэлд та dApp бүртгэл дээрх ухаалаг гэрээний логикт нэмэлт өөрчлөлт оруулахыг зөвшөөрөх эсвэл хориглох боломжтой.
Хийцгээе dApp бүх оролцогчдын нийтлэг түрийвч болгон данс.
Таны акаунт дээр аль гэрээ идэвхтэй байгааг шалгахын тулд та ухаалаг гэрээний base64 кодыг блок судлаач дээр хуулж, хөрвүүлэгч ашиглан таних боломжтой.
Ухаалаг гэрээний логик нь бидний хүлээж буй зүйлтэй тохирч байгаа эсэхийг бид шалгадаг.
Алис өөрийн тэнцвэрт байдалд 2.972 ДАЛГААН үлдсэн байна.
Энэхүү dApp нь оролцогч бүр нэгдсэн санд хэр их хувь нэмэр оруулж байгааг механизмаар дамжуулан бүртгэдэг өгөгдлийн гүйлгээ — DataEntry (одоогийн түлхүүр, шинэ дүн), энд currentKey нь хадгаламжийн функцийг дууддаг данс бөгөөд newAmount нь нөхөн төлсөн үлдэгдлийн утга юм.
Boob, Cooper нар 1 WAVES-ээр dApp дансанд мөнгөө хийдэг.
Бид алдаа гаргаж, гүйлгээ хийгдэхгүй. Бид Бобын нэрийн өмнөөс гүйлгээ хийж байгаа гэдэгт итгэлтэй байсан ч индекст алдаа гаргаж, ухаалаг гэрээгүй банкны дансыг зааж өгсөн. Энд нэг чухал зүйлийг тэмдэглэх нь зүйтэй - гүйлгээг эхлүүлэх оролдлого амжилтгүй болсны төлбөр төлдөг. устгах боломжгүй! Алис өөрийн тэнцвэрт байдалд 2.972 ДАЛГААН үлдсэн байна. Боб гурван долгионтой.
Боб dApp бүртгэл рүү 1 WAVES илгээсэн.
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
Бобд 1.99 WAVES үлдсэн. Өөрөөр хэлбэл, Боб 0.01 WAVES комисс төлсөн
Алисын балансад 2.972 ДАЛГААН байсан бол одоо 3.972 болжээ. Мөн Алисын дансанд гүйлгээ бүртгэгдсэн боловч dApp данснаас (Алис) ямар ч шимтгэл аваагүй.
Купер мөн дансаа нөхсөний дараа Алисын үлдэгдэл 4.972 WAVES болсон.
Өгөгдлийн таб дахь блок хайгч дахь нийтлэг түрийвчэнд хэдэн ДАЛГААНЫ эзэмшдэгийг та мэдэх боломжтой.
Купер ерөнхий хэтэвчиндээ 1 WAVES-ийн хэмжээг үлдээх тухай бодлоо өөрчилж, ойр дотныхоо талыг эргүүлэн татахаар шийджээ. Үүнийг хийхийн тулд тэрээр буцаан татах функцийг дуудах ёстой.
Гэсэн хэдий ч буцаан татах функц нь огт өөр параметртэй, өөр гарын үсэгтэй тул бид дахин алдаа гаргасан. Та RIDE4DAPPS дээр ухаалаг гэрээ байгуулахдаа энэ зүйлд анхаарлаа хандуулах хэрэгтэй
Cooper одоо өөрийн балансад 2.48 WAVES-тэй байна. Үүний дагуу 3 WAVES - 1 - 0.01, дараа нь + 0.5 - 0.01 байна. Үүний дагуу мөнгө байршуулах, татах дуудлага бүр 0.01 WAVES-ийн үнэтэй. Үүний үр дүнд dApps эзэмшигчдийн хүснэгтийн оруулгууд дараах байдлаар өөрчлөгдсөн.
Боб мөн хуваалцсан түрийвчнээсээ мөнгө гаргахаар шийдсэн боловч алдаа гаргаж, 1.5 WAVES авахыг оролдсон.
Гэсэн хэдий ч ухаалаг гэрээ нь энэ нөхцөл байдлын шалгалттай байсан.
Xena бол луйварчин, тэр нийт данснаас 1 WAVES авахыг оролдсон.
Энэ нь түүний хувьд ч бүтсэнгүй.
Дараагийн хэсэгт бид Alice dApp дансны төгс бус байдалтай холбоотой илүү төвөгтэй асуудлуудыг авч үзэх болно.
Эх сурвалж: www.habr.com