Co jsou ERC20 tokeny?
Pro รบplnรฉ pochopenรญ, co jsou ERC20 tokeny, oฤekรกvรกme, ลพe jste znalรญ v oblasti Ethereum blockchainu, smart kontraktลฏ, DApps aย ICO.
Rychlรฉ shrnutรญ: Ethereum blockchain je distribuovanรก open-source platforma postavenรก na blockchainu. Tato platforma, sรญลฅ Ethereum, provozuje decentralizovanรฉ aplikace (DApps), kterรฉ jsou provรกdฤny skrz smart kontrakty. Vลกechny transakce na Ethereum sรญti, spolu s vรฝpoฤetnรญmi poลพadavky na provรกdฤnรญ smart kontraktลฏ, jsou vyplรกceny v kryptomฤnฤ Ether.
Nฤkterรฉ, nikoli vลกak vลกechny, DApps vyลพadujรญ dodateฤnou mฤnu. Tyto DApps proto vytvoลรญ vlastnรญ mฤnu, token, kterรฝ pouลพรญvajรญ na vybรญrรกnรญ prostลedkลฏ od investorลฏ v procesu zvanรฉm Initial Coin Offering (ICO).
Ethereum blockchain je postaven pro podporu DApps rลฏznรฝch druhลฏ. Kromฤ DApps pro tvorbu, sprรกvu a posรญlรกnรญ prostลedkลฏ existujรญ i โโDApps pro platby na internetu, kryptomฤnovรฉ debetnรญ karty, ฤi hra s virtuรกlnรญmi koฤkami.
Vลกechny tyto DApps skuteฤnฤ existujรญ a 99 % vลกech DApps vyuลพรญvรก stejnรฉ ERC20 tokeny.
ERC20 token (Ethereum Request for Comment) je standardnรญ seznam programovacรญch pravidel pro tokeny postavenรฉ na Ethereum blockchainu. Dodrลพenรญm tohoto programovacรญho protokolu, kterรฝ sestรกvรก ze 6 funkcรญ, vรฝvojรกลi a jejich DApps jsou schopny efektivnฤ a jednoduลกe pracovat se smart kontrakty.
ฤtฤte taktรฉลพ: Prohlรญลพeฤ Brave odmฤลuje uลพivatele 70 % z vรฝdฤlku (nรกvod v ฤlรกnku)
Predstavujeme Solidity
Nejpopulรกrnฤjลกรญ Ethereum klient je napsรกn v Google Go programovacรญm jazyce. Vรฝvojรกลi si vฤtลกinou vybรญrajรญ ty jazyky, kterรฉ jsou pro smart kontrakty pลรกtelลกtฤjลกรญ. Proto si vฤtลกinou volรญ jazyky jako Vyper, Bamboo, Serpent a Solidity.
Zbytek ฤlรกnku se bude vฤnovat Solidity programovacรญmu jazyku a jeho syntaxe.
Solidity je programovacรญ jazyk orientovanรฝ na prรกci a implementaci smart kontraktลฏ. Syntax Solidity, pro technicky zdatnฤjลกรญ, je kombinacรญ konceptลฏ z Javascript, Python a C programovacรญch jazykลฏ. Pro vรญce informacรญ o Solidity navลกtivte https://solidity.readthedocs.io/en/develop/#
Prลฏvodce rozhranรญm ERC20
Je naฤase ponoลit se trochu do hloubky a zjistit, co je to pลesnฤ ten ERC20 standard a jak funguje. Budeme se mu vฤnovat z pohledu Solidity programovacรญho jazyku.
Na platformฤ Ethereum vลกe zรกvisรญ na smart kontraktech. Dokumentace Solidity definuje kontrakty jako “kolekci kรณdลฏ a dat, kterรฉ nรกleลพรญ urฤitรฉ, specifickรฉ adrese na Ethereum blockchainu”. Ethereum kontrakty podporujรญ dฤdiฤnost, tj. jeden kontrakt mลฏลพe bรฝt pลรญkladem druhรฉho.
Nรกsledujรญc tuto logiku, abstraktnรญ kontrakt, kterรฝ je pouลพit pouze pro dฤdฤnรญ, mลฏลพe bรฝt takรฉ pouลพit jako zรกruka, neboลฅ bude definovat, co musรญ novรฝ kontrakt obsahovat, aby byl funkฤnรญ. Tyto abstraktnรญ kontrakty jsou takรฉ znรกmรฉ jako interface kontrakty.
ERC20 standard je interface kontrakt, kterรฝ sestรกvรก ze 6 funkcรญ, kterรฉ si nynรญ pลedstavรญme
Allowance
Funkce Allowance umoลพลuje dvฤma adresรกm vytvoลit opakovanรฝ jednosmฤrnรฝ transakฤnรญ kanรกl. Adresa vlastnรญka a adresa pลijรญmatele jsou definovรกny jako dvฤ penฤลพenky, kterรฉ se podรญlejรญ na opakovanรฝch transakcรญch. Pลesnฤji ลeฤeno, pลijรญmatel bude pลijรญmat urฤitou ฤรกstku z penฤลพenky vlastnรญka v urฤitรฉm intervale – obฤ tyto promฤnnรฉ musejรญ bรฝt definovรกny.
Approve
Tato funkce รบzce souvisรญ s pลedchozรญ. Umoลพลuje totiลพ dvฤma adresรกm opakovanฤ provรกdฤt jednosmฤrnรฉ transakce. Approve je standardnรญ, jednoduchรก funkce, kterรก majiteli penฤลพenky umoลพลuje povolit transakci, kterou uskuteฤลuje. Tato funkce vyลพaduje dva vstupy, adresu pลijรญmatele a mnoลพstvรญ tokenลฏ, kterรฉ mรก pลijmout. Vรฝstup poลกle booleanovskou hodnotu (0 nebo 1), kterรก urฤรญ, zda byla transakce povolena.
BalanceOf
Jednoduลกe ลeฤeno, tato funkce pลijรญmรก vstup z adresy na blockchainu a vracรญ numerickรฝ vรฝstup, kterรฝ udรกvรก poฤet tokenลฏ na danรฉm รบฤtu. Ethereum blockchain je veลejnรฝ, proto si kdokoliv mลฏลพe zjistit, kolik tokenลฏ se nachรกzรญ na libovolnรฉm รบฤtu.
TotalSupply
Tato funkce je anonymnรญ konstruktor, kterรก byla spuลกtฤna pouze jednou, a to na รบplnรฉm zaฤรกtku pลi spuลกtฤnรญ Ethereum sรญtฤ. Funkce, jak uลพ z nรกzvu vyplรฝvรก, udรกvรก koneฤnรฝ poฤet tokenลฏ, kterรฉ mohou existovat na sรญti.
Transfer
Funkce Transfer je nejdลฏleลพitฤjลกรญ funkcรญ, jakou ERC20 tokeny majรญ. Definuje a implementuje pลรญmรฉ pลesuny tokenลฏ mezi รบฤty. Jelikoลพ tuto funkci iniciujรญ vlastnรญci penฤลพenek, vyลพaduje pouze dva parametry. Pลijรญmatelovu adresu a mnoลพstvรญ tokenลฏ, kterรฉ chce odesรญlatel poslat. Vรฝstup tรฉto funkce je booleanovskรก hodnota, kterรก urฤuje, zda se transakce uskuteฤnรญ.
Mohlo by vรกs zajรญmat: Binance nรกvod โ Jak obchodovat na Binance a jak koupit kryptomฤny
TransferFrom
Poslednรญ funkce TransferFrom umoลพลuje smart kontraktลฏm uskuteฤnit transakci na zรกkladฤ poลพadavkลฏ majitele penฤลพenky. Nepleลฅte si to vลกak s pลedchozรญ funkcรญ. Ta slouลพรญ jen na pลรญmรฉ transakce. Tato funkce vลกak slouลพรญ pro stanovovรกnรญ podmรญnek, pลi kterรฝch se mลฏลพe transakce uskuteฤnit. Napลรญklad transakce na burze, kupovรกnรญ a prodej tokenลฏ pลi urฤitรฉ cenฤ jsou provรกdฤny touto funkcรญ.
TransferFrom funkce mรก tลi zรกkladnรญ vstupnรญ parametry – adresu odesรญlatele, pลรญjemce a mnoลพstvรญ tokenลฏ, kterรฉ budou pลevedeny.
Zรกvฤr
ล est funkcรญ, kterรฉ jsme jmenovali, je ลกest zรกkladnรญch funkcรญ, kterรฉ se nachรกzejรญ v 99 % ERC20 tokenลฏ. Kromฤ pรกr vรฝjimek (Golem) se mohou vรฝvojรกลi vลพdy spolehnout, ลพe pลi prรกci s ERC20 tokeny na Ethereum blockchainu budou tyto funkce pro nฤ dostupnรฉ. To jim znaฤnฤ usnadnรญ prรกci pลi programovanรญ smart kontraktลฏ a interakci s nimi.