Introducción
Este tutorial lo guiará a través del proceso de creación de un contrato inteligente de Ethereum simple usando Solidity, el lenguaje de programación para escribir contratos inteligentes de Ethereum.
requisitos previos
Para seguir este tutorial, necesitarás:
- Node.js y npm instalados en su sistema
- Truffle Suite, un entorno de desarrollo, marco de prueba y canalización de activos para Ethereum
- Ganache, un simulador personal de blockchain para Ethereum
Puede instalar Truffle y Ganache con el comando npm:
npm install -g truffle
npm install -g ganache-cli
Creación de proyectos
Comencemos creando un nuevo directorio para nuestro proyecto e inicialicemos un nuevo proyecto Truffle.
mkdir ethereum-contract
cd ethereum-contract
truffle init
Escribe el contrato inteligente
Vamos a crear un nuevo archivo llamado SimpleStorage.sol
en el directorio contracts/
y agregar el siguiente código:
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint public data;
function set(uint x) public {
data = x;
}
function get() public view returns (uint) {
return data;
}
}
Este es un contrato muy simple que almacena un número entero y proporciona dos funciones, set
y get
, para cambiar y obtener el valor.
Crear el archivo de migración
Para implementar el contrato en la cadena de bloques, deberá crear un archivo de migración. Cree un nuevo archivo llamado 2_deploy_contracts.js
en el migrations/
y agregue el siguiente código:
const SimpleStorage = artifacts.require("SimpleStorage");
module.exports = function (deployer) {
deployer.deploy(SimpleStorage);
};
Prueba el contrato
Antes de implementar el contrato, deberíamos escribir algunas pruebas del mismo. Cree un nuevo archivo llamado simpleStorage.js
en el directorio test/
y agregue el siguiente código:
const SimpleStorage = artifacts.require('SimpleStorage');
contract('SimpleStorage', () => {
it('should set the value of data variable', async () => {
const simpleStorage = await SimpleStorage.deployed();
await simpleStorage.set(10);
const result = await simpleStorage.get();
assert(result.toNumber() === 10);
});
});
Ejecute las pruebas con el comando:
truffle test
Distribuir el contrato
Finalmente, distribuimos el contrato en nuestra cadena de bloques local usando Ganache. Ejecute el comando:
ganache-cli
En otra terminal, ejecute el comando de migración:
truffle migrate
Conclusión
¡Felicidades! Acaba de escribir e implementar su primer contrato inteligente en Ethereum con Solidity.