Compilador Solidity

Si hace clic en el icono Solidity del panel de iconos, accederá al Compilador de Solidity. La vista predeterminada del Compilador de Solidity muestra la configuración básica. Para abrir el panel de configuración avanzada, haga clic en el botón Configuración avanzada (C. en fig. 1). Para obtener más información sobre las funciones avanzadas, consulte a continuación.

Conceptos básicos del compilador Solidity

Seleccionar un contrato para compilar

Para seleccionar un contrato para compilar, elija un archivo en el Explorador de archivos. O si hay varios archivos abiertos, asegúrese de que el que desea compilar es el archivo activo en el Editor.

Si no hay ningún archivo activo en el editor o aún no se ha compilado ningún archivo, el compilador de Solidity tendrá el siguiente aspecto:

Compilación desencadenante

La compilación se activa cuando:

  • pulse el botón de compilación (D. en la fig. 1 de abajo)

  • utilice el atajo control + s.

  • right click on a file in the File Explorer and select the Compile option

Compilación automática

If the auto compile checkbox (B. in fig. 1 above) is checked, compilation will occur every few seconds (when the file is auto-saved) as well as when another file is selected. If a contract has a lot of dependencies, it can take a while to compile - so you use autocompilation at your discretion.

Versiones de solidez y funcionalidad Remix

La versión del compilador se selecciona en la lista desplegable COMPILADOR (A. en la fig. 1 anterior).

Puede compilar (e implantar) contratos con versiones de Solidity anteriores a la 0.4.12. Sin embargo, los compiladores más antiguos utilizan un AST heredado, que ya no soportamos. En consecuencia, es posible que algunos plugins no funcionen y que algunas funcionalidades - por ejemplo, el resaltado de código fuente en el Editor - sólo funcionen parcialmente.

Utilizar la casilla de selección Contrato

Dado que un archivo Solidity puede incluir varios contratos y que los contratos pueden importar otros contratos, a menudo se compilan varios contratos. Sin embargo, sólo se pueden recuperar los detalles de compilación de 1 contrato a la vez.

Para seleccionar el contrato deseado, utilice la casilla de selección Contrato (F. en fig. 1). Olvidarse de seleccionar el contrato correcto es un error frecuente, por lo que no olvide verificar que el contrato que desea está seleccionado.

Detalles de la compilación y publicación

Utilizando el botón publicar, puede subir su contrato a IPFS o Swarm (sólo los contratos no abstractos pueden publicarse en Swarm).

Al publicar un contrato que importa otros contratos, se publicarán el contrato principal y todos sus contratos importados, cada uno a su propia dirección.

Los datos publicados contienen los metadatos del contrato y el código fuente de solidity.

After either Publish on IPFS or Publish on Swarm is clicked a modal will pop up. This modal contains the contract’s address as well as the addresses of the contracts that it imported and the address of the contract’s metadata.

Cuando se pulsa el botón «Detalles de la compilación» (G. en fig. 1), se abre un modal que muestra información detallada sobre el contrato seleccionado en ese momento.

Si sólo desea obtener el ABI o el Bytecode - pulse el botón correspondiente véase H. en la fig. 1.

Verificación pasiva de contratos

When you publish your metadata to IPFS and deploy your code to the mainnet or a public testnet, the contract verification service Sourcify, will verify your contracts without you needing to do anything.

Compilar y ejecutar el script

El botón Compilar y ejecutar script (E. en fig. 1) sirve para compilar y luego ejecutar inmediatamente un script. Es un ahorro de tiempo para que pueda escribir algo de código, ejecutar automáticamente el script que establece el estado del contrato - lo que le permite comprender rápidamente cómo está funcionando el código. (más sobre Compilar y Ejecutar)

Errores de compilación y advertencias

Los errores de compilación y las advertencias aparecen debajo de la sección de contratos. En cada compilación, la pestaña de análisis estático elabora un informe.

Es importante solucionar los problemas notificados aunque el compilador no se queje. (más información sobre el análisis estático)

Configuraciones avanzadas del compilador

Al hacer clic en Configuraciones avanzadas del compilador se abrirá este panel (M. en la fig. 2 siguiente).

There is a radio button to choose whether to configure the compiler through the interface (N. in fig 2) or to use a JSON file for the configuration (R. in fig 2).

Solidez o YUL

Desde la versión 0.5.7 de Solidity, es posible compilar archivos Yul. Por favor, lea la (documentación de Solidity sobre Yul) que contiene algunos ejemplos de código. Puede utilizar el desplegable de idioma (O. en fig 2) para cambiar de idioma. Esta lista desplegable sólo está disponible para versiones superiores o iguales a 0.5.7.

Seleccione una versión de EVM

La lista desplegable EVM (P. en fig 2) permite compilar código contra un hard fork de Ethereum específico. El compilador por defecto corresponde al hard fork por defecto utilizado por una versión específica.

Para ver el nombre de la bifurcación dura utilizada en la compilación actual, pulse el botón «Detalles de la compilación» y en la sección Metadatos habrá una subsección llamada configuración. Abra la configuración para ver el nombre de la versión de EVM.

Activar la optimización

Según la documentación de Solidity, «el optimizador intenta simplificar las expresiones complicadas, lo que reduce tanto el tamaño del código como el coste de ejecución, es decir, puede reducir el gas necesario para la implementación del contrato, así como para las llamadas externas realizadas al contrato.»

For recent versions of Solidity, it is recommended to enable optimization.

Para obtener más información sobre la optimización, (Q. en la fig. 2) visite la Documentación de Solidity sobre el optimizador.

A la derecha de la casilla Habilitar optimización se encuentra la casilla para introducir el número de ejecuciones de optimización. El valor por defecto es 200.

Se preguntará: «¿Cuál es el número correcto de ejecuciones para mi contrato?». Y los documentos de Solidity lo dicen:

Si desea que el despliegue inicial del contrato sea más barato y que las ejecuciones posteriores de la función sean más caras, ajústelo a –optimize-runs=1. Si espera muchas transacciones y no le importa que el coste de despliegue y el tamaño de la salida sean mayores, establezca –optimize-runs en un número alto.

Para obtener más información sobre las ejecuciones de optimización, visite Solidity docs about Optimizer options.

Archivo JSON para la configuración del compilador

Si selecciona el botón de opción situado junto a Utilizar archivo de configuración, podrá establecer la configuración mediante un archivo JSON (T. en fig. 2). Cuando se cambia a compilar con un archivo de configuración, se crea un archivo de configuración del compilador de ejemplo. Este archivo puede editarse con todas las opciones disponibles.

Al hacer clic en el nombre del archivo de configuración se abrirá en el Editor. Para cambiar el archivo de configuración pulse el botón Cambiar. Si actualiza el cuadro de texto con el nombre de un archivo que no existe, se creará un nuevo archivo con el contenido del archivo predeterminado.

No hay comprobación de errores cuando se utiliza el archivo .json para los ajustes de configuración, así que asegúrese de que su archivo de configuración es correcto.

Utilizar un compilador de Solidity personalizado

Para aquellos que escriban su propio compilador solidity personalizado, pueden importarlo haciendo clic en el botón + (X. en fig 1) para abrir un modal en el que puede introducir la url del compilador que desea cargar.