Grundlæggende udvikling af Web3- og DApp-programmer · Lektion

Hvorfor OpenZeppelin

Gennemprøvet kode

Lektion 1 af 413 trin

Hvorfor OpenZeppelin er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende udvikling af Web3- og DApp-programmer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

Hvad er OpenZeppelin

OpenZeppelin Contracts er et bibliotek med sikre, genanvendelige byggesten til smartkontrakter i Solidity.

  • Implementerer almindelige standarder (ERC-20, ERC-721, ERC-1155).
  • Leverer moduler til adgangskontrol, sikkerhed og hjælpefunktioner.
  • Er revideret og bruges bredt i produktionsprotokoller.

Hvorfor ikke skrive det selv

Det er risikabelt at genimplementere tokenstandarder manuelt:

  • Små fejl i aritmetik eller godkendelser kan tømme midler.
  • Standarder har særlige tilfælde, som er lette at overse.
  • Tilpasset kode er hverken revideret eller testet af fællesskabet.

Med genbrug af gennemprøvet kode kan du fokusere på din særlige logik.

Installation af biblioteket

Tilføj OpenZeppelin Contracts som en afhængighed:

npm install @openzeppelin/contracts

Det installeres i node_modules, og Hardhat finder automatisk importer derfra.

npm install @openzeppelin/contracts

Import af kontrakter

Importér de moduler, du har brug for, via deres pakkesti:

// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

Stien afspejler bibliotekets mappestruktur (token, access, security, utils).

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

Nedarvning af en standard

Du bygger din kontrakt ved at nedarve fra en base. En ERC-20-token på bare få linjer:

contract MyToken is ERC20 { constructor() ERC20("MyToken", "MTK") { _mint(msg.sender, 1000000 * 10 ** decimals()); } }

Al logik for overførsler, godkendelser og saldi nedarves.

contract MyToken is ERC20 {
    constructor() ERC20("MyToken", "MTK") {
        _mint(msg.sender, 1000000 * 10 ** decimals());
    }
}

Tilsidesættelse af funktionalitet

Du kan tilpasse nedarvede funktioner ved at tilsidesætte dem og stadig kalde den overordnede funktion med super:

function transfer(address to, uint256 amount) public override returns (bool) { require(to != address(0), "No zero address"); return super.transfer(to, amount); }
function transfer(address to, uint256 amount)
    public override returns (bool) {
    require(to != address(0), "No zero address");
    return super.transfer(to, amount);
}

Modulkategorierne

OpenZeppelin er opdelt i områder:

  • token/ — implementeringer af ERC-20, ERC-721 og ERC-1155.
  • access/ — Ownable, AccessControl.
  • security/ — ReentrancyGuard, Pausable.
  • utils/ — hjælpefunktioner til matematik, tekststrenge og kryptografi.

Guiden

OpenZeppelin tilbyder en webbaseret Contracts Wizard, der genererer en startkontrakt ud fra afkrydsningsfelter — vælg standarden, slå minting, pausering eller adgangskontrol til, og kopiér koden.

Det er en god måde at oprette en korrekt base på, før du tilpasser den.

Revideret og versionsstyret

OpenZeppelin-udgivelser er reviderede og følger semantisk versionsstyring. Lås en version i package.json, så en større opgradering ikke ændrer funktionaliteten ubemærket:

"@openzeppelin/contracts": "^5.0.0"

Læs migreringsvejledningen, før du opgraderer til en ny hovedversion.

"@openzeppelin/contracts": "^5.0.0"

Ingen mirakelkur

OpenZeppelin sikrer byggestenene, men din egen logik skal stadig gennemgås:

  • Sikkert skrevet nedarvet kode gør ikke dine tilpassede funktioner sikre.
  • Forkert konfiguration (forkerte roller eller manglende kontroller) kan stadig skabe sikkerhedshuller.

Test altid, og få en sikkerhedsrevision af kontrakter med store værdier.

Contracts sammenlignet med Contracts-Upgradeable

OpenZeppelin leverer to pakker:

  • @openzeppelin/contracts — standardkontrakter med normale konstruktører.
  • @openzeppelin/contracts-upgradeable — de samme moduler tilpasset proxyer, der bruger initialiseringsfunktioner.

Vælg kun den opgraderbare variant, hvis du faktisk implementerer bag en proxy.

Hurtig kontrol

Test din forståelse af, hvorfor teams bruger OpenZeppelin.

Opsummering

Du har lært, hvorfor OpenZeppelin er standardbiblioteket til Solidity.

  • Det tilbyder reviderede, genanvendelige implementeringer af tokenstandarder og sikkerhedsmoduler.
  • Installér med npm, og nedarv basiskontrakter som ERC20.
  • Tilsidesæt funktioner med super for at tilpasse funktionaliteten.
  • Modulerne dækker token, adgang, sikkerhed og hjælpefunktioner, og guiden opretter grundlaget for kode.
  • Lås versioner, og test stadig din egen logik — det er ingen mirakelkur.
Gratis at komme i gang

Lær Grundlæggende udvikling af Web3- og DApp-programmer 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
29
Lektioner
105

Ofte stillede spørgsmål

Er lektionen “Hvorfor OpenZeppelin” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “Hvorfor OpenZeppelin”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende udvikling af Web3- og DApp-programmer-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Hvorfor OpenZeppelin”?

Gennemprøvet kode Du øver dig i Grundlæggende udvikling af Web3- og DApp-programmer 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å Grundlæggende udvikling af Web3- og DApp-programmer?

Der kræves ingen tidligere erfaring. Grundlæggende udvikling af Web3- og DApp-programmer 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 “Hvorfor OpenZeppelin”?

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 Grundlæggende udvikling af Web3- og DApp-programmer-lektion?

Ja. Alle Grundlæggende udvikling af Web3- og DApp-programmer-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. Hvorfor OpenZeppelin
  2. Adgangskontrol
  3. Tokenudvidelser
  4. Opgraderbare kontrakter
← Tilbage til Grundlæggende udvikling af Web3- og DApp-programmer