Solidity para principiantes ¿Cómo programar mi primer contrato inteligente?

Escrito por
Yolanda López
Yolanda López
Publicado el
24/2/2023 11:12
Inicio
»
Desarrollo Blockchain
»
Solidity para principiantes ¿Cómo programar mi primer contrato inteligente?

En este artículo vamos a enseñarte a programar un contrato inteligente en el lenguaje de programación más utilizado a día de hoy, que es Solidity. Y lo mejor, ¡es que no necesitas instalar nada! Puedes hacerlo directamente desde tu navegador.

Solidity es un lenguaje de programación orientado a objetos que se creó para la blockchain de Ethereum, y que está basado en lenguajes como JavaScript o Python. Así que si ya sabes estos lenguajes, Solidity te parecerá muy muy sencillo.

Sí, por el contrario, eres completamente principiante, no tienes ni idea sobre programación, ¡NO TE PREOCUPES! Este tutorial está pensado justamente para ti.  Es ser supersencillo, y lo único que vas a necesitar para hacerlo es tu ordenador y conexión a internet.

Solidity es un lenguaje que sirve para programar contratos inteligentes o smart contracts, así que antes de empezar es importante saber qué es y para qué sirve un contrato inteligente.


Una vez sabemos esto, vamos a ponernos manos a la obra.

En primer lugar, tendrás que iniciar tu navegador y acceder al siguiente link: https://remix-project.org/

Verás algo como esto.


Deberás pulsar Remix Online IDE y re redirigirá a la siguiente interfaz. Y ya por fin, podrás empezar a escribir tu código.


Como ves, tienes a la derecha un explorador de archivos con varias carpetas que vienen por defecto. En la primera, que se llama ‘contracts’, también tenemos tres archivos. Se trata de tres contratos inteligentes muy sencillos que Remix nos deja por defecto.

En esta ocasión, no vamos a hacer nada con estos tres contratos así que, vamos a ignorarlos porque vamos a crear uno nuevo.

Sitúate en la carpeta ‘contracts’ y pulsa el botón derecho. Verás que aparece un pequeño menú. Pulsa ‘New File’.


De esta forma se generará un nuevo archivo. Ponle el nombre que quieras, pero es importante que termines con la extensión ‘.sol’. Nosotros vamos a llamarlo ‘Contrato.sol’.

Ahora sí, ¡estamos listos para empezar!

En primer lugar, SIEMPRE que se empieza a programar un contrato inteligente en solidity, es necesario especificar la licencia. Así que esa debe ser la primera línea de tu contrato:


La licencia SPDX (Software Package Data Exchange) es un estándar para identificar y describir los derechos de autor y la licencia de software. En el caso de Solidity, se utiliza para identificar la licencia bajo la cual se ha publicado el código fuente de un contrato inteligente de Ethereum.

La licencia SPDX permite a los desarrolladores y usuarios conocer los términos y condiciones legales bajo los cuales pueden usar, modificar y distribuir el código fuente del contrato inteligente. Esto es importante porque permite asegurar la transparencia y la legalidad en el desarrollo y uso de los contratos inteligentes en la cadena de bloques de Ethereum.

Después, vamos a indicar la versión de compilador. Solidity es un lenguaje que se encuentra en continua mejora, así que verás que existen muchas versiones de compilador. En este caso no es muy relevante cuál vayamos a usar porque el contrato va a ser muy sencillo, pero lo mejor siempre es usar una reciente.


En nuestro caso, como veis, vamos a usar la 0.8.17.

Lo siguiente, sería empezar con el ‘esqueleto’ de nuestro contrato. Escribimos la palabra reservada contract seguida del nombre de nuestro contrato.


Dentro de esas dos llaves, vamos a escribir toda la lógica de nuestro contrato.

El siguiente paso va a ser declarar una variable, en nuestro caso de tipo numérico. Para ello usamos la palabra reservada uint seguida del nombre de la variable.


Después, definimos algo llamado constructor. Para ello utilizamos la palabra reservada constructor.

El constructor es una especie de “función” que solo se ejecuta una vez cuando se despliega el contrato, y nos sirve para darle valores a las variables. En este caso, la variable number va a tener como valor inicial el número 1.



Lo siguiente, será declarar una función para que podamos consultar el valor de esta variable.  Utilizamos la palabra reservada function seguida del nombre de la función. Después especificamos que va a ser public, para que cualquiera pueda usarla.


Esa palabra reservada view que veis en la imagen, simplemente significa que no vamos a modificar valores dentro de esa función.

Como es una función para consultar el valor de number, tenemos que especificar que nos devuelva un valor de tipo uint.

Dentro de las llaves lo único que hacemos es devolver la variable number, y listo.

La siguiente y última función que tenemos nos va a servir para cambiar el valor de la variable number. Por eso, entre los paréntesis, especificamos que tenemos que introducir por parámetro un número entero de tipo uint.


Dentro de la función, simplemente cambiamos el valor de number al nuevo valor, y listo.

Así quedaría nuestro contrato:


Ahora para compilarlo tendríamos que hacer Ctrl+S o pulsar botón azul en el siguiente menú:


Si al pulsarlo sale un tico verde, es que todo ha funcionado correctamente.

Una vez compilado, es momento de desplegar nuestro contrato. Para ello vamos al siguiente menú, y pulsamos el botón naranja:


Al pulsarlo veréis que os aparece lo siguiente:

Como veis, tenemos un botón con el nombre de cada función que hemos escrito antes.

Si pulsamos el botón getNumber veremos lo siguiente:

Como veis, aparece un 1. Que es el valor inicial que le hemos dado en el constructor a la variable number.

Si escribimos un 5 en la función setNumber y le damos al botón, y después volvemos a pulsar getNumber, obtenemos lo siguiente.

Como veis, el valor ha cambiado a 5.

Másterclass sobre Desarrollo Blockchain de ConquerBlocks

Si después de programar y probar este pequeño contrato inteligente, te ha picado el gusanillo del desarrollo blockchain, ¡estás de suerte!

Si pulsas el siguiente link, vas a tener acceso a una masterclass completamente gratuita, en la que te explicamos cuál es la hoja de ruta que tienes que seguir si quieres convertirte en desarrollador blockchain.

Pulsa aquí para acceder a la Masterclass gratuita de Desarrollo Blockchain de ConquerBlocks


Vídeo del artículo:


Masterclass Gratuita: Comienza tu carrera como Desarrollador Blockchain
Aprende la profesión con salarios de media de más de 100,000€ al año con nuestra metodología en 5 pasos.
Ir a la Masterclass
Masterclass Gratuita: Comienza tu carrera como Desarrollador Blockchain
Aprende la profesión con salarios de media de más de 100,000€ al año con nuestra metodología en 5 pasos.
Ir a la Masterclass

Noticias relacionadas

¿Cuánto gana un desarrollador Blockchain? Analizando datos reales.
Desarrollo Blockchain

¿Cuánto gana un desarrollador Blockchain? Analizando datos reales.

En los últimos tiempos, cada vez más y más personas se interesan por la tecnología Blockchain y uno de los motivos que está tomando más relevancia es el salario que los desarrolladores de esta tecnología están llegando a ganar. Lo cierto es que no se trata de ningún mito, los desarrolladores Blockchain son uno de los perfiles profesionales que más cobran por su trabajo, y esto no es casualidad.
Yolanda López
24/2/2023
TOP 3 mejores Cursos de Desarrollo Blockchain (online / presenciales)
Desarrollo Blockchain

TOP 3 mejores Cursos de Desarrollo Blockchain (online / presenciales)

Hoy en día están surgiendo infinidad de formaciones que tienen que ver con la tecnología y el desarrollo Blockchain, y la razón es que esta tecnología está en pleno auge y cada vez son más las personas que quieren aprenderla.‍Pero lo cierto es, que la mayoría de estas formaciones no tienen ninguna consistencia porque no están impartidas por verdaderos profesionales del sector. Y precisamente por eso, hemos hecho una selección de las 3 mejores formaciones en Tecnología Blockchain, para ayudarte a elegir cuál es la que más se ajusta a tus necesidades.
Yolanda López
24/2/2023
Tipos de Visibilidad de las Funciones en SOLIDITY (Public vs External)
Desarrollo Blockchain

