Testen Sie benutzerdefinierte ERC20-Token mit MEW

Vor der Frage möchte ich meine Entwicklungsumgebungskonfiguration auflisten:

  • Ich verwende Remix Online Solidity IDE zum Codieren
  • Mein Vertrag läuft auf lokalem PC mit RPC (Web3-Provider-Option in Remix)
  • Ich habe MEW so eingerichtet, dass es auf meinem http:127.0.0.1:8545-Knoten ausgeführt wird

Ich habe es geschafft, meinen ERC20-Token-Vertrag bereitzustellen und ihn der MEW-Liste hinzuzufügen, die den aktuellen Betrag auf diesem Konto anzeigt; obwohl ich im Vertrag 10000000 als Erstausstattung an Token festgelegt habe, zeigt MEW als Gesamtbetrag „0,000 1e-11 RC“ an. Was verpasse ich?

Der Code:

pragma solidity ^0.4.0;

contract UnclearlyToken {

    string public constant name = "Unclearly";
    string public constant symbol = "UC";
    uint8 public constant decimals = 18;
    uint totalAmount = 10000000;

    mapping (address => uint256) public balances;
    mapping(address => mapping (address => uint256)) allowed;

    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);

    function UnclearlyToken() {
        balances[msg.sender] = totalAmount;
    }

    function totalSupply() constant returns(uint) {
        return totalAmount;
    }

    function balanceOf(address _owner) constant returns(uint256) {
        return balances[_owner];
    }

    function transfer(address _to, uint _value) returns (bool success) {
        if(balances[msg.sender] >= _value 
            && _value > 0 
            && balances[_to] + _value > balances[_to]) {

            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);

            return true;
        }
        return false;
    }

    function transferFrom(address _from, address _to, uint _value) returns (bool success) {
        if(balances[_from] >= _value
            && _value > 0 
            && balances[_to] + _value > balances[_to]
            && allowed[_from][msg.sender] >= _value) {

            balances[_from] -= _value;
            balances[_to] += _value;
            Transfer(_from, _to, _value);

            return true;
        }
        return false;
    }

    function approve(address _spender, uint _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);

        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint remaining) {
        return allowed[_owner][_spender];
    }
}

MEW-Seite:

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Ok, sorry für die Frage, es ist ganz einfach. Sie müssen nur die Dezimalstellen Ihres Tokens ändern. Weitere Einzelheiten finden Sie in dieser Diskussion: Float in Solidität nicht zulässig vs. Dezimalstellen, die für einen Token-Vertrag angefordert wurden

Hi. Wenn Sie der Meinung sind, dass Ihre Frage in Zukunft für andere Personen nützlich sein wird, können Sie Ihrer Antwort einige weitere Details hinzufügen, um klarer zu machen, was Sie zur Lösung des Problems unternommen haben? :-)
Sicher, nur eine Minute.