Minting og burning
Styring af forsyningen
Minting og burning er en gratis Grundlæggende udvikling af Web3- og DApp-programmer-lektion på CoddyKit. Dette er lektion 4 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.
Håndtering af forsyningen
Minting opretter nye tokens, og burning ødelægger dem. Tilsammen lader de en tokens totalSupply vokse eller falde over tid.
Disse handlinger er ikke en del af den centrale ERC-20-grænseflade, men de er meget almindelige udvidelser.
Hvad minting gør
Minting øger totalSupply og krediterer nye tokens på en modtagers saldo. Det er sådan, tokens kommer i omløb – ved deployment, som belønninger eller efter behov.
Implementering af mint
En mint-funktion føjer til både totalSupply og modtagerens saldo og udsender derefter en Transfer-hændelse fra nuladressen.
<code>function _mint(address to, uint256 amount) internal {
require(to != address(0), 'mint to zero');
totalSupply += amount;
balanceOf[to] += amount;
emit Transfer(address(0), to, amount);
}</code>Mint udsendes fra nul
Efter konvention logges en mint som en Transfer fra address(0). Wallets og indekseringstjenester fortolker en overførsel fra nuladressen som oprettelse af nye tokens.
<code>emit Transfer(address(0), to, amount); // signals minting</code>Hvad burning gør
Burning reducerer totalSupply og trækker fra en ejers saldo, så tokens permanent fjernes fra omløb. Det bruges til deflationære mekanismer, indløsninger og tilbagekøb.
Implementering af burn
En burn-funktion kontrollerer ejerens saldo, formindsker den og totalSupply og udsender derefter en Transfer til nuladressen.
<code>function _burn(address from, uint256 amount) internal {
require(balanceOf[from] >= amount, 'burn exceeds balance');
balanceOf[from] -= amount;
totalSupply -= amount;
emit Transfer(from, address(0), amount);
}</code>Burn udsendes til nul
Symmetrisk logges en burn som en Transfer til address(0). Tokens, der sendes til nuladressen, kan ikke gendannes, hvilket netop er hensigten.
<code>emit Transfer(from, address(0), amount); // signals burning</code>Adgangskontrol ved minting
Minting skal være begrænset – en åben mint-funktion lader alle oprette et ubegrænset antal tokens, hvilket ødelægger værdien. Beskyt den med en ejer- eller minterrolle.
<code>address public owner;
modifier onlyOwner() { require(msg.sender == owner, 'not owner'); _; }
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}</code>Burning af dine egne tokens
Indehavere får normalt lov til frit at burne deres egne tokens. En offentlig burn burner ganske enkelt fra msg.sender.
<code>function burn(uint256 amount) public {
_burn(msg.sender, amount);
}</code>Begrænset udbud
For at garantere knaphed kan et token håndhæve et maksimalt udbud ved at kontrollere en grænse før minting.
<code>uint256 public immutable cap;
function mint(address to, uint256 amount) public onlyOwner {
require(totalSupply + amount <= cap, 'cap exceeded');
_mint(to, amount);
}</code>Burn fra allowance
Ligesom transferFrom lader en burnFrom en godkendt spender burne en anden kontos tokens, mens allowance først reduceres.
<code>function burnFrom(address from, uint256 amount) public {
require(allowance[from][msg.sender] >= amount, 'allowance');
allowance[from][msg.sender] -= amount;
_burn(from, amount);
}</code>Hurtigt tjek
Test din forståelse af minting og burning.
Opsummering
Du har lært om styring af udbuddet:
- Mint øger totalSupply, krediterer en saldo og udsender Transfer fra address(0)
- Burn reducerer totalSupply, debiterer en saldo og udsender Transfer til address(0)
- Minting skal være adgangskontrolleret; indehavere kan normalt burne deres egne tokens
- Grænser håndhæver et maksimalt udbud; burnFrom bruger allowances
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 “Minting og burning” gratis?
Ja — alle 3 lektioner i læringssporet Grundlæggende udvikling af Web3- og DApp-programmer, inklusive “Minting og burning”, 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 “Minting og burning”?
Styring af forsyningen 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 4 af 4.
Hvor lang tid tager lektionen “Minting og burning”?
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
- ERC-20-standarden
- Implementering af en token
- Allowances
- Minting og burning