Tipos de Visibilidad de las Funciones en SOLIDITY (Public vs External)

Utilizar correctamente la visibilidad en las funciones y variables en Solidity es vital para garantizar la seguridad y el buen funcionamiento de los smart contracts. Hay que tener en cuenta que estamos en una blockchain pública, por lo tanto, todos los datos son accesibles de algún modo. Podemos restringir desde dónde se pueden utilizar ciertas funciones o variables, pero no podemos restringir su lectura.
Yolanda López
24/2/2023
¿Qué es un Token ERC-20 y cómo se crea?
Desarrollo Blockchain

¿Qué es un Token ERC-20 y cómo se crea?

Un token ERC-20 es un tipo de criptomoneda que se crea y se utiliza en la red Ethereum. ERC significa "Ethereum Request for Comment", que es un tipo de propuesta para estándares técnicos en la red Ethereum.
Yolanda López
24/2/2023
10 consejos para Programadores Principiantes
Desarrollo Blockchain

10 consejos para Programadores Principiantes

Si estás leyendo este artículo es porque, o bien estás aprendiendo a programar, o bien ya sabes programar pero eres completamente principiante y te sientes algo inseguro. ¡No te preocupes! A todos nos ha ocurrido alguna vez. Pero nosotros queremos ayudarte a que el inicio de tu carrera como programador o desarrollador sea un poco más liviano, y por eso te traemos 10 consejos para darte el empujón que necesitas.
Yolanda López
24/2/2023

Nuestras últimas publicaciones

Aprende sobre Criptomonedas, Blockchain, NFTs, Metaversos, Inteligencia Artificial y Emprendimiento.
DeGods en Bitcoin: la colección NFT número 1 en Solana se va a Ethereum y Bitcoin
NFTs y Metaverso

DeGods en Bitcoin: la colección NFT número 1 en Solana se va a Ethereum y Bitcoin

En este artículo te hablamos de la reciente iniciativa de DeGods en lanzar parte de su colección en Bitcoin Ordinals
Jordi Quintana
24/2/2023
Análisis del proyecto DeGods NFT y su estrategia exitosa
NFTs y Metaverso

Análisis del proyecto DeGods NFT y su estrategia exitosa

Esta es la mejor y más completa guía en español sobre la exitosa colección NFT DeGods en Solana.
Jordi Quintana
24/2/2023
Cómo conseguir el acceso de Founder NFT en Deadrop
NFTs y Metaverso

Cómo conseguir el acceso de Founder NFT en Deadrop

En este artículo te presento el nuevo juego Play To Earn - Deadrop, en el cuál se pueden ganar NFTs por jugar
Jordi Quintana
24/2/2023
¿Cuánto gana un desarrollador Blockchain? Analizando datos reales.
Desarrollo Blockchain

¿Cuánto gana un desarrollador Blockchain? Analizando datos reales.

En los últimos tiempos, cada vez más y más personas se interesan por la tecnología Blockchain y uno de los motivos que está tomando más relevancia es el salario que los desarrolladores de esta tecnología están llegando a ganar. Lo cierto es que no se trata de ningún mito, los desarrolladores Blockchain son uno de los perfiles profesionales que más cobran por su trabajo, y esto no es casualidad.
Yolanda López
24/2/2023
TOP 3 mejores Cursos de Desarrollo Blockchain (online / presenciales)
Desarrollo Blockchain

TOP 3 mejores Cursos de Desarrollo Blockchain (online / presenciales)

Hoy en día están surgiendo infinidad de formaciones que tienen que ver con la tecnología y el desarrollo Blockchain, y la razón es que esta tecnología está en pleno auge y cada vez son más las personas que quieren aprenderla.‍Pero lo cierto es, que la mayoría de estas formaciones no tienen ninguna consistencia porque no están impartidas por verdaderos profesionales del sector. Y precisamente por eso, hemos hecho una selección de las 3 mejores formaciones en Tecnología Blockchain, para ayudarte a elegir cuál es la que más se ajusta a tus necesidades.
Yolanda López
24/2/2023
Update cookies preferences