Saltar al contenido
AtheronLABS

País detectado: Estados Unidos. Los precios se muestran en dólares estadounidenses. ¿No es correcto?

labs@atheron:~/open-source/lens$ lens scan ./contracts

Atheron Lens

Fallos de contrato, antes de desplegar.

Un analizador estático de código abierto para contratos inteligentes. Lee su código, señala los fallos que más encuentran los auditores y le dice cómo corregir cada uno.

// estado

En desarrollo.

Estamos construyendo Lens ahora. El código se abre en GitHub en el lanzamiento, y el enlace aparecerá en esta página ese mismo día.

código
Se abre en el lanzamiento
licencia
Apache-2.0 y MIT
comando
lens

// qué hace

Otro par de ojos en cada commit.

Lens revisa sus contratos sin ejecutarlos. Busca patrones de riesgo conocidos e informa de cada hallazgo: dónde está, por qué importa y una pista para corregirlo.

  • Unas 25 comprobaciones de alta señal en la primera versión: reentrada, llamadas sin comprobar, control de acceso, tx.origin, delegatecall y proxies, inicializadores, precisión, repetición de firmas, aleatoriedad, manipulación de oráculos y denegación de servicio por gas.
  • Informes en SARIF para el escaneo de código de GitHub, y en Markdown para las personas.
  • Un solo ejecutable por plataforma, lo bastante rápido para un proyecto grande en segundos.
  • Ninguna llamada de red durante el análisis. Su código se queda en su equipo.

// para quién

Para quien publica contratos.

01

Desarrolladores de contratos

Encuentre usted mismo los fallos evidentes, en cada guardado o commit, antes que un revisor.

02

Equipos antes de una auditoría

Resuelva primero los hallazgos fáciles, para que el tiempo de auditoría pagado vaya a las preguntas difíciles.

03

Revisores y auditores

Una primera pasada rápida sobre una base de código, con hallazgos que puede exportar y seguir.

// lenguajes

Los grandes lenguajes de contratos.

Un solo motor, con cada lenguaje como módulo. La primera versión cubre la EVM; los demás llegan en este orden.

EVM
Solidity y Vyperprimera versión
Rust
Solana (nativo y Anchor), CosmWasm, ink!después
Move
Aptos y Suidespués
Cairo
Starknetdespués
WebAssembly
Contratos Wasm compilados, vengan del lenguaje que vengandespués

// inicio rápido

Un comando para analizar.

Lens es una herramienta de línea de comandos llamada lens. Así funciona en la versión que estamos construyendo; algunos detalles pueden cambiar antes del lanzamiento.

// Analizar una carpeta de contratos

lens scan ./contracts

// Escribir un informe SARIF para el escaneo de código de GitHub

lens scan ./contracts --format sarif > lens.sarif

// Ejecutarlo en cada pull request

- name: Atheron Lens
  run: lens scan ./contracts --format sarif > lens.sarif

Los pasos de instalación para cada plataforma se publican con el código en el lanzamiento.

// informe de ejemplo

Así se ve un hallazgo.

Un ejemplo del informe que Lens escribe para un hallazgo. El contrato y la línea son inventados para esta página.

HIGH  reentrancy  contracts/Vault.sol:42

  withdraw() sends ETH before it updates balances[msg.sender].
  A contract that calls back into withdraw() can drain the vault.

  fix: update the balance first (checks, effects, interactions),
       or guard withdraw() with a reentrancy lock.

// en su editor

Hallazgos mientras escribe.

Después de la línea de comandos, Lens llega a los editores mediante un servidor de lenguaje, en este orden:

  • VS Code, en el Marketplace y en Open VSX (así también Cursor, Windsurf y VSCodium)
  • Remix IDE
  • Los IDE de JetBrains
  • Neovim, Zed, Helix, Sublime Text y Emacs

// licencia

Gratis, con dos licencias.

Lens tiene doble licencia, Apache-2.0 y MIT. Elija la que le convenga.

// algo más

¿Quiere también a una persona?

Una herramienta encuentra patrones. Nuestros ingenieros pueden revisar sus contratos a mano, con Lens como punto de partida.

Atheron Lens | Atheron Network Labs