Tengo un código de prueba en Remix y he recibido ParseError: expresión primaria esperada. El error ocurre en la consulta de la función, en la definición del evento, en la línea.
ParserError: Expresión primaria esperada. evento itemsListDisplay (bytes32 ítemId, bytes32 ítemDescripción, bytes32 subastaEstado); ^
Mi razón para usar event es mostrar una lista cuando un participante aprobado llama a la función. Cada listado de artículos estaría en una nueva línea.
Cualquier otra sugerencia para mejorar el estilo del código también ayudará.
Gracias. A continuación se muestra el código de prueba.
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;
}
}
Debe definir el registro de eventos fuera de la función con/después de sus variables de estado. Luego emita eventos a medida que ocurren las transacciones.
contract Thing {
event LogSomethingHappened(address sender, uint amount);
function doSomething(uint qty) public returns(bool success) {
LogSomethingHappened(msg.sender, qty);
return true;
}
}
Espero eso ayude.