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
02
Equipos antes de una auditoría
03
Revisores y auditores
// 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.sarifLos 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.