De basis van Web3- en DApp-ontwikkeling · Les

Een token implementeren

transfer en approve

Les 2 van 413 stappen

Een token implementeren is een gratis De basis van Web3- en DApp-ontwikkeling-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject De basis van Web3- en DApp-ontwikkeling. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.

Een token bouwen

Nu implementeer je de kern van een ERC-20-token vanaf nul. Als je de interne werking begrijpt, kun je echte tokens beter debuggen en controleren, zelfs wanneer je later bibliotheken gebruikt.

We richten ons op de status, transfer en approve.

Kernstatusvariabelen

Een token moet saldi en de totale voorraad bijhouden. Saldi worden opgeslagen in een toewijzing van adres naar hoeveelheid.

<code>contract Token {
    string public name = 'MyToken';
    string public symbol = 'MTK';
    uint8 public decimals = 18;
    uint256 public totalSupply;
    mapping(address => uint256) public balanceOf;
}</code>

De constructor

De constructor maakt een aanvankelijke voorraad aan voor de implementator. We verhogen totalSupply en crediteren het saldo van de maker.

<code>constructor(uint256 initialSupply) {
    totalSupply = initialSupply;
    balanceOf[msg.sender] = initialSupply;
}</code>

De gebeurtenissen

Declareer de twee verplichte gebeurtenissen. We verzenden Transfer bij elke verplaatsing en Approval wanneer een machtiging wordt ingesteld.

<code>event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);</code>

transfer implementeren

De functie transfer verplaatst tokens van de aanroeper naar een ontvanger. De functie moet controleren of de aanroeper voldoende saldo heeft en de gebeurtenis Transfer verzenden.

<code>function transfer(address to, uint256 amount) public returns (bool) {
    require(balanceOf[msg.sender] >= amount, 'insufficient balance');
    balanceOf[msg.sender] -= amount;
    balanceOf[to] += amount;
    emit Transfer(msg.sender, to, amount);
    return true;
}</code>

Bescherming tegen het nuladres

Tokens naar address(0) sturen vernietigt ze feitelijk per ongeluk. Veel implementaties wijzen dit expliciet af.

<code>function transfer(address to, uint256 amount) public returns (bool) {
    require(to != address(0), 'transfer to zero');
    require(balanceOf[msg.sender] >= amount, 'insufficient');
    balanceOf[msg.sender] -= amount;
    balanceOf[to] += amount;
    emit Transfer(msg.sender, to, amount);
    return true;
}</code>

De allowance-toewijzing

Om gedelegeerde overdrachten te ondersteunen voegen we een geneste toewijzing toe: van eigenaar naar uitgever naar goedgekeurde hoeveelheid.

<code>mapping(address => mapping(address => uint256)) public allowance;</code>

approve implementeren

Met de functie approve kan de aanroeper een uitgever machtigen om maximaal een bepaalde hoeveelheid van diens tokens te verplaatsen. De functie legt de machtiging vast en verzendt Approval.

<code>function approve(address spender, uint256 amount) public returns (bool) {
    allowance[msg.sender][spender] = amount;
    emit Approval(msg.sender, spender, amount);
    return true;
}</code>

Veiligheid tegen overloop

Sinds Solidity 0.8 voeren rekenkundige bewerkingen bij overloop en onderloop automatisch een revert uit. De aftrekking in transfer is veilig: bij een te laag saldo volgt een revert, hoewel de expliciete require een duidelijkere foutmelding geeft.

Waarom bool retourneren

De standaard schrijft een bool-retourwaarde voor vanwege compatibiliteit. Bij succes retourneren we true. Bij fouten voeren we een revert uit, wat de moderne conventie is en veiliger dan stilletjes false retourneren.

Alles samenvoegen

Met de status, gebeurtenissen, transfer en approve op hun plaats heb je een werkende fungibele token. De volgende les voegt transferFrom toe om de machtigingsstroom te voltooien.

<code>// state + constructor + events + transfer + approve
// = a minimal working ERC-20</code>

Korte controle

Test je begrip van het implementeren van een token.

Samenvatting

Je hebt de kern van een ERC-20-token geïmplementeerd:

  • Status: name, symbol, decimals, totalSupply, balanceOf-toewijzing
  • De constructor maakt de aanvankelijke voorraad aan voor de implementator
  • transfer controleert het saldo, werkt de status bij en verzendt Transfer
  • approve legt een machtiging vast en verzendt Approval
  • Bescherm tegen het nuladres en vertrouw op de overloopveiligheid van 0.8
Gratis beginnen

Leer De basis van Web3- en DApp-ontwikkeling met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
29
Lessen
105

Veelgestelde vragen

Is de les “Een token implementeren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad De basis van Web3- en DApp-ontwikkeling, waaronder “Een token implementeren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus De basis van Web3- en DApp-ontwikkeling bevat in totaal 4 lessen.

Wat leer ik in “Een token implementeren”?

transfer en approve Je oefent met De basis van Web3- en DApp-ontwikkeling door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met De basis van Web3- en DApp-ontwikkeling te beginnen?

Ervaring vooraf is niet nodig. De basis van Web3- en DApp-ontwikkeling op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Een token implementeren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over De basis van Web3- en DApp-ontwikkeling?

Ja. Elke les over De basis van Web3- en DApp-ontwikkeling bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De ERC-20-standaard
  2. Een token implementeren
  3. Allowances
  4. Minten en burnen
← Terug naar De basis van Web3- en DApp-ontwikkeling