Contrato en Solidity que permite transferir fondos entre dos cuentas
Código del contrato
[crayon-6a617d9929fad338892965/]
Explicación del código
- Mapping de balances: Almacena los balances de cada dirección que interactúa con el contrato.
- deposit: Permite a los usuarios depositar Ether en el contrato y actualiza su balance.
function deposit() public payable { balances[msg.sender] += msg.value; } - withdraw: Permite a los usuarios retirar Ether de su balance.
function withdraw(uint _amount) public { require(balances[msg.sender] >= _amount, "Insufficient balance"); balances[msg.sender] -= _amount; payable(msg.sender).transfer(_amount); } - transfer: Permite a los usuarios transferir Ether a otra cuenta.
function transfer(address _to, uint _amount) public { require(balances[msg.sender] >= _amount, "Insufficient balance"); require(_to != address(0), "Invalid address"); balances[msg.sender] -= _amount; balances[_to] += _amount; } - getBalance: Devuelve el balance del usuario que llama a la función.
function getBalance() public view returns (uint) { return balances[msg.sender]; }
Ejemplo de Uso
- Depositar fondos: Una cuenta deposita Ether en el contrato llamando a
depositcon un valor en Ether.Wallet.deposit{value: 1 ether}(); - Transferir fondos: Una cuenta transfiere parte de sus fondos a otra cuenta.s
Wallet.transfer(address_recipient, 0.5 ether); - Retirar fondos: Una cuenta retira parte de sus fondos llamando a
withdraw.Wallet.withdraw(0.5 ether);
Este contrato es una implementación básica y segura de una billetera en Solidity que permite depósitos, retiros y transferencias.
Capturas de pantalla
Depositar fondos

Fondos depositados

Realizar operaciones (transferir y retirar fondos)

