ERC20-Token und wie man sie analysiert

Dieser Vertrag hat ERC20-Token namens VSL ausgegeben. Der Gesamtvorrat soll 33.390.496,03337560002666059 betragen, aber wenn Sie den Vertrag überprüfen, wird dieser Wert als uint256 gespeichert, was bedeutet, dass sein Wert 33390496033375600026660590 beträgt. Wie konvertieren Sie einen uint256, um den korrekten ausgegebenen Betrag zu erhalten?

Antworten (4)

Beim Erstellen eines Tokens gibt der Ersteller des Tokens die Anzahl der Nachkommastellen an, die er für seinen Token benötigt. Da Ethereum Dezimalzahlen nicht vollständig unterstützt, definieren die vom Kontaktersteller definierten Dezimalstellen die kleinste Einheit des Tokens. Wenn beispielsweise die Dezimalstelle für Token sagt, ABC Coin ist 2, bedeutet dies, dass die kleinste Einheit von ABC Token 0,01 ist. Um also jemandem 1 ABC-Coin zu schicken, müssen Sie ihm/ihr 100 (1*Anzahl Dezimalstellen) ABC-Tokens schicken.

Sprechen wir jetzt über Ihren Fall von VSL Token. Die Dezimaleinheiten des VSL-Tokens sind 18. Wenn also das Gesamtangebot ist 33390496033375600026660590, dann bedeutet dies, dass das tatsächliche Angebot 33390496.03337560002666059( 33390496033375600026660590/10^18 ) ist.

Teilen Sie es durch 1e18. Hätte vor dem Posten dieser Frage mehr lesen sollen.

Beachten Sie, dass verschiedene Token unterschiedliche Anzahlen von Dezimalstellen zwischen 1e0 und 1e18 verwenden können.

Beachten Sie, dass Solidity keine Unterstützung für Fließkommazahlen bietet, sodass alles in ganzen Zahlen ausgedrückt wird. Für Token müssten Sie die angegebene Zahl mit der Dezimalvariablen multiplizieren oder dividieren, die der Token angegeben hat.

Eine ausführliche, von mir verfasste Dokumentation gibt es hier .

Bitte geben Sie einen Teil des von Ihnen bereitgestellten Links als Text an. Nur der Link wird nicht als gute Antwort angesehen, da der Link in Zukunft möglicherweise unterbrochen wird.
Da GitHub von Microsoft gekauft wird, sehe ich nicht, wie der Link in naher Zukunft unterbrochen werden könnte. :p