스마트 컨트랙트 아티팩트 관리하기
전체 재컴파일, 대상 업데이트, 작업 공간 정리와 같은 일반적인 개발 작업을 위해 compile_smart_contracts.py 스크립트를 사용하는 실용적인 가이드입니다.
사전 요구사항
- Maroo 리포지토리를 로컬에 클론.
- Python 3.8+ 및 Node.js 18+ 설치.
작업 1: 모든 컨트랙트 전체 재컴파일
개발 환경을 처음 설정하거나 여러 컨트랙트에 영향을 미치는 주요 변경 사항을 가져온 후에는 전체 재컴파일을 수행해야 합니다. 이는 모든 아티팩트가 최신 상태임을 보장합니다.
# 1. Hardhat 의존성이 설치되었는지 확인
cd contracts
yarn install
# 2. 컴파일 스크립트 실행
cd ../scripts/compile_smart_contracts
python3 compile_smart_contracts.py --compile 참고: 전체 재컴파일은 리포지토리의 모든 Solidity 파일을 처리하므로 1~2분 정도 소요될 수 있습니다.
작업 2: 단일 컨트랙트 신속하게 업데이트하기
기능을 개발하는 동안 단일 인터페이스 파일을 약간 변경하는 경우가 많습니다. 전체 재컴파일 대신
--add 플래그를 사용하여 해당 특정 파일의 아티팩트만 업데이트할 수 있습니다. 이것이 훨씬 빠릅니다.# 예시: precompiles/okrw/IOkrw.sol에 새로운 함수를 추가한 경우
cd scripts/compile_smart_contracts
python3 compile_smart_contracts.py --add precompiles/okrw/IOkrw.sol 작업 3: 빌드 환경 정리하기
이상한 컴파일 오류가 발생하거나 캐싱 문제가 의심되는 경우 빌드 환경을 정리하는 것이 좋습니다.
--clean 명령어는 생성된 모든 아티팩트, 집계된 소스 파일 및 Hardhat 프로젝트 내의 node_modules 디렉토리를 제거합니다.cd scripts/compile_smart_contracts
python3 compile_smart_contracts.py --clean 주의: `--clean`을 실행한 후에는 컴파일하기 전에 `contracts/` 디렉토리에서 `yarn install`을 다시 실행해야 합니다.