Clone Contracts

Stáhne ověřený zdrojový kód Solidity z Etherscan V2, vyřeší proxy a přepíše @-importy na relativní cesty.

od TheSchnilch · TheSchnilch/CloneContractsSkill

Funguje s nastavením ★ 8.8/10

Clone Contracts — Stáhne ověřený zdrojový kód Solidity z Etherscan V2, vyřeší proxy a přepíše @-importy na relativní cesty.

Co umí

Načte ověřený zdrojový kód kontraktu pro jakoukoli adresu napříč 20+ EVM řetězci prostřednictvím Etherscan V2 API, automaticky vyřeší proxy kontrakty na jejich implementaci a přepíše @-importy ve stylu npm/Foundry na relativní cesty, takže klon čte čistě bez přemapování. Spouští se při auditu externí integrace, sledování křížového volání kontraktů nebo potřebě zdrojového kódu kontraktu, který není v hlavním kódovém základu.

Testovací report

Provedl hlavní pipeline naživo na syntetických datech Etherscan-style JSON: správně rozdělil vícesouborový zdroj, přepsal import `@openzeppelin/...` na správnou relativní cestu `../lib/...` a uspořádal kontrakty/rozhraní/knihovny přesně podle dokumentace. Skutečné tření: samotný SKILL.md říká 'run ./setup.sh', který sestaví venv a wrapper ~/.local/bin a potřebuje bezplatný API klíč Etherscan -- prosté kopírování složky vám nedá funkční příkaz `clone-external`. Také zachytil skutečnou chybu: neplatný/chybějící API klíč selže s `'str' object has no attribute 'get'` místo čisté chyby.

Testováno: 2026-07-15 · Claude Code 2.x (agent harness)

Instalace

git clone https://github.com/TheSchnilch/CloneContractsSkill
cd CloneContractsSkill && ./setup.sh   # creates venv + ~/.local/bin/clone-external wrapper, prompts for a free ETHERSCAN_API_KEY
# (a bare `cp -r` alone will NOT make the `clone-external` command work)

Příkazy a ukázkové prompty

  • /clone-contractsStáhne ověřený zdrojový kód Solidity z Etherscan V2, vyřeší proxy a přepíše @-importy na relativní cesty.

Skilly se spouštějí běžnými požadavky — žádné příkazy k zapamatování. Po instalaci ho aktivují prompty jako tyto (anglicky):

  • Clone the verified WETH contract source so I can read it locally
  • Pull this proxy contract's implementation source from Etherscan
  • Fetch this contract and rewrite its imports to relative paths