Solidity

在 Solidity 中實現事件(混音)

  • September 23, 2017

我有一個關於 Remix 的測試程式碼,並且得到了 ParseError: Expected Primary Expression。錯誤發生在函式查詢 - 在事件定義 - 行。

ParserError:預期的主要表達式。事件 itemsListDisplay (bytes32 itemId, bytes32 itemDescription, bytes32uctionStatus); ^

我使用事件的原因是在批准的參與者呼叫該函式時顯示一個列表。每個項目列表都將在一個新行中。

任何其他改程序式碼風格的建議也會有所幫助。

謝謝。下面是測試程式碼。

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;
 }
}

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/26974