Helo bawb!
Yn fwy diweddar, Waves Labs
Dewisasom yr achos DAO oherwydd
Dechreuasom gydag enghraifft syml yn
Gadewch i ni edrych ar yr enghraifft hon, rhoi prawf ar ddamcaniaethau ac edrych ar rai rhyfeddodau:
Gadewch inni gael Alice - Perchennog dApp
Mae Boob a Cooper yn bartneriaid Alice, cyd-sylfaenwyr Alice-BC DAO
Mae Neli yn berchennog busnes sydd angen cyllid
Banc - banc sy'n dosbarthu tocynnau
Cam 1. Cychwyn balansau
Er mwyn derbyn tocynnau ar y rhwydwaith prawf tonnau, mae angen i chi gysylltu
Gallwch ddod o hyd i'r cyfeiriad yn y DRhA trwy agor manylion eich cyfrif.
Rydym yn amlygu Banc 10 TON. Yna byddwn yn gwirio eu bod wedi cyrraedd trwy'r porwr bloc a thrafodion:
Nawr, gadewch i ni ddosbarthu tocynnau o'r banc i weddill y cyfranogwyr. (Nodiadau: Nid yw'r holl drafodion ar y rhwydwaith tonnau yn rhad ac am ddim, felly mae angen isafswm cydbwysedd cadarnhaol er mwyn i'r holl gyfranogwyr wneud trafodion).
1 TONAU = 100000000 o unedau (tonfeddi), gan mai dim ond cyfanrif y gall symiau fod
0.01 TONAU (TΓ’l Trafodion) = 1000000
Banc -> [3 TON] -> Alice, trwy TransferTransaction (Math: 4).
Rydym yn gwirio bod yr env.SEED y llofnodwyd trafodion ohono yn cyfateb i'n Banc:
οΏΌ
Os nad oes gennych ymadrodd hadau cyfatebol, dim ond newid iddo yn y tab Cyfrifon a gwirio eto.
Ar Γ΄l hyn, rydym yn creu, yn cyhoeddi ac yn llofnodi trafodiad ar gyfer trosglwyddo 3 TONAU Alice.
Gallwch hefyd ddarganfod data Alice trwy'r newidyn cyfrifon env. Mae'r rhifo yn dechrau o 0, felly mae Alice yn cyfrif amlen[1].
broadcast(transfer({recipient:address(env.accounts[1]), amount: 300000000, fee: 1000000}))
Gellir gweld y canlyniad hefyd yn y porwr, bydd dolen iddo yn cael ei ddychwelyd atom yn syth ar Γ΄l ei weithredu
Rydym yn gwneud yn siΕ΅r bod balans Alice yn cael ei ailgyflenwi gan 3 TON, ac mae balans y banc yn aros ar 10 - 3 - 0.01 = 0.699.
Dan ni'n anfon 3 TON yr un i Boob a Cooper, a Neli, Xena a Mark 0.2 TON yr un yn yr un ffordd.
(Nodiadau: Fe wnaethom gamgymeriad un nod ac anfon Neli 0.02 TONAU. Byddwch yn ofalus!)
broadcast(transfer({recipient:address(env.accounts[4]), amount: 20000000, fee: 1000000}))
Ar Γ΄l ailgyflenwi balansau'r holl gyfranogwyr, gwelwn:
Cam 2. Creu cyfrif dApp
Fe wnaethom gytuno mai Alice fyddai creawdwr a pherchennog y cais datganoledig.
Ewch i'r Cyfrifon, gosodwch ef fel SEED a gwiriwch env.SEED yn cyfateb i Alice.
Gadewch i ni geisio gosod y sgript (contract) symlaf posibl ar gyfrif Alice.
Mae cysylltiadau clyfar yn Waves yn rhagfynegiadau sy'n gwahardd neu'n caniatΓ‘u i unrhyw fath o drafodiad sy'n mynd allan ddigwydd o dan amodau penodol. Yn yr achos hwn, mae'r cyflwr hwn BOB AMSER. Mae cod y contract yn wir. Gosod galwadau ().
Ffi fesul trafodiad setScript 1400000/100000000 = 0.014 TONNAU. Mae gan Alice 2.986 TON ar Γ΄l ar ei balans.
Gadewch i ni nawr geisio gosod rhesymeg contract smart mwy cymhleth ar gyfrif Alice, a ddisgrifir yn
Ride4Dapps bellach yn cynnwys 2 fath o anodiad newydd:
- @galadwy(i) β yn cymryd fel paramedr i, data am ba gyfrif a alwodd/arwyddodd y trafodiad. Canlyniad y swyddogaeth hon sy'n pennu'r newid yng nghyflwr y cyfrif dApp. Gall cyfrifon eraill greu trafodion a gweithredu swyddogaethau gyda'r anodiad hwn a newid cyflwr y cyfrif dApp.
- @Gwiriwr(tx) β Dilyswr trafodiad gyda'r paramedr trafodiad tx. Yn cyfateb i'r rhesymeg rhagfynegiad o RIDE. Yn yr ymadrodd hwn y gallwch ganiatΓ‘u neu wahardd newidiadau pellach i resymeg contractau smart ar y cyfrif dApp.
Gadewch i ni wneud dApp cyfrif fel waled gyffredin ar gyfer yr holl gyfranogwyr.
I wirio pa gontract sy'n weithredol ar eich cyfrif ar hyn o bryd, gallwch gopΓ―o cod base64 y contract smart yn yr archwiliwr bloc a'i adnabod gan ddefnyddio dadgrynhoi (
Rydyn ni'n gwneud yn siΕ΅r bod rhesymeg y contract smart yn cyfateb i'r hyn rydyn ni'n ei ddisgwyl.
Mae gan Alice 2.972 TONNAU ar Γ΄l ar ei balans.
Mae'r dApp hwn yn cadw golwg ar faint mae pob cyfranogwr yn ei gyfrannu at y gronfa gyffredin trwy fecanwaith trafodiad data β DataEntry(currentKey, newSwm), lle currentKey yw'r cyfrif sy'n galw'r swyddogaeth blaendal, a newAmount yw gwerth y balans wedi'i ailgyflenwi.
Mae Boob a Cooper yn gwneud eu hadneuon i'r cyfrif dApp gyda 1 TONNAU.
Rydym yn gwneud camgymeriad ac nid yw'r trafodiad yn mynd drwodd. Ers, er gwaethaf y ffaith ein bod yn argyhoeddedig ein bod yn gwneud trafodiad ar ran Bob, gwnaethom gamgymeriad yn y mynegai a nodi cyfrif Banc nad oes ganddo gontract smart. Mae'n werth nodi pwynt pwysig yma - mae ffi am ymdrechion aflwyddiannus i gychwyn trafodion ni ellir ei ddileu! Mae gan Alice 2.972 TONNAU ar Γ΄l ar ei balans. Mae gan Bob 3 TON.
Anfonodd Bob 1 TONNAU i dApp Account.
broadcast(invokeScript({dappAddress: address(env.accounts[1]), call:{function:"deposit",args:[]}, payment: [{amount: 100000000, asset:null }]}))
Mae gan Bob 1.99 TONNAU ar Γ΄l. Hynny yw, talodd Bob 0.01 comisiwn TONNAU
Roedd gan Alice 2.972 TONAU ar ei balans, nawr mae'n 3.972. Cofrestrwyd trafodiad hefyd ar gyfrif Alice, ond ni chodwyd unrhyw gomisiwn o'r Cyfrif dApp (Alice).
Ar Γ΄l i Cooper ailgyflenwi'r cyfrif hefyd, daeth balans Alice yn 4.972 TONNAU.
Gallwch ddarganfod pwy sy'n berchen ar faint o TONAU yn y waled gyffredin yn yr archwiliwr bloc yn y tab Data.
Newidiodd Cooper ei feddwl am adael y swm o 1 TONNAU ar y waled gyffredinol a phenderfynodd dynnu hanner yr affinedd yn Γ΄l. I wneud hyn, rhaid iddo alw'r swyddogaeth tynnu'n Γ΄l.
Fodd bynnag, roeddem yn anghywir eto, gan fod gan y swyddogaeth tynnu'n Γ΄l baramedrau hollol wahanol a llofnod gwahanol. Pan fyddwch chi'n dylunio contractau smart ar RIDE4DAPPS dylech dalu sylw i'r pwynt hwn
Bellach mae gan Cooper 2.48 TON ar ei fantolen. Yn unol Γ’ hynny, 3 TONNAU - 1 - 0.01, ac yna + 0.5 - 0.01. Yn unol Γ’ hynny, mae pob galwad i adneuo a thynnu'n Γ΄l yn costio 0.01 TONNAU. O ganlyniad, newidiodd y cofnodion yn nhabl perchnogion dApps fel a ganlyn.
Penderfynodd Bob hefyd dynnu rhywfaint o arian o'r waled a rennir, ond gwnaeth gamgymeriad a cheisiodd dynnu 1.5 TONNAU yn Γ΄l.
Fodd bynnag, roedd gan y contract smart siec ar gyfer y sefyllfa hon.
Mae Xena yn dwyllwr, ceisiodd dynnu 1 TONNAU o gyfanswm y cyfrif.
Wnaeth o ddim gweithio allan iddi chwaith.
Yn y rhan nesaf, byddwn yn edrych ar faterion mwy cymhleth yn ymwneud ag amherffeithrwydd Alice dApp Account.
Ffynhonnell: hab.com