Zum Inhalt springen
AtheronLABS

Erkanntes Land: Vereinigte Staaten. Preise werden in US-Dollar angezeigt. Nicht richtig?

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

Atheron Lens

Vertragsfehler finden, bevor Sie deployen.

Ein quelloffener statischer Analysator für Smart Contracts. Er liest Ihren Code, markiert die Fehler, die Prüfer am häufigsten finden, und sagt Ihnen, wie Sie jeden beheben.

// stand

In Entwicklung.

Wir bauen Lens gerade. Der Quellcode öffnet sich zum Start auf GitHub, und der Link erscheint am selben Tag auf dieser Seite.

quellcode
Öffnet zum Start
lizenz
Apache-2.0 und MIT
befehl
lens

// was es tut

Ein zweiter Blick auf jeden Commit.

Lens prüft Ihre Verträge, ohne sie auszuführen. Es sucht nach bekannten Risikomustern und meldet jeden Befund: wo er steht, warum er zählt und einen Hinweis zur Behebung.

  • Rund 25 treffsichere Prüfungen in der ersten Version: Reentrancy, ungeprüfte Aufrufe, Zugriffskontrolle, tx.origin, delegatecall und Proxys, Initialisierer, Genauigkeit, Signatur-Replay, Zufall, Orakel-Manipulation und Denial of Service über Gas.
  • Berichte als SARIF für das Code-Scanning von GitHub und als Markdown für Menschen.
  • Eine Binärdatei pro Plattform, schnell genug für ein großes Projekt in Sekunden.
  • Keine Netzwerkaufrufe während der Analyse. Ihr Code bleibt auf Ihrem Rechner.

// für wen

Für alle, die Verträge ausliefern.

01

Vertragsentwickler

Finden Sie die offensichtlichen Fehler selbst, bei jedem Speichern oder Commit, bevor es ein Prüfer tut.

02

Teams vor einem Audit

Erledigen Sie zuerst die einfachen Befunde, damit die bezahlte Auditzeit den schweren Fragen gilt.

03

Prüfer und Auditoren

Ein schneller erster Durchgang über eine Codebasis, mit Befunden zum Exportieren und Nachverfolgen.

// sprachen

Alle großen Vertragssprachen.

Eine Engine, jede Sprache als Modul. Die erste Version deckt die EVM ab; die anderen folgen in dieser Reihenfolge.

EVM
Solidity und Vypererste Version
Rust
Solana (nativ und Anchor), CosmWasm, ink!danach
Move
Aptos und Suidanach
Cairo
Starknetdanach
WebAssembly
Kompilierte Wasm-Verträge, gleich aus welcher Sprachedanach

// schnellstart

Ein Befehl zum Prüfen.

Lens ist ein Kommandozeilenwerkzeug namens lens. So funktioniert es in der Version, die wir bauen; Details können sich bis zum Start ändern.

// Einen Ordner mit Verträgen prüfen

lens scan ./contracts

// Einen SARIF-Bericht für das Code-Scanning von GitHub schreiben

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

// Bei jedem Pull Request ausführen

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

Die Installationsschritte für jede Plattform erscheinen zum Start mit dem Quellcode.

// beispielbericht

So sieht ein Befund aus.

Ein Beispiel für den Bericht, den Lens zu einem Befund schreibt. Vertrag und Zeile sind für diese Seite erfunden.

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.

// in ihrem editor

Befunde schon beim Tippen.

Nach der Kommandozeile kommt Lens über einen Language Server in die Editoren, in dieser Reihenfolge:

  • VS Code, im Marketplace und auf Open VSX (also auch Cursor, Windsurf und VSCodium)
  • Remix IDE
  • Die IDEs von JetBrains
  • Neovim, Zed, Helix, Sublime Text und Emacs

// lizenz

Kostenlos, unter zwei Lizenzen.

Lens steht unter der doppelten Lizenz Apache-2.0 und MIT. Wählen Sie, was zu Ihnen passt.

// mehr nötig

Auch ein Mensch dazu?

Ein Werkzeug findet Muster. Unsere Ingenieure können Ihre Verträge von Hand prüfen, mit Lens als Ausgangspunkt.

Atheron Lens | Atheron Network Labs