Foundry를 사용해서 스마트 컨트랙트 디플로이 하는법

스마트 컨트랙트를 빌드하고 디플로이 하는데 truffle이나 hardhat을 많이 사용했었는데 요즘에는 foundry를 많이 사용하도록 올라오는 것 같다. 그래서 지금까지 한 번도 스마트 컨트랙트를 블록체인에 안 올려본 사람도 foundry를 사용해서 해볼 수 있도록 쉽게 설명한다.
맥용으로 foundry를 설치하고 스마트 컨트랙트를 올리게 하며 윈도 버전은 이와 비슷하게 진행하면 될 것 같다.

curl -L https://foundry.paradigm.xyz | bash이렇게 설치하면
foundryup를 실행할 수 있는데 만약 zsh: command not found: foundryup라고 나온다면,
위에 나오는 대로
`source /Users/hamin/.zshenv`(나의 경우) 이런 식으로 돌린 후 foundryup를 실행할 수 있다.

foundryup을 실행한 후 foundry를 설치하게 되고,
forge --version에 버전이 나오게 된다.

이게 forge가 설치되었으니 새로운 프로젝트를 만들어보자.
forge init cointrainer
forge init 다음 아무 프로젝트 이름이나 넣고 실행시킨다.

폴더로 만들어진 이 프로젝트를 vscode로 열어보면,

이런식으로 만들어진것을 확인할 수 있다. 이미 만들어져있는 Counter.sol을 폴리곤 뭄바이에 올려보자.
.env 파일을 폴더에 만들고

RPC_URL="https://polygon-mumbai-pokt.nodies.app"
PRIVATE_KEY=""
이렇게 두 개를 넣으면 된다. 프라이빗 키는 메타마스크에서 가져오면 되고
뭄바이의 토큰이 없다면,
https://mumbaifaucet.com/
여기서 받을 수 있다.

.env 파일에 RPC_URL과 PRIVATE_KEY넣고 vscode의 터미널을 킨다.
source .env
echo $RPC_URL
그러면 아까 env에 넣은 RPC_URL 값을 리턴 받을 수 있다.

이제 마지막으로 Counter.sol을 디플로이 하는 것만 남았다.
forge create --rpc-url $RPC_URL --private-key $PRIVATE_KEY src/Counter.sol:Counter
실제 예:

이제 디플로이가 되었다.
뭄바이스캔에 들어가 위의 Deployed to주소를 넣으면 디플로이가 된 것을 볼 수 있다.
뭄바이스캔 - https://mumbai.polygonscan.com/

이미지 출처: OpenAI의 DALL·E를 통해 생성됨


