Ошибка! Не удалось сгенерировать байт-код контракта и ABI

Возникли проблемы с проверкой контракта с токеном на etherscan.io.

Получение следующих ошибок: Примечание: Контракт был создан во время Txn# Результат: Не соответствует байт-коду создания ввода, найденному по этому адресу.

Ошибка! Не удалось сгенерировать байт-код контракта и ABI

По какой-то причине конец моих входных данных не дает мне рабочего байт-кода для использования там, где это делают другие. Вот транзакция, которая заключила контракт: 0x776159bbc0f6e624e92a812ee98c1674e67a2ea3.

Предупреждения компилятора:

myc:1:1: ParserError: ожидаемая прагма, директива импорта или определение контракта/интерфейса/библиотеки. [ ^ Любая помощь приветствуется, я застрял на этом этапе несколько дней и совершенно не в курсе.

Ваше здоровье!

pragma solidity ^0.4.0;
contract Ballot {

    struct Voter {
        uint weight;
        bool voted;
        uint8 vote;
        address delegate;
    }
    struct Proposal {
        uint voteCount;
    }

    address chairperson;
    mapping(address => Voter) voters;
    Proposal[] proposals;

    /// Create a new ballot with $(_numProposals) different proposals.
    function Ballot(uint8 _numProposals) public {
        chairperson = msg.sender;
        voters[chairperson].weight = 1;
        proposals.length = _numProposals;
    }

    /// Give $(toVoter) the right to vote on this ballot.
    /// May only be called by $(chairperson).
    function giveRightToVote(address toVoter) public {
        if (msg.sender != chairperson || voters[toVoter].voted) return;
        voters[toVoter].weight = 1;
    }

    /// Delegate your vote to the voter $(to).
    function delegate(address to) public {
        Voter storage sender = voters[msg.sender]; // assigns reference
        if (sender.voted) return;
        while (voters[to].delegate != address(0) && voters[to].delegate != msg.sender)
            to = voters[to].delegate;
        if (to == msg.sender) return;
        sender.voted = true;
        sender.delegate = to;
        Voter storage delegateTo = voters[to];
        if (delegateTo.voted)
            proposals[delegateTo.vote].voteCount += sender.weight;
        else
            delegateTo.weight += sender.weight;
    }

    /// Give a single vote to proposal $(toProposal).
    function vote(uint8 toProposal) public {
        Voter storage sender = voters[msg.sender];
        if (sender.voted || toProposal >= proposals.length) return;
        sender.voted = true;
        sender.vote = toProposal;
        proposals[toProposal].voteCount += sender.weight;
    }

    function winningProposal() public constant returns (uint8 _winningProposal) {
        uint256 winningVoteCount = 0;
        for (uint8 prop = 0; prop < proposals.length; prop++)
            if (proposals[prop].voteCount > winningVoteCount) {
                winningVoteCount = proposals[prop].voteCount;
                _winningProposal = prop;
            }
    }
}

Ответы (3)

Добавление к ответу @Harshad.

Вот что вы должны проверить:

(1) Версия компилятора, как говорит @Harshad.

(2) Оптимизация включена или нет. Если вы используете ремикс, то вы найдете его в разделе компиляции.

(3) Если вы используете какие-либо библиотеки (из вашего кода это не похоже на вас. Но просто для двойного подтверждения), вам также следует ввести эти библиотеки.

(4) Наконец, код солидности должен быть именно тем кодом, который вы использовали для компиляции;)

Удачи!

Попробуй это.

Проверьте версию компилятора на этапе "проверить и опубликовать", если это правильная версия компилятора.

Вы можете проверить это, запустив:

трюфельная версия

Источник

В моем случае вывод [версия] был:

Трюфель v4.1.8 (ядро: 4.1.8)

Solidity v0.4.23 (solc-js)

Итак, версия компилятора, которую я выбрал из списка, была:

v0.4.23+коммит.124ca40d

Если у вас нет трюфеля или вы не знаете о нем, вы можете перейти по этой ссылке .

Надеюсь, это поможет кому-то!

Пожалуйста, посмотрите на Contract-name .json в папке build/contracts и найдите прагму в содержимом файла. Это показывает вам правильную версию компиляции. Если вы получаете версию компиляции, проверьте, соответствует ли версия компиляции страницы публикации этой версии.введите описание изображения здесь

введите описание изображения здесь

Искренне надеемся, что это будет полезно для вас.