Blockchain-smart contracts med Solidity · Lektion

ERC-20-standarden for fungible tokens

Forstå specifikationerne og funktionaliteten i ERC-20-standarden til oprettelse af ombyttelige tokens.

Lektion 1 af 412 trin

ERC-20-standarden for fungible tokens er en gratis Blockchain-smart contracts med Solidity-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Blockchain-smart contracts med Solidity, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Blockchain-smart contracts med Solidity-kurset indeholder 4 lektioner i alt.

Introduktion til blockchain-tokens

Velkommen til blockchain-tokenenes verden! Ud over kryptovalutaer som Ether rummer blockchains mange andre digitale aktiver.

Disse aktiver, der ofte kaldes »tokens«, kan repræsentere alt fra digital valuta til ejerskab af fysiske genstande eller endda stemmerettigheder i en decentraliseret organisation.

Fungibilitet: Ombyttelige aktiver

Et centralt begreb for tokens er fungibilitet. Hvad betyder det?

  • Fungibel: Hver enhed er identisk med og kan ombyttes med en anden. Som en dollarseddel – en 1-dollarseddel er identisk med enhver anden 1-dollarseddel.
  • Ikke-fungibel: Hver enhed er unik og kan ikke erstattes af en anden. Som et kunstværk eller et bestemt hus.

ERC-20-tokens er fungible, hvilket betyder, at alle tokens af samme type har samme værdi.

Mød ERC-20-standarden

ERC-20 (Ethereum Request for Comment 20) er en teknisk standard for fungible tokens på Ethereum-blockchainen.

Den definerer et fælles regelsæt, som alle kompatible tokens skal følge. Det sikrer, at de kan interagere problemfrit med wallets, børser og andre smart contracts.

Interoperabilitet gennem standarder

Hvorfor er en standard så vigtig?

  • Kompatibilitet: Alle wallets, der understøtter ERC-20, kan håndtere alle ERC-20-tokens.
  • Vækst i økosystemet: Decentraliserede applikationer (dApps) kan nemt integrere forskellige tokens.
  • Forudsigelig adfærd: Udviklere ved præcis, hvordan et ERC-20-token opfører sig, hvilket gør integrationen sikrere og hurtigere.

Kernefunktion: `totalSupply()`

Funktionen totalSupply() returnerer det samlede antal tokens, der findes. Det er en offentlig view-funktion, hvilket betyder, at den ikke ændrer blockchainens tilstand, og at det ikke koster gas at kalde den.

Prøv at køre denne enkle kontrakt for at se, hvordan totalSupply kan repræsenteres:

pragma solidity ^0.8.0;

contract SimpleTokenInfo {
    uint256 public totalTokens = 1000; // Example supply

    function totalSupply() public view returns (uint256) {
        return totalTokens;
    }
}

Kernefunktion: `balanceOf()`

Funktionen balanceOf(address account) returnerer tokenbeholdningen på en bestemt adresse. Den hjælper dig med at kontrollere, hvor mange tokens en bruger ejer.

Lad os føje balanceOf til vores eksempel. Den, der deployer kontrakten, starter med alle tokens.

pragma solidity ^0.8.0;

contract SimpleTokenInfo {
    uint256 public totalTokens = 1000;
    mapping(address => uint256) public balances;

    constructor() {
        balances[msg.sender] = totalTokens; // Assign all to deployer
    }

    function totalSupply() public view returns (uint256) {
        return totalTokens;
    }

    function balanceOf(address account) public view returns (uint256) {
        return balances[account];
    }
}

Kernefunktion: `transfer()`

Funktionen transfer(address recipient, uint256 amount) giver afsenderen af transaktionen mulighed for at sende tokens direkte til en anden adresse.

Det er den mest almindelige måde at flytte tokens mellem brugere på.

pragma solidity ^0.8.0;

