본문 바로가기
BlockChain

ERC20 스마트 컨트랙트 (SmartContract) 테스트넷에 배포해보자 [3]

by parkjp 2023. 8. 26.

 

시작하기 앞서

지난 편에서 Ganache로 로컬 배포를 진행해 보았다. 이번편에서는 Sepolia라는 이더리움 테스트넷에 배포를 진행해 보겠다. 테스트 넷에 배포하면 Etherscan이라는 홈페이지에서 확인이 가능하다.

 

 

 

ERC-20 테스트넷 배포 설정

우선 @truffle/hdwallet-provider와 truffle-flatten이라는 dependency를 받자.

npm install @truffle/hdwallet-provider
npm install truffle-flatten

 

 

그리고 Infura라는 이더리움 노드를 쉽게 연결할 수 있게 제공해주는 곳에서 노드 연결을 위한 API key와 연결 주소를 받아야한다. 개인이 혼자 이더리움 노드에 연결하려면 직접 노드를 돌려 연결해야하는데 주변에 있는 피어들과 동기화를 진행하고 체인의 사본을 다운받으려면 생각보다 큰 데이터를 받아야하고 테스트넷이 아닌 메인넷의 경우 이러한 문제들 때문에 비용이 발생할 수 있다. 이러한 문제점을 간단히 해결해 주는 것이 Infura이다. Infura에서는 노드에 접근 가능한 엔드포인트(연결 주소)를 제공하고 우리는 이 주소로 체인에 접근할 수 있다.

 

https://www.infura.io/en

 

Infura에서 API key를 생성하고 이더리움 Sepolia 테스트 네트워크의 주소를 받자.

참고로 Infura는 무료 플랜 하루 100,000건의 요청 제한이 있으니 참고바란다.

 

 

자, 이제 여기까지 진행이 되었다면 truffle-config.js 파일을 수정할 차례이다.

const HDWalletProvider = require('@truffle/hdwallet-provider');

{
    networks: {
        sepolia: {
          provider: () => new HDWalletProvider(mnemonic, infura_sepolia_endpoint),
          network_id: "11155111",
          gas: 4465030
        }
    },
    compilers: {
        solc: {
          version: "0.8.19"
        }
    },
    plugins: ['truffle-flatten']
}

여기서 중요한 것은 mnemonic이다. 이전 편에서 ganache의 mnemonic을 넣었다면, 이제는 Metamask의 계정의 mnemonic을 넣어보자. ganache는 로컬 계정이기 때문에, 많이들 사용하는 Matamask의 sepolia 네트워크에서 계정을 만들자. 

 

https://metamask.io/

 

The crypto wallet for Defi, Web3 Dapps and NFTs | MetaMask

A safe crypto wallet for digital tokens & NFTs. Join the blockchain and DeFi world.

metamask.io

 

Matamask를 설치하고 Sepolia 네트워크에서 계정 추가를 하여 만들었다면 해당 계정의 mnemonic을 볼 수 있을 것이다.

12개의 단어로 이루어져 있는데 이 부분을 truffle-config.js 파일에 설정하면 된다.

 

자 이제 migration 폴더에 새로운 2_deploy_sepoliaERC20.js 으로 만들었다.

이제 sepolia 테스트넷에 배포를 진행하면 된다.

 

truffle migrate --to 2 --network sepolia

 

정상적으로 success가 되면 

https://sepolia.etherscan.io/

 

TESTNET Sepolia (ETH) Blockchain Explorer

Etherscan allows you to explore and search the Sepolia blockchain for transactions, addresses, tokens, prices and other activities taking place on Sepolia (ETH)

sepolia.etherscan.io

sepolia etherscan에서 컨트랙트 주소를 검색하면 내가 올린 컨트랙트를 볼 수 있다.

여기서 소유자 인증을 진행한다면 직접 웹상에서 호출을 할 수 있다. 실제 mainnet에서는 인증을 일부러 안하는 경우가 많지만 테스트넷이기에 다음 편에서 한번 진행을 해보겠다.

 

 

다음편에서는

etherscan에서 컨트랙트 인증 및 web3 로그인으로 직접 컨트랙트 함수 호출을 진행해 보겠다.

 

 

https://developer-jp.tistory.com/104

 

Etherscan 컨트랙트 인증하기 (Verify and Publish) [4]

시작하기 앞서 지난 편에서 테스트넷에 배포까지 진행하였다. 이번 편에서는 배포가 진행된 컨트랙트의 함수들을 etherscan에서 인증절차를 거치고 호출해보자. Etherscan 소유자 인증하기 (Verify and

developer-jp.tistory.com

 

반응형