Supratimas apie ERC20

Šiame straipsnyje daroma prielaida, kad skaitytojas jau yra bent jau susipažinęs su šiomis sąvokomis: „Ethereum“ blokų grandinė, „Dapps“, eteris, išmaniosios sutartys & ICO.

Norėdami greitai atnaujinti „Ethereum“ blokų grandinę, yra paskirstyta, atviro kodo „blockchain“ pagrindu sukurta skaičiavimo platforma. Ši skaičiavimo platforma, „Ethereum“ tinklas, talpina decentralizuotas programas („dapps“), kurios vykdomos su kodais, pavadintais išmaniosiomis sutartimis; visos operacijos „Ethereum“ tinkle, taip pat išmaniųjų sutarčių vykdymo skaičiavimo išlaidos apmokamos „Ethereum“ kriptovaliutos eteryje.

Kai kuriems, bet ne visiems, šiems „dapps“ (decentralizuotoms programoms) reikalinga papildoma valiuta „dapp“ – šie „dapps“ įveda savo naują valiutą, pavadintą žetonu, ir renka lėšas per pradinį monetų pasiūlymą (ICO).

„Ethereum blockchain“ platforma sukurta taip, kad skatintų visų rūšių dappus, įskaitant tuos, kuriems reikia sukurti, prižiūrėti & skaitmeninio turto perdavimas. Šie konkretūs „dapp“ „Ethereum“ žetonai gali būti įdiegti siekiant sukurti tinkamų „dapps“ tinklų su prasmingais naudojimo atvejais, tokiais kaip sąskaitos faktūros, visos naršyklės mokėjimai, & kriptovaliutos debeto kortelę.

Visos anksčiau minėtos idėjos šiuo metu yra „Ethereum“ pagrįstos „dapp“ žetonai, kurie atitinka labai įprastą žetonų programavimo standartą; iš tikrųjų 99% visų įdiegtų „Ethereum“ žetonų atitinka šį standartą – ERC20 standartą.

ERC20 žetonų standartas, kuris reiškia Ethereum užklausas dėl komentaro, yra standartinis programavimo „taisyklių“ rinkinys, kurio tikimasi laikytis visų „Ethereum“ pagrindu sukurtų prieigos raktų. Kūrėjai sutarė dėl šių šešių funkcijų & du įvykiai yra minimalus perspektyvus ženklas, siekiant normalizuoti laukiamą elgesį bendraujant per „Ethereum“ tinklą – nustatydami šį protokolą, „Ethereum“ kūrėjai gali lengvai dirbti su išorinėmis išmaniosiomis sutartimis.

Pristatome solidumą

Nors populiariausias Ethereum klientas šiuo metu yra parašyta „Google“ GO, kūrėjui palankios išmaniosios sutarties kalbos pasirinkimas yra gausus. Kūrėjai gali rinktis iš tokių kalbų kaip Vyperas, Bambukas, Gyvatė & Solidumas.

Likusią šio straipsnio dalį paryškinsime & „Solidity“ sintaksės apžvalga.

„Solidity“ yra aukšto lygio į sutartis orientuota programavimo kalba, naudojama įgyvendinant išmaniąsias sutartis. „Solidity“ sintaksė, tiems, kurie yra susipažinę su programavimu, yra „Javascript“, „Python“, klaidos, & C sąvokos; jis yra statiškai tipiškas, palaiko paveldėjimą & nuo pat pradžios turi daugybę bibliotekų. Norėdami gauti daugiau informacijos apie solidumą, perskaitykite čia pateiktus dokumentus: https://solidity.readthedocs.io/en/develop/#

„ERC20“ sąsajos apžvalga

Mes pradėsime šiek tiek gilintis į tai, ką tiksliai & kaip šis standartas įgyvendinamas visame „Ethereum“ tinkle – kaip jau minėta anksčiau, tai aptarsime konkrečiai „Solidity“ sintaksėje.

Ethereum-lande viskas prasideda & baigiasi sutarčių. Tvirtumo dokumentuose sutartys apibrėžiamos kaip „kodo rinkinys (jo funkcijos) & duomenys (jos valstija), kurie gyvena konkrečiu „Ethereum“ blokų grandinės adresu “. Ethereum sutartys palaiko paveldėjimą – taigi sutartis gali būti kitos sutarties pavyzdys.

Vadovaujantis šia logika, abstrakti sutartis, griežtai naudojama paveldėjimui, taip pat gali būti naudojama kaip nesaugi apibrėžiant, kokia nauja sutartis turi yra, kad būtų galima surinkti. Šios abstrakčios sutartys taip pat žinomos kaip sąsajos sutartys.

