블록체인
[Solidity] 하드햇 튜토리얼 요약
viviviviviid
2024. 6. 11. 15:48
예전에 해둔 요약 그대로 포스팅
Hardhat | Ethereum development environment for professionals by Nomic Foundation
Hardhat is an Ethereum development environment. Compile your contracts and run them on a development network. Get Solidity stack traces, console.log and more.
hardhat.org
Hardhat 튜토리얼
- npm init
- 하드햇 깔고
- config 빈 파일 생성하고
- 플러그인(toolbox : 유용한거 다 들어있음) 설치하고 config 파일에 추가하기
- contracts와 test 폴더 생성
- contracts 폴더 내에 *.sol 파일 생성 및 내용 채워넣기
- 그 뒤, npx hardhat compile 하면 자동으로 contracts 내의 컴파일이 안된 *.sol 코드를 컴파일해줌
- 그러면 자동으로 /artifacts와 /cache 폴더가 생성되면서, 컴파일된 내용들이 추가됨
- 이제 컴파일된 컨트랙트가 정상적인 출력값을 내놓는지 테스트하려함.
- js의 chai 라이브러리 기반으로 테스트 코드를 작성
- chai 내의 test, describe, it 모듈들 설명
- toolbox의 loadFixture 모듈 설명 (중복 코드 해결)
- waitForDeployment()를 이용해서 배포된 다음 진행되게
- hardhat/console.sol을 solidity 파일에 임포트하고, 함수내에서 이벤트 emit 외에도, consoke.log함수를 이용하면 하드햇 터미널에서도 이벤트가 발생된다.
- hardhat ignition 으로 다른 체인에 배포
- 배포 스크립트: deploy.js에서 명령형으로 작성.
- 배포 과정: 터미널에서 npx hardhat run 명령으로 실행.
- 특징: 단순하고 명령형이며, 병렬 처리나 오류 복구 기능이 기본적으로 포함되지 않음.
- 모듈 파일: TokenModule.js에서 선언형으로 작성.
- 배포 과정: 터미널에서 npx hardhat ignition deploy 명령으로 실행.
- 특징: 선언형 접근 방식으로 병렬 처리, 오류 복구, 중단된 배포 재개 등의 고급 기능 제공.
- 일반적인 Hardhat 배포 방식
- /ignition/modules 폴더를 생성하고 그 내에 js 파일 생성 및 채워넣기
- npx hardhat ignition deploy ./ignition/modules/Token.js —network <네트워크이름>에서 —network 파라미터를 사용하지 않으면 실행은 되지만, 실행이 끝난 이후 전부 날라가게된다.
- 다른 네트워크에 배포하기 위해, hardhat.config 파일 내에서 INFURA 세팅을 해주자