Clone Contracts
Pobiera zweryfikowany kod źródłowy Solidity z Etherscan V2, rozwiązuje proxy, przepisuje importy @ na ścieżki względne.
Działa po konfiguracji
Co robi ten skill
Pobiera zweryfikowany kod źródłowy kontraktu dla dowolnego adresu na ponad 20 łańcuchach EVM za pomocą API Etherscan V2, automatycznie rozwiązuje kontrakty proxy do ich implementacji i przepisuje importy w stylu npm/Foundry @ na ścieżki względne, dzięki czemu klon jest czytelny bez remapowań. Uruchamia się podczas audytu zewnętrznej integracji, śledzenia międzykontraktowego wywołania lub potrzeby kodu źródłowego kontraktu, którego nie ma w głównym kodzie bazowym.
Raport z testu
Przeprowadziłem główny potok na żywo na syntetycznych danych JSON w stylu Etherscan: poprawnie podzielił kod źródłowy wielu plików, przepisał import `@openzeppelin/...` na właściwą ścieżkę względną `../lib/...` i ułożył kontrakty/interfejsy/lib dokładnie tak, jak udokumentowano. Rzeczywiste tarcie: samo SKILL.md mówi 'uruchom ./setup.sh', który buduje venv i wrapper ~/.local/bin i potrzebuje darmowego klucza API Etherscan - zwykła kopia folderu nie daje działającego polecenia `clone-external`. Złapałem też rzeczywisty błąd: nieprawidłowy/brakujący klucz API powoduje awarię z komunikatem `'str' object has no attribute 'get'`, zamiast czystego błędu.
Testowano: 2026-07-15 · Claude Code 2.x (agent harness)
Instalacja
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)
Komendy i przykładowe prompty
/clone-contractsPobiera zweryfikowany kod źródłowy Solidity z Etherscan V2, rozwiązuje proxy, przepisuje importy @ na ścieżki względne.
Skille uruchamiają się na zwykłe polecenia — bez komend do zapamiętania. Po instalacji aktywują go prompty takie jak te (po angielsku):
Clone the verified WETH contract source so I can read it locallyPull this proxy contract's implementation source from EtherscanFetch this contract and rewrite its imports to relative paths