Clone Contracts

Henter verifisert Solidity-kilde fra Etherscan V2, løser proksier, skriver om @-imports til relative stier.

av TheSchnilch · TheSchnilch/CloneContractsSkill

Krever oppsett ★ 8.8/10

Clone Contracts — Henter verifisert Solidity-kilde fra Etherscan V2, løser proksier, skriver om @-imports til relative stier.

Hva den gjør

Henter verifisert kontraktskilde for enhver adresse på tvers av 20+ EVM-kjeder via Etherscan V2 API, løser automatisk proxy-kontrakter til deres implementasjon, og skriver om npm/Foundry-stil @-imports til relative stier slik at klonen leses rent uten remapping. Utløses ved gjennomgang av en ekstern integrasjon, sporing av et kryss-kontrakt-kall, eller behov for kildekoden til en kontrakt som ikke er i hovedkodebasen.

Testrapport

Kjørte kjerne-pipelinen live på syntetisk Etherscan-stil JSON: den delte korrekt en multi-fil kilde, skrev om en `@openzeppelin/...` import til riktig relativ `../lib/...` sti, og la ut contracts/interfaces/lib nøyaktig som dokumentert. Reell friksjon: SKILL.md selv sier 'kjør ./setup.sh', som bygger en venv og en ~/.local/bin wrapper og trenger en gratis Etherscan API-nøkkel - en ren mappe-kopi gir deg ikke en fungerende `clone-external` kommando. Fanget også en reell feil: en ugyldig/manglende API-nøkkel krasjer med `'str' object has no attribute 'get'` i stedet for en ren feil.

Testet på: 2026-07-15 · Claude Code 2.x (agent harness)

Installer

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)

Kommandoer og eksempelprompter

  • /clone-contractsHenter verifisert Solidity-kilde fra Etherscan V2, løser proksier, skriver om @-imports til relative stier.

Skills utløses av vanlige forespørsler — ingen kommandoer å huske. Etter installasjonen aktiverer prompter som disse skillen (på engelsk):

  • 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