Ремикс - Solidity IDE - ParserError

Не могу составить "Контрактный Аукцион". Получил эту ошибку для разных методов.

//Miscellaneous methods: Below methods are used to assist Grading. Please DONOT CHANGE THEM
function getPersonDetails(uint id) public constant returns(uint,uint,address){
    return (bidders[id].remainingTokens,bidders[id].personId,bidders[id].addr); 
}

https://i.stack.imgur.com/igtp1.png

РЕДАКТИРОВАТЬ

Полный код:

pragma solidity ^0.4.17;

contract Auction {
    // Data
    //Structure to hold details of the item
    struct Item { 
        uint itemId;          // id of the item 
        uint[] itemTokens;    //tokens bid in favor of the item
    }

    //Structure to hold the details of a persons
    struct Person { 
        uint remainingTokens; //tokens remaining with bidder
        uint personId;        //it serves as tokenId as well
        address addr;         //address of the bidder
    }

    mapping(address => Person) tokenDetails; //address to person
    Person [4] bidders;//Array containing 4 person objects

    Item [3] public items;       //Array containing 3 item objects 
    address[3] public winners;   //Array for address of winners 
    address public beneficiary;  //owner of the smart contract
    uint bidderCount=0;          //counter

    //functions
    function Auction() public payable{                     //constructor
        beneficiary = msg.sender;                          //Part 1 Task 1 – 1 line
        uint[] memory emptyArray; 
        items[0] = Item({itemId:0,itemTokens:emptyArray});
        items[1] = Item({itemId:1,itemTokens:emptyArray}); //Part 1 Task 2 – line 1
        items[2] = Item({itemId:2,itemTokens:emptyArray}); //Part 1 Task 2 – line 2
    }

    function register() public payable{
        bidders[bidderCount].personId = bidderCount;
        bidders[bidderCount].addr = addr;                  //Part 1 Task 3 – 1 line
        bidders[bidderCount].remainingTokens = 5;          // only 5 tokens
        tokenDetails[msg.sender]=bidders[bidderCount];
        bidderCount++; 
    }

    function bid(uint _itemId, uint _count) public payable{
        if (tokenDetails[msg.sender].remainingTokens < _count) return; //Part 1 Task 4 – line 1
        if (_itemId > 2) return;                                       //Part 1 Task 4 – line 2
        (tokenDetails[msg.sender].remainingTokens - _count);           //Part 1 Task 5 – 1 line
        bidders[tokenDetails[msg.sender].personId].remainingTokens= tokenDetails[msg.sender].remainingTokens; //updating the same balance in bidders map. 
        Item storage bidItem = items[_itemId]; 
        for(uint i=0; i<_count;i++) { 
            bidItem.itemTokens.push(tokenDetails[msg.sender].personId); 
        }
    }

    function revealWinners() public {
         for (uint id = 0; id < 3; id++) { 
             Item storage currentItem=items[id]; 
             If (currentItem.itemTokens.length != 0);
                 uint randomIndex = (block.number / currentItem.itemTokens.length)% currentItem.itemTokens.length; 
                 uint winnerId = currentItem.itemTokens[randomIndex];
                 return winnerId;                                      //Part 1 Task 6 – 1 line
            }
        }
    }

    //Miscellaneous methods: Below methods are used to assist Grading. Please DONOT CHANGE THEM
    function getPersonDetails(uint id) public constant returns(uint,uint,address){
      return (bidders[id].remainingTokens,bidders[id].personId,bidders[id].addr); 
    }
}
Пожалуйста, поделитесь остальной частью кода. Проблема, вероятно, заключается в дополнительной фигурной скобке где-то над этим.
Хотел бы сделать это, но не могу добавить код, потому что разрешено больше максимального количества символов. Можно ли это сделать по почте?
Может попробовать pastebin.com ?
Я создал учетную запись "DieterNerge". Но как вы получаете это оттуда?
Сообщение создано!
Никто не сможет его найти, если вы не дадите ссылку на код.
Вся понятно! Ссылка: pastebin.com/Zn8vj84m
Вам нужно сделать вставку общедоступной.
Я создал новый - public. pastebin.com/zxFRQgm3
Я добавил код к вашему вопросу.

Ответы (1)

Эта строка:

If (currentItem.itemTokens.length != 0);

должно быть:

if (currentItem.itemTokens.length != 0) {

(строчные буквы iи ifфигурная скобка вместо точки с запятой)

Могу я задать следующий вопрос? Компиляция была в порядке, но я получил предупреждения reg. газ, и поэтому я не могу запустить его. Я создал новый pastebin со всеми комментариями из курса. pastebin.com/tDMnvafT Заранее спасибо!
Все строки, которые я редактировал, помечены //Часть 1 - Задача n - Строка n
Пожалуйста, создайте новый вопрос.