Foundry로 스마트 컨트랙트 배포하기
소개
Foundry는 개발자가 Solidity 스크립트를 통해 명령줄에서 컨트랙트를 관리 및 컴파일하고, 테스트를 실행하고, 컨트랙트를 배포하고, 네트워크와 상호작용할 수 있도록 지원하는 Rust로 작성된 스마트 컨트랙트 개발 프레임워크입니다.
Foundry는 빠르고 모듈화된 스마트 컨트랙트 개발을 가능하게 하는 네 가지 주요 CLI 도구로 구성되어 있습니다:
- Forge: Forge를 사용하여 스마트 컨트랙트를 배포, 테스트 및 컴파일할 수 있습니다.
- Cast: 캐스트는 EVM 스마트 컨트랙트와의 상호작용을 간단하게 만들어줍니다. 여기에는 체인 데이터 가져오기, 트랜잭션 전송 등이 포함됩니다.
- Anvil: 로컬 노드를 스핀업해야 하나요? Anvil은 Foundry에서 제공하는 로컬 노드 환경입니다.
- Chisel: 빠르고 유용하며 자세한 Solidity REPL.
이 가이드에서는 다음을 수행합니다:
- 간단한 Foundry 프로젝트를 생성합니다.
- Foundry를 사용하여 스마트 컨트랙트 샘플을 컴파일하고 테스트합니다.
- Foundry를 사용하여 스마트 컨트랙트를 카이아 Kairos 네트워크에 배포합니다.
- Cast와 Anvil로 메인넷 포크 살펴보기.
사전 요구 사항
이 튜토리얼을 따르기 위한 전제 조건은 다음과 같습니다:
- 코드 편집기: VS-Code와 같은 소스 코드 편집기.
- MetaMask: used to deploy the contracts, sign transactions and interact with the contracts.
- RPC Endpoint: you can get this from one of the supported endpoint providers.
- Test KAIA from Faucet: fund your account with sufficient KAIA.
- Rust 및 Foundry를 설치합니다.
개발 환경 설정하기
Foundry 설치가 성공적으로 완료되었는지 확인하려면 아래 명령을 실행하세요:
forge -V
출력
Foundry를 성공적으로 설치했으면 이제 Foundry에서 사용할 수 있는 CLI 도구(forge, cast, anvil, chisel)에 액세스할 수 있습니다. 다음 단계에 따라 Foundry 프로젝트를 설정해 보겠습니다:
1단계: 새 프로젝트를 시작하려면 아래 명령을 실행합니다:
forge init foundry_example
2단계: 프로젝트 폴더로 이동합니다.
cd foundry_examplels
Foundry 프로젝트를 초기화한 후, 현재 디렉터리에 다음이 포함되어야 합니다:
- src: 스마트 컨트랙트의 기본 디렉터리입니다.
- tests: 테스트를 위한 기본 디렉터리.
- foundry.toml: 기본 프로젝트 구성 파일.
- lib: 프로젝트 종속성을 위한 기본 디렉터리.
- script: Solidity 스크립팅 파일의 기본 디렉터리.