Más juegos en WuGames.ioPatrocinadoDescubre juegos de navegador gratis — juega al instante, sin descargas ni registro.Jugar

Selector de Funciones Solidity

Genera selectores de función Solidity y hashes Topic0 de eventos desde firmas. Codifica selectores 4 bytes, busca firmas comunes ERC20 y DeFi.

Ingrese firma de función sin espacios (ej., transfer(address,uint256))

Acerca del Selector de Funciones Solidity

La herramienta Selector de Funciones Solidity ayuda a los desarrolladores a trabajar con selectores de funciones de contratos inteligentes Ethereum y firmas de eventos. Los selectores de funciones son los primeros 4 bytes del hash Keccak256 de una firma de función y se utilizan para identificar qué función llamar en un contrato inteligente. Las firmas de eventos (Topic0) son el hash Keccak256 completo de 32 bytes de la firma del evento. Esta herramienta genera selectores desde firmas y busca selectores comunes en una base de datos integrada.

¿Qué es un selector de función?

Un selector de función es un identificador de 4 bytes utilizado en Ethereum para especificar qué función llamar en un contrato inteligente. Se calcula como los primeros 4 bytes del hash Keccak256 de la firma de la función. Por ejemplo, la firma de función 'transfer(address,uint256)' genera el selector '0xa9059cbb'.

¿Cómo se calculan los selectores de funciones?

Los selectores de funciones se calculan:
1. Creando la firma de la función (ej., 'transfer(address,uint256)')
2. Computando el hash Keccak256 de la firma
3. Tomando los primeros 4 bytes (8 caracteres hex) del hash
4. Anteponiendo '0x' para crear el selector

¿Qué es una firma de evento (Topic0)?

Una firma de evento, también conocida como Topic0, es el hash Keccak256 completo de 32 bytes de una firma de evento. A diferencia de los selectores de funciones que usan solo 4 bytes, las firmas de eventos usan el hash completo. Esto se usa para identificar eventos en los registros de transacciones. Por ejemplo, 'Transfer(address,address,uint256)' genera un Topic0 único de 32 bytes.

¿Por qué buscar selectores de funciones?

Al analizar contratos inteligentes o transacciones, a menudo se encuentran selectores de funciones sin procesar (como 0xa9059cbb) sin saber qué función representan. Buscar selectores ayuda a comprender qué funciones se están llamando. Esto es especialmente útil para depuración, auditoría o comprensión de contratos desconocidos.

¿Cuál es la diferencia entre selectores de funciones y eventos?

Los selectores de funciones son de 4 bytes (8 caracteres hex) e identifican llamadas a funciones, mientras que las firmas de eventos son de 32 bytes (64 caracteres hex) e identifican eventos en registros. Los selectores de funciones se usan en datos de entrada de transacciones, mientras que las firmas de eventos aparecen como Topic0 en registros de transacciones.

Selector de Funciones Solidity — Genera selectores de función Solidity y hashes Topic0 de eventos desde firmas. Codifica selectores 4 bytes, busca firmas
Selector de Funciones Solidity

¿Cuál es la diferencia entre selector de función y Topic0 de evento?

El selector de función son los 4 PRIMEROS BYTES de Keccak256(funcName(types)) usados en calldata. El Topic0 del evento son los 32 BYTES completos de Keccak256(EventName(types)) usados como primer topic en logs. Las funciones son compactas (4 bytes) porque calldata cuesta gas; los eventos usan hash completo para indexado off-chain.

¿Por qué Keccak-256 en lugar de SHA3-256 para Ethereum?

Ethereum se estandarizó en la versión pre-NIST de Keccak-256 ANTES de que NIST la ajustara al SHA3 final (que añadió padding). Muchas librerías llaman keccak256 a la variante Ethereum para distinguir. SHA3-256 y Keccak-256 producen hashes DIFERENTES para el mismo input — usar SHA3 da selectores erróneos.

¿Pueden dos funciones distintas compartir accidentalmente el mismo selector 4 bytes?

Sí, se llama colisión de selector. La probabilidad es ~1 en 4.300 millones por par de funciones (2^32). La famosa colisión Solidity 0x42966c68: burn(uint256) y burn_uint256_(uint256). Compiladores modernos avisan de colisiones en un contrato. El riesgo está sobre todo en proxies donde controlas el delegatecall routing.

¿Cómo buscar un selector 4 bytes desconocido visto en Etherscan?

Pégalo en bases de firmas como 4byte.directory u Openchain.xyz — alojan millones de firmas canonizadas crowdsourced de contratos verificados. La herramienta enlaza a ambas. Si el selector no está en la base, la función probablemente vino de contrato no verificado o estrategia DEX privada; a veces puedes encajar el patrón calldata.

Características Principales

  • Genera selectores de funciones (4 bytes) desde firmas
  • Genera firmas de eventos (Topic0, 32 bytes)
  • Muestra hash Keccak256 completo
  • Busca selectores de funciones comunes en base de datos integrada
  • Valida formatos de firma y selector
  • Carga ejemplos aleatorios para pruebas
  • Enlaces a bases de datos de firmas externas (4byte.directory, Openchain)
  • Incluye más de 30 selectores comunes de ERC20, DeFi y gobernanza
  • Computación del lado del cliente para privacidad