¡Error! No se puede generar Contract ByteCode y ABI

Tengo problemas para verificar mi contrato de token en etherscan.io.

Recibiendo los siguientes errores: Nota: El contrato fue creado durante Txn# Resultado: No coincide con el bytecode de creación de entrada encontrado en esta dirección

¡Error! No se puede generar Contract ByteCode y ABI

Por alguna razón, el final de mis datos de entrada no me da un código de bytes que funcione para usar donde otros lo hacen. Aquí está la transacción que hizo el contrato: 0x776159bbc0f6e624e92a812ee98c1674e67a2ea3

Advertencia(s) del compilador:

myc:1:1: ParserError: Pragma esperado, directiva de importación o definición de contrato/interfaz/biblioteca. [ ^ Se agradece cualquier ayuda, he estado atascado en este punto durante algunos días y completamente despistado.

¡Salud!

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

Respuestas (3)

Agregando a la respuesta de @Harshad.

Estas son cosas que debes revisar:

(1) Versión del compilador como dice @Harshad.

(2) La optimización está habilitada o no. Si está utilizando remix, lo encontrará en la sección de compilación.

(3) Si está utilizando alguna biblioteca (que no parece que lo esté, según su código. Pero solo para confirmar dos veces), entonces también debe ingresar esas bibliotecas.

(4) Por último, el código de solidez debe ser el código exacto que utilizó para compilar;)

¡Buena suerte!

Prueba esto.

Verifique la versión de su compilador en el paso "verificar y publicar", si es la versión correcta del compilador.

Puedes comprobarlo ejecutando:

versión de trufa

Fuente

En mi caso, la salida [versión] fue:

Trufa v4.1.8 (núcleo: 4.1.8)

Solidez v0.4.23 (solc-js)

Entonces, la versión del compilador que seleccioné de la lista fue:

v0.4.23+commit.124ca40d

Si no tienes trufa o la desconoces, puedes consultar este enlace .

¡Espero que esto ayude a alguien!

Mire Contract-name .json en la carpeta build/contracts y encuentre pragma solidez en el contenido del archivo. Eso le muestra la versión de compilación correcta. Si obtiene la versión de compilación, verifique si la versión de compilación de la página de publicación es igual a esa.ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Espero sinceramente que esto le sea útil.