У меня есть тестовый код в Remix, и я получаю ParseError: Expected Primary Expression. Ошибка происходит в функции Inquiry -- при определении события -- строка.
ParserError: ожидаемое основное выражение. событие itemsListDisplay (itemId bytes32, itemDescription bytes32, аукционный статус bytes32); ^
Моей причиной использования события является отображение списка, когда функция вызывается утвержденным участником. Каждый список элементов будет в новой строке.
Любое другое предложение по улучшению стиля кода также поможет.
Спасибо. Ниже приведен тестовый код.
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;
}
}
Вы должны определить журнал событий вне функции с/после ваших переменных состояния. Затем генерируйте события по мере выполнения транзакций.
contract Thing {
event LogSomethingHappened(address sender, uint amount);
function doSomething(uint qty) public returns(bool success) {
LogSomethingHappened(msg.sender, qty);
return true;
}
}
Надеюсь, поможет.