[Solidity] Creando mi primer contrato inteligente en Solidity – El lenguaje de programación más popular de la Blockchain de Ethereum.
En el día de hoy estaré creando mi primer contrato inteligente en solidity (crear aplicaciones descentralizadas en la blockchain de ethereum) además es el Lenguaje más popular de la Blockchain de Ethereum.
Para empezar, los contratos inteligentes son programas que funcionan en un blockchain, especificamente en la blockchain de Ethereum, estos contratos inteligentes son programas que contienen funciones, funciones que devuelven algo, por ejemplo: enviar dinero desde una direccion a otra.
Para programar se necesita un compilador y un IDE (entorno de desarrollo integrado)
Para ello estaré usando un IDE en el navegador (nube) llamado llamado Remix este IDE incluye todo lo necesario para programar en forma de pruebas (nada real) en la Blockchain de Ethereum. Voy a crear un simple CRUD de jugadores (Players) para ir conociendo poco a poco los tipos de datos, palabras reservadas y sintaxis que este lenguaje nos ofrece y que sin duda dará que hablar en los próximos tiempos.
Comencemos:
Para empezar, vamos hacia el siguiente link para abrir el IDE http://remix.ethereum.org/ y comenzar a escribir nuestro CRUD
Dentro de la carpeta contracts/ crearemos un archivo nuevo llamado Simple_Crud.sol
.sol es la extensión de los archivos en solidity.
Lo primero que haremos será escribir la palabra reservada pragma seguido del lenguaje de programación a usar en este caso solidity, y la versión.
pragma solidity >=0.7.0 <0.9.0
colocaremos la palabra reservada contract para crear nuestro contrato (similiar a las clases de java, rust, go, javascript)
Estrunctura de un contrato inteligente (smart contract)
contract MyFirstCrud {
// Variables
// Funciones
}
contract MyFirstCrud {
uint public nextId;
Player[] public players;
struct Player{
uint id;
string firstName;
string lastName;
}
function createPlayer(string memory _firstName, string memory _lastName) public {
players.push(Player(nextId, _firstName, _lastName));
nextId+=1;
}
function searchPlayer(uint _id) internal view returns (uint){
for(uint i = 0; i < players.length ; i++){
if(players[i].id == _id) return i;
}
revert('Player not found');
}
function getPlayer(uint _id) public view returns(uint, string memory, string memory){
uint index = searchPlayer(_id);
return (players[index].id, players[index].firstName, players[index].lastName);
}
function updatePlayer(uint _id, string memory _firstName, string memory _lastName) public {
uint index = searchPlayer(_id);
players[index].firstName = _firstName;
players[index].lastName = _lastName;
}
function deletePlayer(uint _id) public {
uint index = searchPlayer(_id);
delete players[index];
}
}
Tipos de datos:
uint es un entero positivo (unsigned)
string cadena de caracteres.
struct se usa para crear un tipo de datos compuesto.
La funcion revert
piensalo como si fuera un catch
de un try catch, en este caso si no se consigue el jugador (player) lanza un mensaje diciendo que no se ha conseguido el jugador.
Capturas del CRUD en Solidity
En mi siguiente post vamos a proceder a codificar nuestra primera moneda
Espero que les haya gustado el post, y si tienes alguna pregunta abajo estan los comentarios.
Vota mi post para crear mas contenido.