contract SimpleTokenInfo {
    uint256 public totalTokens = 1000;
    mapping(address => uint256) public balances;

    constructor() {
        balances[msg.sender] = totalTokens;
    }

    function totalSupply() public view returns (uint256) {
        return totalTokens;
    }

    function balanceOf(address account) public view returns (uint256) {
        return balances[account];
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        require(balances[msg.sender] >= amount, "Insufficient balance");
        balances[msg.sender] -= amount;
        balances[recipient] += amount;
        return true;
    }
}

Delegérbare overførsler: `approve()` og `allowance()`

ERC-20 understøtter også delegerede overførsler, hvor én bruger (den ejer) giver en anden adresse (den autoriserede bruger) lov til at flytte tokens på sine vegne.

  • approve(address spender, uint256 amount): Ejeren giver en autoriseret bruger tilladelse til at hæve et bestemt amount tokens.
  • allowance(address owner, address spender): Returnerer det antal tokens, som den spender i øjeblikket har tilladelse til at hæve fra owner.

Udførelse af delegerede overførsler: `transferFrom()`

Når et kald til approve() er foretaget, kan den udpegede autoriserede bruger bruge funktionen transferFrom().

transferFrom(address sender, address recipient, uint256 amount): Giver en autoriseret bruger mulighed for at overføre amount tokens fra senders beholdning til recipient, hvis den autoriserede bruger har tilstrækkelig allowance fra sender.

Sporing af handlinger: ERC-20-hændelser

ERC-20 definerer to standardhændelser: Transfer og Approval. Disse hændelser er afgørende for eksterne applikationer (som wallets eller blockchain-udforskere), der skal spore tokenbevægelser og godkendelser uden at læse hele blockchainens tilstand.

De udsender logge, som effektivt kan indekseres og forespørges.

pragma solidity ^0.8.0;

contract EventExample {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    function demonstrateTransferEvent(address _to, uint256 _value) public {
        // Imagine actual transfer logic here
        emit Transfer(msg.sender, _to, _value);
    }

    function demonstrateApprovalEvent(address _spender, uint256 _value) public {
        // Imagine actual approval logic here
        emit Approval(msg.sender, _spender, _value);
    }
}

Test din forståelse

ERC-20-standarden beskriver specifikke funktioner, som alle kompatible tokens skal implementere. Det er afgørende at forstå dem, hvis du skal arbejde med tokens.

ERC-20: Din skabelon til tokens

Du har nu lært om ERC-20-standarden for fungible tokens! Den er skabelonen for de fleste ombyttelige tokens på Ethereum.

  • Den definerer kernefunktioner som totalSupply(), balanceOf() og transfer().
  • Den muliggør delegerede overførsler med approve(), allowance() og transferFrom().
  • Standardhændelserne Transfer og Approval hjælper med at spore tokenaktivitet.

Denne standard sikrer, at alle ERC-20-tokens er kompatible, hvilket gør Ethereums økosystem robust og nemt at navigere i. Nu går vi videre til at implementere dit eget ERC-20-token!

Gratis at komme i gang

Lær Blockchain-smart contracts med Solidity med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “ERC-20-standarden for fungible tokens” gratis?

Ja — hele teksten til “ERC-20-standarden for fungible tokens” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Blockchain-smart contracts med Solidity-kurset, skal du opgradere til CoddyKit PRO. Blockchain-smart contracts med Solidity-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “ERC-20-standarden for fungible tokens”?

Forstå specifikationerne og funktionaliteten i ERC-20-standarden til oprettelse af ombyttelige tokens. Du øver dig i Blockchain-smart contracts med Solidity med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Blockchain-smart contracts med Solidity?

Der kræves ingen tidligere erfaring. Blockchain-smart contracts med Solidity på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “ERC-20-standarden for fungible tokens”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Blockchain-smart contracts med Solidity-lektion?

Ja. Alle Blockchain-smart contracts med Solidity-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. ERC-20-standarden for fungible tokens
  2. Implementering af en ERC-20-token
  3. ERC-721 non-fungible tokens (NFT'er)
  4. ERC-1155-standarden for multi-tokens
← Tilbage til Blockchain-smart contracts med Solidity