Unterschied zwischen /* und /**? (Verträge kommentieren)

In einigen Verträgen habe ich Kommentare gesehen, die mit "/*" und "/**" gemacht wurden. Für mich wäre die einzige Änderung in der IDE wie Remix, dass die Farbe von grün (/*) nach blau (/**) wechselt. Ich mochte bisher das "/**" mehr, aber jetzt habe ich einen Fehler bekommen und verstehe nicht, was das "/**" macht. Folgender Code:

/**
 * @event Transfers token
 */
event Transfer(address indexed from, address indexed to, uint256 value);

Gibt mir

DocstringParsingError: Doc-Tag @event für Funktionen nicht gültig.



aber "@event" durch "@dev" ersetzen

/**
 * @dev Transfers token
 */
event Transfer(address indexed from, address indexed to, uint256 value);

Funktioniert und verwendet @event

über fast allem anderen

/**
 * @event Transfers token
 */
public uint anynumber;

Funktioniert auch.

So wie ich es verstehe, ist in "/**" mehr als nur ein Kommentar. Was ist das und warum funktioniert "@event" nicht über einem Event, auch wenn es nur ein Kommentar ist?

Antworten (1)

Es ist das Ethereum Natural Specification Format .

Die Dokumentation wird über der Funktion nach der Doxygen-Notation eingefügt, entweder in einer oder mehreren Zeilen, beginnend mit /// oder einem mehrzeiligen Kommentar, beginnend mit /** und endend mit */.

In der Spezifikation @devist ein vorhandenes Tag und @eventnicht definiert.

Oh toll, danke! Hätte nicht gedacht, dass es mehr Funktionen als nur Kommentare hat. Schade, dass ich keine Kommentare mehr in Blau machen kann, ohne mehr Funktionen zu haben, als ich wollte :D.