
백엔드
hardhat과 typechain을 사용한 컨트랙트 개발
두줄요약
Truffle의 검증·타입 지원 불편을 줄이기 위해 Hardhat과 TypeChain 도입 과정을 정리했습니다. ERC20 구현부터 TypeScript 테스트, Ropsten 배포와 Etherscan 검증 설정을 설명합니다.
문제 상황
- Truffle 환경의 수동 Etherscan 검증과 반복적인 flatten 작업 부담
- 스마트 컨트랙트 테스트·배포 과정에서 부족한 TypeScript 정적 타입 지원
해결 방법
- Hardhat으로 컴파일·테스트·배포를 통합하고 Etherscan 검증 자동화 구성
@typechain/hardhat으로 Solidity 컴파일 시 TypeScript 아티팩트 자동 생성- OpenZeppelin ERC20 상속 기반의
AssetToken구현과 타입 기반 테스트 작성
구조와 흐름
- ethers·ethereum-waffle·chai 기반의 지갑 모킹, 컨트랙트 배포, 잔액 검증
- Infura provider·환경 변수의 private key·Ropsten 네트워크 설정 후 배포 스크립트 실행
- Etherscan API 키와 플러그인을 통한 배포 컨트랙트 소스 검증 연계
주의할 점
- 기존
hardhat-typechain대신@typechain/hardhat사용 필요 - JSON 아티팩트 import를 위한
tsconfig.json의resolveJsonModule설정 - 배포 계정의 private key 관리와 테스트넷 가스비 준비
