No puedo verificar mi contrato en el sitio etherscan de Rinkeby

Recibo el siguiente error al verificar en el sitio etherscan de RINKEBY:

Error! Unable to verify source code
Exception #1 Occured: ERROR|The Contract solidity compilation has 
  exceeded the maximum timeout/memory limit that we can safely process. 
  Automated source code verification is unavailable for this source code.

Mi contrato es lo suficientemente pequeño como para implementarlo con éxito, pero aparentemente la compilación lleva demasiado tiempo para que Etherscan la verifique. ¿Cuáles son mis opciones? ¿El verificador Rinkeby Etherscan es más limitado o también tendré este problema en la red principal? (eso sería mucho más problemático)

EDITAR: probé el nuevo compilador etherscan beta 2.0 y tiene exactamente el mismo problema.

¿Ha verificado con éxito en otras redes y puede publicar el código del contrato (ya sea aquí o como resumen)?
¿Intentó configurar la optimizationopción noen el formulario de verificación?

Respuestas (4)

Es difícil decir algo sin ver el código que intentaste compilar. Como ya has probado el compilador 2. versión beta, como sugerencia; los compiladores pasan algún tiempo eliminando comentarios, etc. durante el tiempo de compilación como se explica aquí .

¿Se incluyen comentarios con los contratos desplegados y aumentan el gas de despliegue?

No, todo lo que no se necesita para la ejecución se elimina durante la compilación. Esto incluye, entre otros, comentarios, nombres de variables y nombres de tipos.

Aunque el código es pequeño, tener muchos comentarios puede llevar algún tiempo para la compilación. Haber eliminado antes de la compilación podría ahorrar algo de tiempo.

EDITAR : establecer el indicador de optimización en no, también podría funcionar.

El compilador se estaba agotando y la documentación en línea sugirió que truffle optimiza la compilación; sin embargo, seleccioné "no" para la opción optimizada y no ingresé las direcciones de la biblioteca, ¡para encontrarlo compilando con éxito en menos de 30 segundos!

Mirando la página de verificación de etherscan ,

NOTAS
1. Para verificar los Contratos que aceptan argumentos de Constructor, ingrese los Argumentos codificados con ABI en el último cuadro a continuación.
2. Para fines de depuración, si se compila correctamente en Browser Solidity, también debería compilarse correctamente aquí.
3. Los contratos que usan "importaciones" deberán tener el código concatenado en un archivo, ya que no admitimos "importaciones" en archivos separados. Puede intentar usar el solidity-flattener
4 de Blockcat. Hay un tiempo de espera de hasta 30 segundos para cada contrato compilado. Si su contrato demora más tiempo que este, no podremos verificarlo.

Según el punto 4, hay un límite de 30 segundos para la compilación.

Y según lo siguiente, es posible que tenga más suerte con la versión beta del compilador 2.0 .

Sugerencia: consulte el nuevo verificador de contrato de código fuente Beta que admite la opción 'ejecutar' para verificar los contratos implementados por Truffle. Si su contrato usa bibliotecas y no se verifica, también puede intentar usar el verificador de código fuente beta.

En su defecto, la respuesta a esta pregunta puede ser de interés.

He probado el compilador 2.0 :/
¿Está dispuesto a compartir su código para que lo analicemos?

Parece que etherscan tiene un hardware diferente para verificar los contratos de kovan y ropsten. Logré verificar en ropsten pero fallé en kovan con el mismo contrato.