Warum sollte balanceOf gesetzt werden, anstatt nur öffentliche Variablen in ERC20-Token zu verwenden?

Schönen Tag,

ERC20 spezifiziert die folgenden 2 Funktionen als seine wichtigsten:

function balanceOf(address _owner) constant returns (uint256 balance){}
function transfer(address _to, uint256 _value) returns (bool success){}

Aber die balanceOf-Funktion ist nichts weiter als eine ausgefallene Möglichkeit, auf die Informationen zuzugreifen, die in einem einfachen Mapping-Array gespeichert sind. Warum nicht einfach das Salden-Mapping-Array auf öffentlich setzen und damit fertig sein?

mapping (address=>uint) public balanceOf;

Ich habe das Gefühl, dass mir hier etwas fehlt. Wie immer wird Ihre Hilfe geschätzt.

Warum ist die 'unit256 balance' ein constant returns? Kann sich das ändern oder mache ich etwas falsch?

Antworten (2)

Die Funktion definiert nur eine Möglichkeit, auf das Mapping-Array zuzugreifen, und geht davon aus, dass Sie ihren Modifikator nicht auf öffentlich gesetzt haben.

In Ether-Wallets scheinen beide auf die gleiche Weise zu funktionieren, also kein wirklicher Unterschied, wenn Sie nur Guthaben sehen müssen.

Aus Sicherheitsgründen. Wenn Sie die Variable private haben, können Sie sie hinter Anforderungen sperren. Beispielsweise kann nur der Besitzer eines Tokens die transfer()-Funktion für dieses Token aufrufen.

(Sie können auch ein anderes Konto als „Operator“ Ihrer Token festlegen und diesem „Operator“-Konto die Berechtigung erteilen, die Funktion transfer() für Ihre Token aufzurufen).