Documentación de Solidity 0.4.5 en español - 6. Estructura de un contrato

Puedes seguir desde aquí todos los capítulos traducidos, y la documentación original en inglés.


Los contratos en Solidity son similares a las clases en los lenguajes orientados a objetos. Cada contrato puede contener declaraciones de variables de estado, funciones, modificadores de función, eventos, tipos "Struct" y tipos "Enum". Además, los contratos pueden heredar de otros contratos.

Variables de estado

Las variables de estado son valores los cuales están permanentemente en el almacenamiento del contrato.

pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData; // State variable
    // ...
}

Ojea la sección 'Tipos' para ver los tipos de variables de estados válidos así como 'Visibilidad y Accesores' para elecciones de visibilidad.

Funciones

Las funciones son unidades de código ejecutable dentro de un contrato.

pragma solidity ^0.4.0;

contract SimpleAuction {
    function bid() payable { // Function
        // ...
    }
}

Las llamadas de función pueden ocurrir internamente o externamente y tienen diferentes niveles de visibilidad hacia otros contratos.

Modificadores de funciones

Los modificadores de funciones puede ser usados para corregir semática de funciones de una manera declarativa.

pragma solidity ^0.4.0;

contract Purchase {
    address public seller;

    modifier onlySeller() { // Modifier
        if (msg.sender != seller) throw;
        _;
    }

    function abort() onlySeller { // Modifier usage
        // ...
    }
}

Eventos

Los eventos son interfaces en conveniencia con las facilidades de registro de la Máquina Virtual Ethereum.

pragma solidity ^0.4.0;

contract SimpleAuction {
    event HighestBidIncreased(address bidder, uint amount); // Event

    function bid() payable {
        // ...
        HighestBidIncreased(msg.sender, msg.value); // Triggering event
    }
}

Mira el apartado Eventos en la sección de contratos para obtener información sobre cómo se declaran evento y pueden ser usados dentro de una dapp.

Tipos Structs

Los structs son tipos personalizados que pueden agruptar muchas variables.

pragma solidity ^0.4.0;

contract Ballot {
    struct Voter { // Struct
        uint weight;
        bool voted;
        address delegate;
        uint vote;
    }
}

Tipos Enum

Los enums pueden ser usados para crear tipos personalizados con un conjunto finito de valores.

pragma solidity ^0.4.0;

contract Purchase {
    enum State { Created, Locked, Inactive } // Enum
}

Índice de la documentación:

1. Introducción a los contractos inteligentes
2. La cadena de bloques y la Máquina Virtual de Ethereum
3. Instalando Solidity
4. Solidity mediante ejemplos
5. Diseño de un archivo fuente de Solidity
6. Estructura de un contrato

H2
H3
H4
Upload from PC
Video gallery
3 columns
2 columns
1 column
Join the conversation now