Razumijevanje ERC20

Ovaj članak pretpostavlja da je čitatelj već barem upoznat sa sljedećim konceptima: Ethereum blockchain, dapps, eter, pametni ugovori & ICO-i.

Za brzo ponovno ograničavanje, Ethereum blockchain distribuirana je računalna platforma zasnovana na blockchainu otvorenog koda. Ova računalna platforma, mreža Ethereum, domaćin je decentraliziranih aplikacija (dapps) koje se izvršavaju s dijelovima kodova nazvanih pametni ugovori; sve transakcije na mreži Ethereum, kao i računski troškovi izvršenja pametnih ugovora, plaćaju se u eteru kriptovalute Ethereum.

Neki, ali ne i svi, od ovih dapps-a (decentraliziranih aplikacija) zahtijevaju dodatnu in-dapp valutu – ti dapps uvode svoju novu valutu, nazvanu token, i prikupljaju sredstva putem početne ponude kovanica (ICO).

Ethereum blockchain platforma izgrađena je na takav način da potiče dappove svih vrsta – uključujući one koji zahtijevaju stvaranje, održavanje & prijenos digitalnih sredstava. Ovi Ethereum tokeni specifični za dapp mogu se implementirati kako bi se stvorila mreža dapps-a sa smislenim slučajevima korištenja kao što su faktoring računa, plaćanja putem čitavog preglednika, & debitna kartica za kriptovalute.

Sve prethodno spomenute ideje trenutno su dapp-tokeni temeljeni na Ethereumu koji slijede vrlo uobičajeni standard programiranja tokena; zapravo 99% svih postavljenih Ethereum tokena slijedi ovaj standard, ERC20 standard.

Standard tokena ERC20, koji označava Ethereum Requests for Comment, standardni je skup programskih “pravila” koja se očekuje da slijede svi tokeni temeljeni na Ethereumu. Programeri su se složili oko ovih šest funkcija & dva događaja kao minimalno održivi token kako bi se normalizirala očekivana ponašanja tijekom komunikacije preko mreže Ethereum – uspostavljanjem ovog protokola programeri Ethereuma mogu lako raditi s vanjskim pametnim ugovorima.

Predstavljamo solidnost

Dok je najpopularniji Ethereum klijent je trenutno napisano u Googleov GO, izbora za jezik pametnog ugovora pogodnog za programere ima mnogo. Programeri mogu birati između jezika kao što su Vyper, Bambus, Zmija & Čvrstoća.

Za ostatak ovog članka istaknut ćemo & sintaksa solidnosti.

Solidity je programski jezik usmjeren na ugovore na visokoj razini koji se koristi za provedbu pametnih ugovora. Sintaksa Solidity za one koji su upoznati s programiranjem složena je kombinacija Javascripta, Pythona, & C koncepti; statički je otkucan, podržava nasljeđivanje & ima mnoštvo knjižnica od samog početka. Za daljnje informacije o Solidity trebali biste prijeći na ovdje pronađenu dokumentaciju: https://solidity.readthedocs.io/en/develop/#

Prolazak kroz sučelje ERC20

Počet ćemo malo dublje kopati u što točno & kako se ovaj standard implementira u mrežu Ethereum – kao što je prethodno spomenuto, to ćemo pokriti posebno u sintaksi Solidity.

U zemlji Ethereum sve započinje & završava sa ugovorima. Dokumentacija o solidnosti definira ugovore kao „zbirku koda (njegov funkcije) & podaci (njegov država) koji se nalaze na određenoj adresi na Ethereum blockchainu. ” Ethereum ugovori podržavaju nasljeđivanje – tako da ugovor može biti primjer drugog ugovora.

Slijedom ove logike, apstraktni ugovor, onaj koji se koristi isključivo za nasljeđivanje, također se može koristiti kao siguran, definirajući što je novi ugovor mora sadržavati radi sastavljanja. Ovi apstraktni ugovori poznati su i pod nazivom ugovori o sučelju.

To znači da se bilo koji ugovor s tokenima koji je instanca ERC20 ne sastavlja bez sljedećeg; za razliku od toga, to znači da programeri Ethereuma sada znaju koje funkcije funkcioniraju & ponašanja koja mogu očekivati ​​u interakciji s bilo kojim ERC20 tokenom.

Standard ERC20 je ugovor o sučelju koji sadrži ukupno šest izvršnih funkcija & dva događaja bilježenja.

Džeparac

Funkcija Dopuštenje omogućuje dvjema adresama stvaranje ponovljenog jednosmjernog prijenosa; adresa novčanika tokenOwner & sekundu rasipač novčanika definirani su kao dva novčanika koja će sudjelovati u ponovljenim transakcijama. Točnije, potrošač novčanika povući će se neki iznos od novčanika tokenOwner na neki interval – obje su varijable koje će se kasnije utvrditi.

Odobriti

Za funkciju Odobri, vratite se na našu funkciju Dopuštenje: funkcija omogućuje da se dvije adrese uzastopno povlače jednosmjerno. Funkcija odobrenja, prikladno nazvana, jednostavna je standardna funkcija koja poziva vlasnika novčanika da “odobri” transakciju koju će u njegovo ime izvršiti u kontekstu dozvole. Ova funkcija zahtijeva dva ulaza, adresu trošila & količina poslanih žetona. Izlaz vraća javnu logičku vrijednost koja diktira je li odobrenje dato ili odbijeno.

SaldoOf

BalanceOf je intuitivna funkcija koja prihvaća jedan ulazni parametar adrese (adresa tokenOwner) & vraća jednu javnu konstantu (uint saldo). Vraćena uint-konstanta, saldo, predstavlja količinu tokena na kojima se nalazi adresa koja se traži – ne zaboravite, transakcije na blockchainu su obično javne, Ethereum se ne razlikuje.

Ukupna opskrba

Funkcija totalSupply, kao što vjerojatno možete pretpostaviti iz imena, anonimna je konstruktorska funkcija koja se pokrenula samo jednom u prvom trenutku postavljanja na živu mrežu Ethereum. Funkcija vraća javnu konstantu totalSupply neraspoređeni cijeli broj (uint) koji djeluje kao ukupna opskrba tokena za ostatak trajanja ugovora. Ova konstanta totalSupply obično se definira na dva načina: tvrdo kodiranje varijable ili financiranje iz izvornog novčanika.

Prijenos

Funkcija prijenosa osnovna je funkcija bilo kojeg ERC20 tokena; definira & provodi izravno novčanik-vlasnik-peer-u prijenos tokena. Budući da vlasnici novčanika pozivaju, potrebna su samo dva parametra: adresa primatelja & količina poslanih žetona. Ova se dva parametra obično inicijaliziraju kao (adresa na) & (uint žetoni). Povratna vrijednost prijenosa jednostavno je logička vrijednost koja potvrđuje je li primatelj (adresa “do”) primio poslane tokene.

TransferFrom

Funkcija TransferFrom omogućuje pametni ugovor izvršiti prijenos s prosljeđenim parametrima u ime vlasnika novčanika. Pažljivo napravite razliku s prethodnim Prijenosr funkcija. Prethodna funkcija dopuštena za vlasnik novčanika za izravno slanje žetona na adresu; ovaj TransferFrom omogućuje a pametni ugovor za slanje tokena u ime vlasnika novčanika, kao što je popunjavanje naloga na burzi, pravovremeno puštanje sredstava ili isplata dobitaka u igri sreće.

The TransferFrom funkcija ima tri ulazna parametra, adresu vlasnika novčanika, adresu novčanika primatelja, & količina poslanih žetona. Često su inicijalizirani u sljedećoj sintaksi: (adresa od, adresa do, uint tokeni). Izlaz funkcije potpuno je isti kao i izlaz Prijenos: jedno javno logičko polje koje detaljno opisuje uspjeh ili neuspjeh transakcije.

Sažetak

Šest gore opisanih funkcija šest su osnovnih funkcija koje se nalaze u 99% svih trenutno aktivnih ERC20 tokena. Uz nekoliko iznimaka (gledajući vas Golema), programeri Ethereuma mogu se osjećati sigurno znajući da mogu u potpunosti očekivati ​​ove ključne funkcije dok razvijaju interne ugovore ili kada komuniciraju s vanjskim javnim ugovorima u divljini.