Creando Un token ERC20 Seguro con Openzeppelin en menos de 10 minutos. Usaremos Ganache, truffle, Visual Studio.
Hola a "tod@"
Quisiera Compartir con uds mi experiencia de como crear un token en Ethereum de forma segura y rápida.
primero vamos a seguir unas serie de paso:
esto lo hago con fine educativo de como implementar contrato inteligente usando truffle.
primer paso debemos tener instalado Chocolatey.
para instalarlo debe abrir un terminal cmd.exe en este caso yo estoy usando win 7 ultimate 64bit
este es el comando para ejecutarlo por cmd.exe: @"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
Lo recomendable para windows es usar el PowerShell.exe como modo administrador para que no te de errores.
codigo para PowerShell.exe es el siguiente: Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
Una vez comienza la instalación debe aceptar las opciones dando la tecla Y
luego ejecutarnos los siguientes códigos uno por uno :
choco install nodejs.install –y
choco install git –y
choco install VisualStudioCode -y
instala ganache un nodo de ethereum local https://truffleframework.com/ganache
Paso dos ya teniendo coholate instalado vamos a ejecutar la herramientas npm
abrimos otro consola de PowerShell como administrador.
y ejecutamos los siguientes comando:
npm install -g npm
npm install -g -production windows-build-tools
npm install -g ethereumjs-testrpc
npm install -g truffle
luego de hacer esto paso vamos a comenzar: a implementar el contracto del token
lo primero que vamos hacer es crear la carpeta usando los siguientes terminales si usaran cmd.exe o git Bash.
en este caso usare git bash por comodidad pero es lo mismo usar cmd.exe
ya teniendo la consola abierta en cmd.exe o git Bash vamos a escribir los siguiente comando:
mkdir MyToken
cd MyToken
revisamos la versión de truffle que tenemos para la versión pragma con el siguiente comando
truffle verison
este comando nos mostrara la versión de truffle que estamos utilizando
okz ahora vamos a usar la caja de truffle tutorial token que contiene los archivos necesario para implementar nuestro Contrato ERC20
escribimos el siguiente codigo
truffle unbox tutorialtoken
se nos descargara los siguientes contenidos:
luego abrimos el Visual Studio con el comando: code ubicamos la carpeta MyToken
seguimos el el comando colocamos el siguiente comando:
npm init
debemos daler enter hasta instalar toda la dependencia
debe quedarnos del siguiente modo
ahora descargamos la libreria de openzeppelin con el siguiente codigo
npm install openzeppelin-solidity
ahora vamos de nuevo a visual studio y comenzamos a redactar nuestro contrato.
en la carpeta de conctracs crearemos el siguiente archivo TutorialToken.sol
ahora comenzamos a escribir nuestro contrato inteligente
pragma solidity ^0.4.24;
import "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol";
contract TutorialToken is StandardToken {
}
importamos los archivo contratos inteligente de openzeppelin del siguiente modo
import "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol"; esto importa el contrato de StandardToken si quiere ver su codigo lo puede hacer de su repositorio Github https://github.com/OpenZeppelin/openzeppelin-solidity
ahora vamos a darle los parámetros al token donde declararemos el nombre símbolo y los decimales
usando el siguiente codigo
string public name = "TutorialToken";
string public symbol = "TUT";
uint8 public decimals = 2;
uint public INITIAL_SUPPLY = 10000000000;
Usamos variables de tipo string publica llamadas nombre "name", simbolo "symblo" en cual refleja el nombre del token que vamos a crear, tambien hay entereo tipo uint8 publico para los decimales del token en este caso lo hare con 2 decimales.
otro entero publico donde indica el suministro total de los token a realizar en este caso eh creado 100millones y como estoy usando 2 decimales debo agregarle eso 00 de mas.
ahora necesitamos un constructor que me permita llamar al contrato que estamos implementando para eso escribiré los siguiente
constructor() public {
totalSupply_ = INITIAL_SUPPLY;
balances[msg.sender] = INITIAL_SUPPLY;
}
debe quedar del siguiente modo
listo ya tenemos nuestro contracto creado ahora vamos a configurar para desplegar.
vamos a migrations/ y creamos un archivo llamado 2_deploy_contracts.js
en cual agregaremos el siguiente contenido
var TutorialToken = artifacts.require("TutorialToken");
module.exports = function(deployer) {
deployer.deploy(TutorialToken);
};
este contrato hace la declaración del contrato TutorialToken y se manejara automáticamente por el compilador
okz ya estamos casi listo para desplegar el contrato ahora abrimos ganache
ella nos dara 10 cuenta de ethereum con 100 ethereum falso para poner en marcha nuestra prueba
ahora vamos a la consola de comando y escrbimos los siguiente
truffle compile
esto hará la compilación del contrato
luego vamos a migrar el contrato
truffle migrate
si lo esta haciendo por cmd escribe:
truffle.cmd compile
truffle.cmd migrate
vamos a familiarizarnos con el nuevo token
lo recomendable es instalar la extension de MetaMask en tu navegador https://metamask.io/
tendra que ingresar las 12 palabra de seguridad que te proporciona ganache.
configura el RPC de MetaMask RPC personalizado http://127.0.0.1:7545.
en la consola ejecuta lo siguiente
npm run dev
listo esto correra tu dapp donde podrá jugar con el token
hemos teminado con este tutorial si te gusto y quiere ver mas informacion relacionada de como migrar a una red de prueba de ether solo escribe y comenta tu opiniones son valiosa para mi.
no olvide de comentar, estare implementando contrato inteligente en etherum en español .
saludo de Venezuela