컨트랙트를 테스트할 때 매번 메인넷 혹은 테스트넷을 사용하려면 생각보다 번거로울 수 있다. 이럴 때 ganache를 통해 local로 노드를 돌리고 메인넷을 fork 해오면 부담 없이 테스트할 수 있다.
터미널을 열어서 아래 명령어를 통해 ganache를 설치해주자.
npm install ganache --global
도커 홈페이지에서 각 운영체제에 맞게 다운로드 받을 수 있다.
지난번에 추가한 chainstack 네트워크와 도커를 활용해 ganache를 실행한다.
sudo docker run -p 8545:8545 trufflesuite/ganache:latest --fork.url <http 엔드포인트 복붙> --chain.hardfork istanbul --wallet.mnemonic brownie
이제 새 터미널을 열어서 앞서 fork한 아발란체 메인넷 네트워크를 추가해주고
brownie networks add Docker ganache-avax-fork host=http://127.0.0.1:8545 chainid=1337 explorer=https://api.snowtrace.io/api
네트워크에 연결하면 끝!
brownie console --network ganache-avax-fork
현재 블록과 ganache로 만든 계정의 잔고를 확인할 수 있다.
>>> chain.height
22916097
>>> accounts[0].balance()
1000000000000000000000