Tai reiškia, kad bet kuri simbolinė sutartis, kuri yra ERC20 egzempliorius, nesudaroma be šių dalykų: priešingai, tai reiškia, kad „Ethereum“ kūrėjai dabar žino, kokios funkcijos & elgesio, kurio jie gali tikėtis bendraudami su bet kuriuo ERC20 ženklu.

ERC20 standartas yra sąsajos sutartis, kurioje yra iš viso šešios vykdomos funkcijos & du registravimo įvykiai.

Pašalpa

Leidimo funkcija leidžia dviem adresams sukurti pakartotinį vienakryptį perdavimą; piniginės adresas žetonasSavininkas & sekundė piniginės išlaidų yra apibrėžtos kaip dvi piniginės, kurios vykdys pakartotines operacijas. Tiksliau, piniginės lėšos atsiims kai kurie suma iš piniginės žetono savininko kai kurie intervalas – abu šie kintamieji bus nustatyti vėliau.

Patvirtinti

Funkciją „Patvirtinti“ rasite mūsų „Allowance“ funkcijoje: ši funkcija leidžia dviem adresams pakartotinai atšaukti viena kryptimi. Tinkamai pavadinta „Patvirtinti“ funkcija yra paprasta standartinė funkcija, reikalaujanti, kad piniginės savininkas „patvirtintų“ sandorį, kuris bus atliekamas jo vardu, atsižvelgiant į pašalpą. Šiai funkcijai reikalingi du įvestys, išleidėjo adresas & siunčiamų žetonų kiekį. Išvestis pateikia viešą loginę reikšmę, nurodančią, ar patvirtinimas buvo pateiktas, ar atmestas.

BalanceOf

„BalanceOf“ yra intuityvi funkcija, priimanti vieno adreso įvesties parametrą (adreso tokenOwner) & pateikia vieną viešąją konstantą (uint balansą). Grąžinta uint konstanta, balansas nurodo žetonų, už kuriuos pateiktas adresas, kiekį – atminkite, kad „blockchain“ operacijos paprastai yra viešos, „Ethereum“ nesiskiria.

„TotalSupply“

Funkcija „totalSupply“, kaip jūs tikriausiai galite atspėti iš pavadinimo, yra anoniminė konstruktoriaus funkcija, vykdoma tik vieną kartą per pirmąją diegimo į tiesioginį „Ethereum“ tinklą akimirką. Funkcija pateikia viešą pastovų totalSupply nepriskirtą skaičių (uint), kuris veikia kaip tas žetonų bendras tiekimas likusiam sutarties galiojimo laikui. Ši „totalSupply“ konstanta paprastai apibrėžiama vienu iš dviejų būdų: kintamojo užkodavimas arba finansavimas iš kilmės piniginės.

Perkėlimas

„Transfer“ funkcija yra pagrindinė bet kurio „ERC20“ prieigos rakto funkcija; tai apibrėžia & įgyvendina tiesioginį piniginės savininkas – bendraamžis žetono perdavimas. Kadangi piniginės savininkai skambina, reikia tik dviejų parametrų: imtuvo adreso & siunčiamų žetonų kiekį. Šie du parametrai paprastai inicijuojami kaip (adresas į) & (uint žetonai). Perkėlimo grąžinimo vertė yra tiesiog loginė reikšmė, patvirtinanti, ar gavėjas (adresas „į“) gavo išsiųstus žetonus.

Perkelti iš

„TransferFrom“ funkcija leidžia protinga sutartis atlikti perdavimą perduodant parametrus piniginės savininko vardu. Atsargiai skirkite ankstesnį Transfer funkcija. Ankstesnė funkcija leido piniginės savininkas tiesiogiai siųsti žetonus adresu; tai Perkelti iš leidžia a protinga sutartis siųsti žetonus piniginės savininkų vardu, pavyzdžiui, užpildyti užsakymą biržoje, laiku išleisti lėšas ar išmokėti laimėjimą sėkmės žaidime.

Perkelti iš funkcija turi tris įvesties parametrus: piniginės savininko adresą, imtuvo piniginės adresą, & atsiųstų žetonų kiekį. Jie dažnai inicijuojami tokioje sintaksėje: (adresas nuo, adresas į, uint žetonai). Funkcijos išvestis yra visiškai tokia pati kaip perdavimo išvestis: vienas viešasis loginis elementas, kuriame išsamiai aprašoma operacijos sėkmė ar nesėkmė.

Santrauka

Šešios aukščiau aprašytos funkcijos yra šešios pagrindinės funkcijos, aptinkamos 99% visų šiuo metu veikiančių ERC20 žetonų. Išskyrus keletą išimčių (žiūrint į jus „Golem“), „Ethereum“ kūrėjai gali jaustis saugūs, žinodami, kad gali visiškai tikėtis šių pagrindinių funkcijų kurdami vidaus sutartis arba bendraudami su išorinėmis viešosiomis sutartimis laukinėje gamtoje..