typestar

payable y receive en Solidity

Aceptar ether es opcional; receive atrapa los envíos planos.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

// payable accepts ether; receive catches plain transfers.
contract DonationJar {
    mapping(address => uint256) public given;

    event Thanks(address indexed donor, uint256 amount);

    receive() external payable {
        given[msg.sender] += msg.value;
        emit Thanks(msg.sender, msg.value);
    }

    function jarTotal() external view returns (uint256) {
        return address(this).balance;
    }
}

Cómo funciona

  1. receive() external payable corre en transferencias peladas.
  2. msg.value es el monto que llegó, en wei.
  3. address(this).balance lee los fondos propios del contrato.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
424
Tokens
74
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 2 de 3 en Ether y eventos; paso 12 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →