ethereum truffle로 테스트넷 Rinkeby에 smartContract 배포하기
1. contract 작성 (openzepplin)
2. $ truffle compile (컴파일 하기)
- 여기서 에러가 많이 나왔다. truffle-config의 compilers: { solc: { version: "0.8.0"}} 부분과 스마트 컨트랙트의 버젼을 모두 맞춰주어야 한다.
3. 배포하기 전 Truffle - Rinkeby에 연결하기
$ truffle migrate
Error : Something went wrong while attempting to connect to the network. Check your network configuration.
해결법
$ npm install truffle-hdwallet-provider
truffle - config.js network에 rinkeby 추가
const HDWalletProvider = require("truffle-hdwallet-provider");
const mnemonic ="orange mango ... 메타마스크의 시드문구 (mnemonic) 넣기";
networks: {
develop: {
port: 8545
},
development: {
host:"127.0.0.1",
port:8545,
network_id:"*"
},
rinkeby: {
provider: function() {
return new HDWalletProvider(mnemonic,
"https://rinkeby.infura.io/v3/25eac632e9c8435dbc8d819c2e96810e", 0); //<- 요 0 은 해당 계정의 몇ㅈ번째 계정인지 index
},
network_id: 4,
gas: 4500000,
gasPrice: 1000000000,
}
},
$ truffle migrate --network rinkeby
-> rinkeby 테스트넷에 deploy배포 성공!!
배포할 때는 테스트넷용 이더리움이 필요하니 faucet 할 수 있는 곳으로 가서 받아 놓아야한다.
Rinkeby 테스트용 이더리움 받기 -> https://codingpractices.tistory.com/129
ganache와 할 때와 다르게 배포 한 번하는데 5~10분 정도?? 몇초면 끝나는 ganache보다 오래 걸린다. 이래서 ganache로 먼저 연습 후에 하나보다.
이제 내가 설정한 이더리움 rinkeby 계정에 발행한 토큰을 가져올 차례
메타마스크 - "토큰 가져오기" 클릭 -> 메타마스크에서 토큰 계약 주소에 contract address를 입력하면 토큰 기호와 토큰 십진수가 자동으로 생긴다. -> 추가하면 아래 오른쪽 사진처럼 내가 명명(?)한 TTK 토큰이 생겼다.
이제 요거를 react로 뿌려보기 !!
댓글