RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

хүн бүрт Сайн байна уу!

Сүүлийн үед Waves Labs зарласан Ride4Dapps төвлөрсөн бус програмуудад зориулсан RIDE ухаалаг гэрээний хэлний өргөтгөлийг туршилтын сүлжээнд гаргахад зориулагдсан хөгжүүлэгчдэд зориулсан өрсөлдөөн!

Учир нь бид DAO хэргийг сонгосон Вентуар санал өгөх, хөрөнгө босгох, итгэлцлийн менежмент гэх мэт нийгмийн чиг үүрэг бүхий dApps хөгжүүлэхээр төлөвлөж байна.
Бид энгийн жишээгээр эхэлсэн Асуулт, хариултын хэсэг болон дотор RIDE IDE - жишээ нь хуваалцсан түрийвч.

Энэ жишээг харцгаая, таамаглалыг шалгаж, зарим хачирхалтай зүйлсийг харцгаая.

Алис - dApp эзэмшигчтэй болцгооё
Boob, Cooper нар бол Алиса-BC DAO-ийн үүсгэн байгуулагчид болох Алис түншүүд юм
Нели бол санхүүжилт хэрэгтэй бизнес эрхлэгч юм
Банк - жетон түгээх банк

Үе шат 1. Үлдэгдлийг эхлүүлэх

Долгионы тестийн сүлжээнд жетон хүлээн авахын тулд та холбоо барих хэрэгтэй усны цорго мөн жетон илгээх хаягийг зааж өгнө.
Та өөрийн дансны дэлгэрэнгүй мэдээллийг нээснээр IDE дахь хаягийг олох боломжтой.
Бид Банкны 10 давалгааг онцолж байна. Дараа нь бид блок болон гүйлгээний хөтөчөөр дамжуулан ирсэн эсэхийг шалгана. хянагч

Одоо бусад оролцогчдод банкнаас жетон тараацгаая. (Тэмдэглэл: Waves сүлжээний бүх гүйлгээ үнэ төлбөргүй биш тул бүх оролцогчид гүйлгээ хийхэд хамгийн бага эерэг үлдэгдэл шаардлагатай).

1 ДОЛГОО = 100000000 нэгж (долгион), учир нь хэмжээ нь зөвхөн бүхэл тоо байж болно.
0.01 WAVES (Гүйлгээний хураамж) = 1000000

Bank -> [3 WAVES] -> Alice, TransferTransaction-ээр дамжуулан (Төрөл: 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-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Бид 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}))

Бүх оролцогчдын үлдэгдлийг дүүргэсний дараа бид дараахь зүйлийг харж байна.
RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

2-р шат. dApp бүртгэл үүсгэнэ үү

Бид Алисыг төвлөрсөн бус програмыг бүтээгч, эзэмшигч байхаар тохиролцсон.
Accounts руу очоод үүнийг SEED болгож тохируулаад env.SEED нь Алистай таарч байгаа эсэхийг шалгаарай.

Алисын дансанд хамгийн энгийн скрипт (гэрээ) суулгахыг хичээцгээе.
Waves дахь ухаалаг контактууд нь тодорхой нөхцөлд ямар ч төрлийн гадагшаа гүйлгээ хийхийг хориглодог эсвэл зөвшөөрдөг предикатууд юм. Энэ тохиолдолд энэ нөхцөл байдал ҮРГЭЛЖ байна. Гэрээний код үнэн. Дуудлага deploy().

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

setScript гүйлгээний хураамж 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-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Таны акаунт дээр аль гэрээ идэвхтэй байгааг шалгахын тулд та ухаалаг гэрээний base64 кодыг блок судлаач дээр хуулж, хөрвүүлэгч ашиглан таних боломжтой.Жишээ нь)
RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)
RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)
RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Ухаалаг гэрээний логик нь бидний хүлээж буй зүйлтэй тохирч байгаа эсэхийг бид шалгадаг.
Алис өөрийн тэнцвэрт байдалд 2.972 ДАЛГААН үлдсэн байна.

Энэхүү dApp нь оролцогч бүр нэгдсэн санд хэр их хувь нэмэр оруулж байгааг механизмаар дамжуулан бүртгэдэг өгөгдлийн гүйлгээ — DataEntry (одоогийн түлхүүр, шинэ дүн), энд currentKey нь хадгаламжийн функцийг дууддаг данс бөгөөд newAmount нь нөхөн төлсөн үлдэгдлийн утга юм.

Boob, Cooper нар 1 WAVES-ээр dApp дансанд мөнгөө хийдэг.
RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Бид алдаа гаргаж, гүйлгээ хийгдэхгүй. Бид Бобын нэрийн өмнөөс гүйлгээ хийж байгаа гэдэгт итгэлтэй байсан ч индекст алдаа гаргаж, ухаалаг гэрээгүй банкны дансыг зааж өгсөн. Энд нэг чухал зүйлийг тэмдэглэх нь зүйтэй - гүйлгээг эхлүүлэх оролдлого амжилтгүй болсны төлбөр төлдөг. устгах боломжгүй! Алис өөрийн тэнцвэрт байдалд 2.972 ДАЛГААН үлдсэн байна. Боб гурван долгионтой.

Боб 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 WAVES үлдсэн. Өөрөөр хэлбэл, Боб 0.01 WAVES комисс төлсөн

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Алисын балансад 2.972 ДАЛГААН байсан бол одоо 3.972 болжээ. Мөн Алисын дансанд гүйлгээ бүртгэгдсэн боловч dApp данснаас (Алис) ямар ч шимтгэл аваагүй.
Купер мөн дансаа нөхсөний дараа Алисын үлдэгдэл 4.972 WAVES болсон.

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Өгөгдлийн таб дахь блок хайгч дахь нийтлэг түрийвчэнд хэдэн ДАЛГААНЫ эзэмшдэгийг та мэдэх боломжтой.

Купер ерөнхий хэтэвчиндээ 1 WAVES-ийн хэмжээг үлдээх тухай бодлоо өөрчилж, ойр дотныхоо талыг эргүүлэн татахаар шийджээ. Үүнийг хийхийн тулд тэрээр буцаан татах функцийг дуудах ёстой.

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Гэсэн хэдий ч буцаан татах функц нь огт өөр параметртэй, өөр гарын үсэгтэй тул бид дахин алдаа гаргасан. Та RIDE4DAPPS дээр ухаалаг гэрээ байгуулахдаа энэ зүйлд анхаарлаа хандуулах хэрэгтэй

RIDE болон RIDE4DAPPS дээр Waves ухаалаг гэрээг бичиж сурах. 1-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Cooper одоо өөрийн балансад 2.48 WAVES-тэй байна. Үүний дагуу 3 WAVES - 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-р хэсэг (Олон хэрэглэгчийн хэтэвч)

Энэ нь түүний хувьд ч бүтсэнгүй.

Дараагийн хэсэгт бид Alice dApp дансны төгс бус байдалтай холбоотой илүү төвөгтэй асуудлуудыг авч үзэх болно.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх