[SCH] Smart Contract Hacking 클래스 시작

0xDave·2023년 3월 14일
0

Ethereum

목록 보기
93/112


영상 강의?!


혼자서 리포트를 읽으며 컨트랙트 오딧을 공부하는 것도 좋지만 영상으로 정리된 강의가 있으면 좋겠다고 생각했었다. Coursera 또는 Udemy에 블록체인 강의는 있지만 스마트컨트랙트 보안 관련 강의는 없다. 그러던 어느 날 한 트윗을 발견하게 되는데..

사실 예전부터 팔로우하던 사람이었고, 유튜브에 올리는 컨트랙트 관련 교육 영상이 맘에 들어서 트위터까지 팔로우하게 된 케이스다. 그 동안 현생에 치여서 못 했던 취약점 종류와 전체적인 개념 정리를 할 수 있을 것 같아 신청했다. 게다가 요즘 가장 핫한 TrustPashov의 보너스 영상까지 있다고 해서 충동구매를 했다.


Hardhat


아쉽게도 foundry가 아닌 hardhat을 주로 다룬다. 개인적으로 foundry를 더 선호하지만 나중에 hardhat으로 테스트 코드를 작성할 일이 있을 것이다. 이번 강의를 통해 hardhat에 익숙해질 수 있는 기회라고 생각해야겠다.


mkdir learn-hardhat
cd learn-hardhat
npx hardhat

폴더를 하나 만들고 프로젝트를 생성한다. IDE로 폴더를 열면 기본 컨트랙트인 Lock.sol이 있을 것이다.


npx hardhat compile  

컴파일 해주고


npx hardhat run ./scripts/deploy.js

script 폴더 안에 있는 파일을 이용해 deploy 해준다. 아래와 같이 컨트랙트가 잘 배포된 것을 알 수 있다.


npx hardhat test ./test/Lock.js   

이제 test 폴더에 있는 파일을 이용해 test 코드를 돌려본다. 아래와 같이 정상적으로 테스트를 통과한 것을 볼 수 있다.


npx hardhat node 

위 명령어를 통해 로컬 환경에서 노드를 돌릴 수 있다. 명령어를 통해 생성된 프라이빗키를 메타마스크에 임포트하고, 로컬 네트워크로 변경해서 사용할 수 있다.(이 때 chainID는 31337로 설정해야 한다.)

profile
Just BUIDL :)

0개의 댓글