Förstå ERC20

Förstå ERC20

Den här artikeln förutsätter att läsaren redan är bekant med åtminstone följande begrepp: Ethereum blockchain, dapps, eter, smarta kontrakt & ICO: er.

För att snabbt täcka om är Ethereum blockchain en distribuerad blockchain-baserad datorplattform med öppen källkod. Denna datorplattform, Ethereum-nätverket, är värd för decentraliserade applikationer (dapps) som körs med bitar av koder som heter smarta kontrakt; alla transaktioner i Ethereum-nätverket, liksom beräkningskostnaderna för utförande av smarta kontrakt, betalas i Ethereum-kryptovalutaetern.

Vissa, men inte alla, av dessa dapps (decentraliserade appar) kräver en extra in-dapp-valuta – dessa dapps introducerar sin nya valuta, namngiven token, och samlar in pengar genom ett initialt mynterbjudande (ICO).

Ethereum blockchain-plattformen är byggd på ett sådant sätt att den uppmuntrar dapps av alla slag – inklusive de som kräver skapande, underhåll & överföring av digitala tillgångar. Dessa dapp-specifika Ethereum-tokens kan implementeras för att skapa ett nätverk av dapps med meningsfulla användningsfall som fakturering, webbläsarövergripande betalningar, & ett betalkort för kryptovaluta.

Alla tidigare nämnda idéer är för närvarande levande Ethereum-baserade dapp-tokens som följer en mycket vanlig token-programmeringsstandard; Faktum är att 99% av alla utplacerade Ethereum-tokens följer denna standard, ERC20-standarden.

ERC20-tokenstandarden, som står för Ethereum Requests for Comment, är en standarduppsättning av programmerings “regler” som alla Ethereum-baserade token förväntas följa. Utvecklare kom överens om dessa sex funktioner & två händelser som den minimala livskraftiga token för att normalisera förväntat beteende när de kommunicerar över Ethereum-nätverket – genom att upprätta detta protokoll kan Ethereum-utvecklare enkelt arbeta med externa smarta kontrakt.

Introduktion av soliditet

Medan den mest populära Ethereum klient är för närvarande skrivet i Googles GO, valet för ett utvecklarvänligt smart kontraktspråk är gott. Utvecklare kan välja mellan språk som Vyper, Bambu, Orm & Hållfasthet.

För resten av denna artikel lyfter vi fram & genomgång Solidity-syntax.

Soliditet är ett högnivå kontraktsorienterat programmeringsspråk som används för att implementera smarta kontrakt. Soltidsyntaxen, för de som är bekanta med programmering, är en olycka med Javascript, Python, & C-begrepp; den är statiskt typad och stöder arv & har en mängd bibliotek direkt från början. För mer information om soliditet bör du gå till dokumentationen som finns här: https://solidity.readthedocs.io/en/develop/#

ERC20 gränssnitt genomgång

Vi kommer att börja gräva lite djupare i exakt vad & hur denna standard implementeras över Ethereum-nätverket – som tidigare nämnts kommer vi att täcka detta specifikt i soliditetssyntax.

I Ethereum-land börjar allt & slutar med kontrakt. Soliditetsdokumentation definierar kontrakt som ”en samling av kod (dess funktioner) & data (dess stat) som finns på en specifik adress i Ethereum blockchain. ” Ethereum-kontrakt stöder arv – så ett kontrakt kan vara en förekomst av ett annat kontrakt.


Enligt denna logik kan ett abstrakt kontrakt, ett som används strikt för arv, också användas som felsäkert genom att definiera vad ett nytt kontrakt måste innehåller för att kompilera. Dessa abstrakta kontrakt är också kända som gränssnittskontrakt.

Detta innebär att alla tokenavtal som är en ERC20-instans inte kompileras utan följande; däremot betyder detta att Ethereum-utvecklare nu vet vilka funktioner & beteenden de kan förvänta sig när de interagerar med någon ERC20-token.

