En este breve tutorial aprenderás a enviar ETH desde tu Smart Contract a otra dirección de la red Ethereum. Esta otra dirección podría ser la de otro Smart Contract o alguna dirección controlada por un usuario de forma privada, como es el caso de una wallet. Se trata de algo vital cuando trabajas con Smart Contracts en la red Ethereum.
Cómo enviar ETH a otra dirección
Vamos a crear un Smart Contract al que llamaremos MiContrato
. En su interior vamos a declarar la función enviarEth
, que recibirá dos argumentos:
- Dirección: Usaremos el argumento
direccion
de tipoaddress
para especificar la dirección a la que enviar ETH. Este argumento debe incluir el modificadorpayable
, indicando así que deseamos habilitar los método de gestión de transferencia de ETH. - Cantidad: Mediante el argumento
cantidad
, de tipouint
, especificaremos la cantidad de ETH a enviar.
En el interior de la función enviarEth
, usaremos el método transfer
de la dirección de envío, al que pasaremos la cantidad a enviar como parámetro:
pragma solidity ^0.8.13;
contract MiContrato
{
function enviarEth(address payable direccion, uint cantidad) external
{
direccion.transfer(cantidad);
}
}
El método transfer
enviará la cantidad que pasemos como parámetro a la dirección especificada en la variable direccion
. Hemos definido la función con el modificador external
, ya que nuestra intención es que sea invocada desde fuera del Smart Contract.
Unidades de envío de ETH
Podrá encontrar las unidades de Ether de Solidity en la documentación oficial. La mínima unidad de envío en la red Ethereum es el wei. Luego tenemos también la unidad gwei, que equivale a 1^9 wei. Finalmente tenemos el ether, que equivale a 1^18 wei.
Algunos posibles valores que podríamos pasar el método transfer
podrían ser 1 ether
, 500 gwei
o 40000 wei
. Si usas un valor numérico a secas, como por ejemplo 4000
, entonces dicho valor estará especificado en la unidad por defecto, que es el wei.
Esto ha sido todo.
¿Como sería el código en el caso de un NFT?