typestar

Fundamentos del lenguaje

28 pasos en 9 series de Solidity.

Solidity es el lenguaje de la Ethereum Virtual Machine: contratos que guardan fondos y hacen cumplir reglas una vez desplegados, donde un bug no es un ticket sino una pérdida, y cada línea cuesta gas que alguien paga. Esa disciplina moldea el dialecto entero — enteros dimensionados, ubicaciones de datos explícitas, aritmética verificada desde 0.8, errores tipados sobre strings, y patrones como el pago por retiro que existen puramente porque el entorno adversarial los exige.

Este tour teclea el lenguaje de trabajo a través de una cooperativa de huerto comunitario: forma de contrato y tipos de valor, view contra pure, constant e immutable, mappings y structs y enums, require y errores tipados, modificadores, eventos con topics indexados, payable y el patrón de retiro, ubicaciones de datos, bucles conscientes del gas, herencia e interfaces y contratos abstractos, bibliotecas con using-for, try/catch en llamadas externas, huellas keccak256, el contexto de bloque, aritmética unchecked y el par de catch-alls. El Bis despliega tres contratos completos: el padrón de membresía, un reparto de cosecha por horas y una votación de un miembro un voto.

Empieza este tour

Contratos

Almacenamiento

  • MappingsEl almacén clave-valor; las claves ausentes se leen como cero.
  • Structs y arreglosAgrupa campos y empújalos a una lista que crece.
  • EnumsNombra las fases; camínalas en orden con un cast.

Guardas

Ether y eventos

  • EventosLa bitácora: los campos indexed se vuelven topics buscables.
  • payable y receiveAceptar ether es opcional; receive atrapa los envíos planos.
  • El patrón de retiroRetira, no envíes: pon el saldo en cero antes de mandar.

Datos y gas

  • Ubicación de datosstorage persiste, memory es borrador, calldata es la llamada.
  • Bucles y gasCada pasada cuesta gas; los arreglos acotados mantienen el bucle honesto.
  • unchecked0.8 verifica la aritmética; unchecked renuncia donde es seguro.

Composición

  • Herenciavirtual invita a sobreescribir; super alcanza al padre.
  • InterfacesLa forma de un contrato que solo conoces por dirección.
  • Contratos abstractosDejan un hueco que el hijo debe llenar.
  • BibliotecasAyudantes puros, injertados a un tipo con using-for.

El entorno

  • El contexto globalmsg.sender, block.timestamp, block.number: el entorno.
  • keccak256La huella de lo que sea, vía abi.encodePacked.
  • try/catchProtege llamadas externas que pueden revertir.

Superficies

  • Getters y tuplasEl estado public escribe su getter; las funciones devuelven tuplas.
  • fallbackLos catch-alls: fallback para llamadas desconocidas, receive para ether.

Bis

Los otros tours de Solidity