이더리움 온보딩 프로그램의 과제 제출 저장소입니다.
git clone --recurse-submodules https://github.com/your-org/eth-homework.git
cd eth-homeworkNote:
--recurse-submodules옵션을 사용해야 Foundry 라이브러리가 함께 다운로드됩니다.
-
Foundry 설치:
curl -L https://foundry.paradigm.xyz | bash foundryup -
의존성 설치:
forge install
Note:
--recurse-submodules옵션 없이 클론한 경우, forge-std 라이브러리를 수동으로 설치해야 합니다:forge install foundry-rs/forge-std
-
빌드 테스트:
forge build
| 주차 | 이론 | 개발 | 주제 |
|---|---|---|---|
| Week 1 | Quiz | Counter | 블록체인 기초 & Solidity 입문 |
| Week 2 | Quiz | ERC20 | 이더리움 구조 & 토큰 표준 |
| Week 3 | Quiz | Vault | 트랜잭션 & 보안 기초 |
| Week 4 | Quiz | NFT | 스마트 컨트랙트 심화 |
| Week 5 | Quiz | DEX | DeFi 기초 |
| Week 6 | - | Final | 최종 프로젝트 |
각 주차 폴더에는 다음이 포함됩니다:
theory/: 이론 퀴즈 템플릿dev/: 개발 과제 (src, test, script)
자신의 GitHub 사용자명과 주차를 조합하여 브랜치를 만듭니다:
git checkout -b username/week-01- 이론:
week-XX/theory/폴더의 템플릿을 복사하여 답안 작성 - 개발:
week-XX/dev/src/폴더의 TODO를 구현
# 개발 과제 테스트
forge test
# 특정 주차만 테스트
forge test --match-path "week-01/*"git add .
git commit -m "feat(week-01): complete counter assignment"
git push -u origin username/week-01GitHub에서 Pull Request를 생성합니다. PR 템플릿에 따라 배운 점과 어려웠던 점을 작성해주세요.
자세한 제출 가이드는 CONTRIBUTING.md를 참조하세요.
Foundry는 로컬 테스트뿐만 아니라 Sepolia, 메인넷 등 실제 네트워크에도 연결할 수 있습니다.
| 도구 | 설명 |
|---|---|
forge |
컴파일, 테스트, 배포 |
cast |
온체인 데이터 조회, 트랜잭션 전송 |
anvil |
로컬 테스트넷 실행 |
chisel |
Solidity REPL |
# 로컬넷 실행
anvil
# 다른 터미널에서 배포
forge script script/Deploy.s.sol --rpc-url http://localhost:8545 --broadcast-
.env파일 설정:cp .env.example .env # .env 파일에 API 키와 프라이빗 키 입력 -
배포:
forge script script/Deploy.s.sol \ --rpc-url https://sepolia.infura.io/v3/YOUR_API_KEY \ --private-key YOUR_PRIVATE_KEY \ --broadcast
-
컨트랙트 조회:
cast call 0x컨트랙트주소 "balanceOf(address)" 0x지갑주소 \ --rpc-url https://sepolia.infura.io/v3/YOUR_API_KEY
foundry.toml에 RPC 엔드포인트를 설정하면 편리합니다:
[rpc_endpoints]
sepolia = "https://sepolia.infura.io/v3/${INFURA_API_KEY}"
mainnet = "https://mainnet.infura.io/v3/${INFURA_API_KEY}"이후 간단히 사용:
forge script script/Deploy.s.sol --rpc-url sepolia --broadcast과제 수행 중 어려움이 있다면:
- Issue 생성: 질문 템플릿을 사용해 질문을 올려주세요.
- 동기들과 토론: 같은 주차를 진행하는 동기들과 함께 고민해보세요.
- 리뷰어에게 질문: PR 코멘트로 리뷰어에게 직접 질문할 수 있습니다.
eth-homework/
├── README.md # 이 파일
├── CONTRIBUTING.md # 상세 제출 가이드
├── foundry.toml # Foundry 설정
├── .env.example # 환경변수 예시
├── lib/ # Foundry 라이브러리 (forge-std)
├── week-01/
│ ├── theory/ # 이론 퀴즈
│ │ └── quiz-01-template.md
│ └── dev/ # 개발 과제
│ ├── src/ # 구현할 컨트랙트
│ ├── test/ # 제공되는 테스트
│ └── script/ # 배포 스크립트
├── week-02/ ... week-06/ # 각 주차별 동일 구조
└── .github/
├── PULL_REQUEST_TEMPLATE.md
└── ISSUE_TEMPLATE/
└── help-request.md
Made with by Bay-17th