Implementación de contrato en la cadena EVM de 5ire
5ire IDE
Nota: Para comenzar a usar el IDE de 5ire, los usuarios deben instalar y configurar su billetera. Dirígete a esta sección para comenzar a configurar tu billetera 5ire.
Paso 1: diríjase a la plataforma IDE de 5ire.
Paso 2: Vaya a Espacio de trabajo desde el menú del panel izquierdo y elija el icono Crear nuevo archivo.
Paso 3: Cree un nuevo archivo en la carpeta de contratos con el nombre "5ire.sol"
- Se generará un nuevo archivo y el panel principal aparecerá en blanco.
Nota: .sol es la extensión de los archivos Solidity.
Paso 4: escribir el código
Puede pegar su código existente en el panel principal del archivo 5ire.sol o cargar su archivo de contrato en el espacio de trabajo.
También puede usar el siguiente código ERC-20 de muestra:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract ERC20 is IERC20 {
uint public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;
string public name = "Solidity by Example";
string public symbol = "SOLBYEX";
uint8 public decimals = 18;
function transfer(address recipient, uint amount) external returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(msg.sender, recipient, amount);
return true;
}
function approve(address spender, uint amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool) {
allowance[sender][msg.sender] -= amount;
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function mint(uint amount) external {
balanceOf[msg.sender] += amount;
totalSupply += amount;
emit Transfer(address(0), msg.sender, amount);
}
function burn(uint amount) external {
balanceOf[msg.sender] -= amount;
totalSupply -= amount;
emit Transfer(msg.sender, address(0), amount);
}
}
Así es como aparecerá su pantalla después de pegar el código mencionado anteriormente:
Paso 5: Compilación
Vaya al Compilador de Solidity desde el panel izquierdo.
Para compilar un contrato, seleccione el archivo deseado del Explorador de archivos o asegúrese de que el archivo deseado sea el activo en el Editor si hay varios archivos abiertos.
Si hay un archivo activo elegido en el explorador de archivos, entonces el compilador de solidez se verá así:
Haga clic en Compilar 5ire.sol para compilar el archivo del contrato.
Después de una compilación exitosa, así es como se verá su pantalla:
Paso 6: Implementación
Vaya a la barra lateral Implementar y ejecutar transacciones desde el panel izquierdo.
Para utilizar este módulo, es necesario tener un contrato compilado. Por lo tanto, si hay un nombre de contrato en el cuadro de selección CONTRATO (el cuadro de selección está debajo del campo de entrada VALOR), puede usar este módulo.
- 5ire Provider: para conectar 5ire IDE a un proveedor web3 inyectado. El proveedor inyectado más común es MetaMask y la extensión 5ire Wallet.
- Proveedor de Hardhat: Para conectar el IDE de 5ire a una cadena local de prueba de Hardhat.
- Proveedor de Ganache: para conectar 5ire IDE a una cadena de prueba local de Truffle Ganache.
Haga clic en Implementar.
Confirme la transacción en la extensión Web3.
VÍDEO TUTORIAL:
- Una vez confirmada la transacción, los detalles del despliegue, la dirección del contrato y la transacción, serán visibles en la terminal:
Usando el Explorador
Paso 1: clonación del nodo 5ireChain
- En su sistema, abra un shell de terminal.
- Clone el repositorio de nodos firechain-evm-base ejecutando el siguiente comando:
HTTPS:
https://github.com/5ire-tech/5ire-evm-base.git
SSH:
[email protected]:5ire-tech/5ire-evm-base.git
Paso 2: Conexión al nodo
- Si es necesario, abra un shell de terminal en su sistema local.
- Cambie el directorio raíz donde compiló la base 5ire EVM.
- Inicie el nodo en modo de desarrollo ejecutando el siguiente comando:
Cargo build –release
./target/release/firechain-node --dev
(it will run the node in development mode.)
Nota: Cargo build compila el código.
La opción de línea de comandos --dev indica que el nodo está funcionando utilizando una especificación de cadena de desarrollo predefinida, que incluye una cuenta EVM designada para Alice, junto con otras cuentas configuradas específicamente para fines de prueba.
- Puede verificar si su nodo está funcionando correctamente después de revisar el resultado que se muestra en la terminal.
El terminal debería mostrar una salida similar a esta:
Use la aplicación Polkadot-JS para conectarse al nodo local.
En la barra superior, haz clic en el menú desplegable del desarrollador.
Cree el contrato de token
Nota: Para mayor comodidad, puede usar el código de bytes compilado del contrato de token en MyToken.json para implementar el contrato en la cadena EVM de 5ire.
Seleccione Extrínsecos.
Para enviar la transacción, seleccione una cuenta de desarrollo de cuenta financiada como cuenta.
Seleccione EVM (Ethereum Virtual Machine).
Elija la función de creación.
Configure los parámetros para la función.
For this | Specify this |
---|---|
Source | 0xd43593c715fdd31c61141abd04a99fd6822c8558 (H160 Address of your Selected Account) |
Init | Enter the token raw bytecode |
Value | 0 |
Gas Limit | 42949672 |
Max Fee Per Gas | 1000000 |
Los parámetros opcionales se pueden dejar vacíos. El valor de nonce aumentará el nonce conocido a los efectos de la cuenta de origen. Esto comienza desde 0x0. Dependiendo principalmente de la función seleccionada, deberá eliminar los parámetros no utilizados.
Presione enviar transacción. Esto iniciará el proceso de completar su transacción.
Para autorizar la transacción, haga clic en Enviar y firmar. Esto resultará en la finalización de la transacción.
Remix IDE
Puede implementar un contrato inteligente en la cadena 5ire EVM usando Remix IDE a través de los siguientes pasos:
Paso 1: Para iniciar la transacción, visite este enlace.
Paso 2: En espacios de trabajo, haga clic en Crear nuevo archivo. Esto lo ayudará a crear un nuevo documento en el que puede comenzar a trabajar en la implementación de un contrato inteligente en la cadena EVM de 5ire.
Paso 3: Crear un Nuevo Archivo bajo contratos con el nombre 5ire.sol. Esto lo ayudará a crear un nuevo programa a través del cual puede implementar un contrato inteligente en 5ire.
Paso 4: copie y pegue el código que se proporciona a continuación en el archivo 5ire.sol.
Tenemos un código de muestra aquí para el token ERC-20:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
// https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v3.0.0/contracts/token/ERC20/IERC20.sol
interface IERC20 {
function totalSupply() external view returns (uint);
function balanceOf(address account) external view returns (uint);
function transfer(address recipient, uint amount) external returns (bool);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint value);
event Approval(address indexed owner, address indexed spender, uint value);
}
contract ERC20 is IERC20 {
uint public totalSupply;
mapping(address => uint) public balanceOf;
mapping(address => mapping(address => uint)) public allowance;
string public name = "Solidity by Example";
string public symbol = "SOLBYEX";
uint8 public decimals = 18;
function transfer(address recipient, uint amount) external returns (bool) {
balanceOf[msg.sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(msg.sender, recipient, amount);
return true;
}
function approve(address spender, uint amount) external returns (bool) {
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender, spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint amount
) external returns (bool) {
allowance[sender][msg.sender] -= amount;
balanceOf[sender] -= amount;
balanceOf[recipient] += amount;
emit Transfer(sender, recipient, amount);
return true;
}
function mint(uint amount) external {
balanceOf[msg.sender] += amount;
totalSupply += amount;
emit Transfer(address(0), msg.sender, amount);
}
function burn(uint amount) external {
balanceOf[msg.sender] -= amount;
totalSupply -= amount;
emit Transfer(msg.sender, address(0), amount);
}
}
Así es como aparecerá su pantalla después de haber insertado el código mencionado anteriormente:
Paso 5: Haga clic en Solidity Compiler y haga clic en compilar 5ire.sol.
Paso 6: Click on Deploy & Run Transactions to perform your desired transactions.
Paso 7: Implementar el contrato 5ire.sol. Seleccione Web3 inyectado para implementar en la red en vivo. En este caso, hemos seleccionado MetaMask como proveedor inyectado.
Paso 8: Confirme la transacción después de verificar los detalles. Debe ingresar la dirección de la billetera y la cantidad que se transferirá a la cuenta receptora.
Paso 9: Con el fin de implementar transacciones en la Cadena EVM 5ire, confirme la tarifa de gas en MetaMask. La tarifa de gas es una pequeña tarifa de transacción que se utiliza para completar una transacción.
Paso 10: Encuentre la dirección del contrato implementado en Remix y actualice el contrato interactuando con las funciones integradas.
Ganache
Ganache es un entorno privado de cadena de bloques de Ethereum que le permite emular la cadena de bloques de Ethereum para interactuar con contratos inteligentes en una cadena de bloques privada. Puede ejecutar pruebas, ejecutar comandos e inspeccionar estados mientras controla el funcionamiento de la cadena.
Visita este enlace para descargar Ganache.
La siguiente guía lo guiará a través del proceso de implementación de un contrato inteligente usando Ganache:
Paso 1: Abra Remix IDE en su navegador y cree un nuevo archivo en la sección de contrato.
Paso 2: use una de las plantillas de código de muestra y compile haciendo clic en el botón Compilar como se muestra a continuación.
Paso 3: Después de la compilación, abra Ganache en su escritorio. Su pantalla se parecerá a la ilustración de abajo. Haga clic en QUICKSTART Ethereum.
Paso 4: ahora verá 10 cuentas predeterminadas, junto con un mnemónico para su cadena de bloques en un servidor RPC local (HTTP://127.0.0.1:7545), como se muestra a continuación:
Paso 5: Vuelva al navegador y muévase a la sección Implementar justo debajo de Compilar y seleccione Proveedor de Ganache del entorno como se muestra a continuación:
Paso 6: ingrese el servidor HTTP://127.0.0.1:7545 como proveedor de Ganache. Su pantalla se verá como la imagen que se muestra a continuación:
Paso 7: Su contrato ahora está listo para implementarse! Haga clic en el botón Implementar para continuar.
Paso 8: Verifique la pestaña de salida para verificar si su contrato se implementó correctamente.
Paso 9: Para verificar si su transacción (proceso) se reflejó con éxito en el servidor, abra Ganache y vaya a Transacciones. Aquí verá los detalles de su transacción como se muestra en la imagen a continuación:
VÍDEO TUTORIAL:
Hardhat
Esta guía describe el proceso para implementar un contrato inteligente de EVM utilizando Hardhat, que se llevará a cabo en el IDE de EVM de 5ire.
Paso 1: Comience creando una carpeta de proyecto. Para esta guía, la carpeta del proyecto se titula “mkdir hardhat-tutorial”.
Paso 2: Ejecute el comando npx hardhat
.
Paso 3: El siguiente paso es seleccionar Crear un proyecto Javascript/Typescript cuando se le pregunte "¿Qué desea hacer?"
Paso 4: agregue la raíz del proyecto hardhat creada al principio.
Paso 5: Presione "Y" para completar el proceso.
Paso 6: Al finalizar el proceso, la apariencia de su pantalla será como se muestra en la imagen a continuación.
Paso 7: Abra Remix IDE y seleccione Implementar y ejecutar transacciones.
Paso 8: seleccione el proveedor hardhat.
Paso 9: verá el ID de la cadena y la lista de cuentas si se ha establecido la conexión.
Paso 10: Ejecute el comando npx hardhat node
. Luego mostrará una lista de 20 cuentas con un saldo de 10000 ETH.
Paso 11: al hacer clic en Implementar, puede iniciar la implementación de un contrato inteligente específico y, si todo va bien, su transacción será exitosa.
Paso 12: Puede verificar la finalización de su transacción revisando la terminal.
VÍDEO TUTORIAL: