Aller au contenu
AtheronLABS

Pays détecté : États-Unis. Les prix sont affichés en dollars américains. Ce n’est pas le bon pays ?

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

Repérez vous-même les failles évidentes, à chaque enregistrement ou commit, avant un réviseur.

02

Équipes avant un audit

Réglez d’abord les constats faciles, pour que le temps d’audit payé serve aux vraies questions.

03

Réviseurs et auditeurs

Un premier passage rapide sur une base de code, avec des constats à exporter et à suivre.

// 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.sarif

Les é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.

Atheron Lens | Atheron Network Labs