Implementierung von Ereignissen in Solidity (Remix)

Ich habe einen Testcode auf Remix und habe ParseError: Expected Primary Expression erhalten. Der Fehler tritt in der Funktion Inquiry -- at event definition - line auf.

ParserError: Erwarteter primärer Ausdruck. event itemsListDisplay (bytes32 itemId, bytes32 itemDescription, bytes32 AuctionStatus); ^

Mein Grund für die Verwendung von event ist, eine Auflistung anzuzeigen, wenn die Funktion von einem zugelassenen Teilnehmer aufgerufen wird. Jede Auflistung von Artikeln würde in einer neuen Zeile stehen.

Jeder andere Vorschlag für einen verbesserten Codestil wird ebenfalls hilfreich sein.

Danke. Unten ist der Testcode.

contract Request is MasterContract, 
ApprovedParticipantsContract, ApprovedItemsContract {


    function Enquiry (address _address) returns (bool flag) {

    event itemsListDisplay (bytes32 itemId, bytes32 itemDescription, bytes32 auctionStatus);        


    if (approvedParticipantsList[_address].isValue) {

        uint len = itemsList.keys.length;

        for (uint i = 0; i < len; i++)  {

            bytes32 myItemId = itemsList.keys[i].itemId;
            bytes32 myItemDescription = itemsList.keys[i].itemDescription;
            bytes32 myAuctionStatus = itemsList.keys[i].auctionStatus;

            itemsListDisplay(myItemId, myItemDescription, myAuctionStatus);


        }



        return true;

    }

    return false;

    }

}

Antworten (1)

Sie sollten das Ereignisprotokoll außerhalb der Funktion mit/nach Ihren Zustandsvariablen definieren. Geben Sie dann Ereignisse aus, wenn Transaktionen stattfinden.

contract Thing {

  event LogSomethingHappened(address sender, uint amount);

  function doSomething(uint qty) public returns(bool success) {
    LogSomethingHappened(msg.sender, qty);
    return true;
  }
}

Ich hoffe es hilft.