Der erste eigene Token

Published by Mario Oettler on

Sie sollen Ihren eigenen Token ins Leben rufen.

  • Öffnen Sie dazu im Browser die Remix IDE. http://remix.ethereum.org
  • Erstellen Sie einen neuen Smart Contract über einen Klick auf das weiße Kreuz in schwarzem Kreis in der mittleren Spalte der Remix IDE und geben Sie als Namen “ERC20Token.sol” ein.
  • Kopieren Sie sich das Grundgerüst in das Editorfenster.

Das Grundgerüst spiegelt die Funktionen wider, die laut ERC20-Standard implementiert sein müssen. Beachten Sie, dass die Methoden hier noch leer sind und keine Funktion haben. Für die Implementierung der einzelnen Methoden sind die Entwickler verantwortlich.

Sie finden den Smart Contract auch in der Datei contract_s2_05.sol.

pragma solidity ^0.8.21;
contract ERC20Token {
 
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
 
    string public name;
    string public symbol;
    uint public totalSupply;
    mapping(address => uint) public balanceOf;
    mapping(address => mapping (address => uint256)) public allowance;
 
 
    constructor (uint _initialSupply, string memory _name, string memory _symbol) 
    {
 
    }
 
    function transfer(address _to, uint _value) public returns (bool success)
    {
 
    }
 
    function transferFrom(address _from, address _to, uint _value) public returns (bool success)
    {
 
    }
 
    function approve(address _spender, uint _value) public returns (bool success)
    {
 
    }
}

Jetzt erfüllen wir die einzelnen Methoden mit Leben.

Konstruktor

constructor (uint _initialSupply, string memory _name, string memory _symbol) 
{
    totalSupply = _initialSupply;
    name = _name;
    symbol = _symbol;
    balanceOf[msg.sender] = _initialSupply;
}

Transfer-Methode

function transfer(address _to, uint _value) public returns (bool success)
{
    require(balanceOf[msg.sender] >= _value);
    require(balanceOf[_to] + _value > balanceOf[_to]);
    balanceOf[msg.sender] -= _value;
    balanceOf[_to] += _value;
    emit Transfer(msg.sender, _to, _value);
    return true;
}

transferFrom-Methode

function transferFrom(address _from, address _to, uint _value) public returns (bool success)
{
    require(allowance[_from][msg.sender] >= _value);
    require(balanceOf[_from] >= _value);
    require(balanceOf[_to] + _value > balanceOf[_to]);
    allowance[_from][msg.sender] -= _value;
    balanceOf[_from] -= _value;
    balanceOf[_to] += _value;
    emit Transfer(_from, _to, _value);
    return true;
}

approve-Methode

function approve(address _spender, uint _value) public returns (bool success)
{
    allowance[msg.sender][_spender] = _value;
    emit Approval(msg.sender,_spender,_value);
    return true;
}

Den vollständigen ERC20-Contract finden Sie in der Datei contract_s2_06.sol.

  • Kompilieren Sie nun Ihren ERC20 Token.
  • Wenn beim Kompilieren keine Fehler aufgetreten sind, deployen Sie den Smart Contract. Nutzen Sie als Environment zunächst Remix VM.
  • Bevor Sie auf “deploy” klicken, tragen Sie noch die Parameter Ihres Tokens (_initialSupply, _name, _symbol) ein. Klappen Sie dazu die Eingabefelder neben Deploy aus.
  • Probieren Sie Ihren Token lokal in der Remix-IDE aus.
Categories: