labs@atheron:~/open-source/lens$ lens scan ./contracts
Atheron Lens
Les failles repérées avant le déploiement.
Un analyseur statique libre pour les contrats intelligents. Il lit votre code, signale les failles que les auditeurs trouvent le plus souvent et vous dit comment corriger chacune.
// état
En développement.
Lens est en cours de développement. Le code source s’ouvre sur GitHub au lancement, et le lien paraîtra sur cette page le jour même.
- code source
- Ouvert au lancement
- licences
- Apache-2.0 et MIT
- commande
lens
// ce qu’il fait
Un deuxième regard à chaque commit.
Lens vérifie vos contrats sans les exécuter. Il cherche les motifs de risque connus et décrit chaque constat : où il se trouve, pourquoi il compte et une piste de correction.
- Environ 25 vérifications ciblées dans la première version : réentrance, appels non vérifiés, contrôle d’accès, tx.origin, delegatecall et mandataires, initialiseurs, précision, rejeu de signature, aléa, manipulation d’oracle et déni de service par le gaz.
- Rapports en SARIF pour l’analyse de code de GitHub, et en Markdown pour les personnes.
- Un seul exécutable par plateforme, assez rapide pour un grand projet en quelques secondes.
- Aucun appel réseau pendant l’analyse. Votre code reste sur votre machine.
// pour qui
Quiconque publie des contrats.
01
Développeurs de contrats
02
Équipes avant un audit
03
Réviseurs et auditeurs
// langages
Tous les grands langages de contrats.
Un seul moteur, chaque langage en module. La première version couvre l’EVM; les autres suivent dans cet ordre.
- EVM
- Solidity et Vyperpremière version
- Rust
- Solana (natif et Anchor), CosmWasm, ink!ensuite
- Move
- Aptos et Suiensuite
- Cairo
- Starknetensuite
- WebAssembly
- Contrats Wasm compilés, quel que soit leur langage d’origineensuite
// démarrage rapide
Une commande pour analyser.
Lens est un outil en ligne de commande appelé lens. Voici comment il fonctionne dans la version en cours; des détails peuvent changer d’ici le lancement.
// Analyser un dossier de contrats
lens scan ./contracts// Écrire un rapport SARIF pour l’analyse de code de GitHub
lens scan ./contracts --format sarif > lens.sarif// L’exécuter à chaque demande de tirage
- name: Atheron Lens
run: lens scan ./contracts --format sarif > lens.sarifLes étapes d’installation pour chaque plateforme paraissent avec le code source au lancement.
// exemple de rapport
À quoi ressemble un constat.
Un exemple du rapport que Lens écrit pour un constat. Le contrat et la ligne sont inventés pour cette page.
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.// dans votre éditeur
Les constats pendant la frappe.
Après la ligne de commande, Lens arrive dans les éditeurs grâce à un serveur de langage, dans cet ordre :
- VS Code, sur le Marketplace et Open VSX (donc aussi Cursor, Windsurf et VSCodium)
- Remix IDE
- Les IDE de JetBrains
- Neovim, Zed, Helix, Sublime Text et Emacs
// licences
Gratuit, sous deux licences.
Lens est offert sous double licence, Apache-2.0 et MIT. Choisissez celle qui vous convient.
// aller plus loin
Besoin d’un regard humain?
Un outil repère des motifs. Nos ingénieurs peuvent revoir vos contrats à la main, en partant de Lens.