ERC20-standarden är ett gränssnittskontrakt som innehåller totalt sex körbara funktioner & två logghändelser.

Ersättning

Tilläggsfunktionen möjliggör två adresser för att skapa upprepad enkelriktad överföring; en plånbokadress tokenOwner & en sekund plånbok spender definieras som de två plånböcker som kommer att delta i upprepade transaktioner. Specifikt kommer plånbokspendern att dra sig tillbaka vissa belopp från plånboken tokenOwner på vissa intervall – båda dessa är variabler som kommer att bestämmas senare.

Godkänna

För funktionen Godkänn, se tillbaka till vår Allowance-funktion: funktionen tillåter två adresser att upprepade gånger dra tillbaka enriktat. Godkänn-funktionen, passande namnet, är en enkel standardfunktion som kräver att plånbokägaren “godkänner” en transaktion som är på väg att göras för hans / hennes räkning i samband med en ersättning. Denna funktion kräver två ingångar, adressen till spenderaren & mängden tokens som skickas. Utgången returnerar en offentlig boolean som dikterar om godkännande gavs eller avvisades.

Balans av

BalanceOf är en intuitiv funktion som accepterar en enda adressinmatningsparameter (adress tokenOwner) & returnerar en enda offentlig konstant (uint-balans). Den returnerade uintkonstanten, saldot, representerar mängden tokens den förfrågade adressen innehåller – kom ihåg att transaktioner på en blockchain vanligtvis är offentliga, Ethereum är inte annorlunda.

TotalSupply

TotalSupply-funktionen, som du antagligen kan gissa från namnet, är en anonym konstruktörfunktion som bara kördes en gång i det allra första ögonblicket av distributionen till det levande Ethereum-nätverket. Funktionen returnerar ett offentligt konstant totalSupply otilldelat heltal (uint) som fungerar som att tokens totala leverans under resten av kontraktets livstid. Denna totala utbudskonstant definieras vanligtvis på två sätt: hårdkodning av en variabel eller finansiering från en originplånbok.

Överföra

Överföringsfunktionen är kärnfunktionen för alla ERC20-token; det definierar & redskap direkt plånbok-ägare-till-peer överföring av token. Eftersom plånbokägare gör detta samtal krävs bara två parametrar: mottagaradressen & mängden tokens som skickas. Dessa två parametrar initialiseras vanligtvis som (adress till) & (Uint tokens). Överföringsreturvärdet är helt enkelt en boolean som bekräftar om mottagaren (“till” -adressen) mottog de skickade tokens.

TransferFrån

TransferFrom-funktionen möjliggör ett smart kontrakt för att utföra en överföring med de parametrar som skickats på plånbokens ägare. Gör noggrant skillnaden med föregående Transfer-funktion. Den tidigare funktionen tillåts för plånbokägare att direkt skicka tokens till en adress; detta TransferFrån möjliggör en smart kontrakt att skicka tokens för plånboksägarnas räkning, såsom att fylla en beställning på en börs, släppa pengar i tid eller betala våra vinster i ett lyckspel.

De TransferFrån funktionen har tre ingångsparametrar, adressen till plånbokens ägare, adressen till mottagarens plånbok, & antalet skickade tokens. De initialiseras ofta i följande syntax: (adress från, adress till, uint-tokens). Funktionsutgången är exakt densamma som överföringsutgången: en enda offentlig boolean som beskriver transaktionens framgång eller misslyckande.

Sammanfattning

De sex funktioner som beskrivs ovan är de sex kärnfunktionerna som finns i 99% av alla för närvarande levande ERC20-tokens. Med några få undantag (titta på dig Golem) kan Ethereum-utvecklare känna sig säkra att de fullt ut kan förvänta sig dessa kärnfunktioner medan de utvecklar interna kontrakt eller när de interagerar med externa offentliga kontrakt ute i naturen.

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map