Remix에서 Ganache 프라이빗 네트워크에 컨트랙트 배포, 호출 하기
우선 프라이빗 네트워크를 구동해주고
ganache-cli -d -m -p 7545 -a 5
Remix에서 Environment를 Ganache Provider로 변경한다
*여기서는 3_Ballot.sol 파일을 이용하여 진행하였음
배포를 해보면
ganache에서 결과를 확인할 수 있다
Console에서 Ganache 프라이빗 네트워크에 컨트랙트 배포, 호출 하기
배포하기
다른 cmd 창을 열어서 프라이빗 네트워크에 연결을 해준다
geth attach http://localhost:7545
컨트랙트를 배포하기 위해서는 ABI와 바이트코드가 필요하다
ABI는 Remix에서 컴파일한 결과로 얻을 수 있다
바이트 코드는 Remix에서 컨트랙트를 호출한 결과로부터 얻을 수 있다
콘솔에서 ABI를 다루기 위해 Json형태의 코드를 String으로 바꿔준다
이제 콘솔에서 ABI와 바이트코드를 준비해준다
컨트랙트를 생성해주고
myContract = web3.eth.contract(abi)
트랜잭션 메시지를 생성해준다
tx = {from: eth.accounts[0], data: bytecode, gas: 3000000}
컨트랙트를 배포해준다
myContract.new(tx, function(e, contract) {console.log(e, contract.address)})
ganache에서 결과를 확인할 수 있다
호출하기
방금 배포한 트랙잭션의 해시 코드를 이용하여 CA(contractAddress)를 획득한다
eth.getTransactionReceipt([해시코드])
abi와 CA를 이용하여 컨트랙트를 호출한다
컨트랙트 주소나 컨트랙트가 갖고있는 함수를 호출할 수 있다
MetaMask로 컨트랙트 배포해보기
우선 Metamask에 계정을 연결해주자
ganache를 실행할 때, 생성한 계정의 private key를 아무거나 가져와서 메타마스크와 연결한다
Remix에서 Metamask와 연결해준다
메타마스크와 연결된 것을 확인
이제 배포를 하면 메타마스크에서 승인 과정을 거치게 된다
메타마스크에서 승인을 하면 정상적으로 컨트랙트가 배포된다
컨트랙트 결과는 ganache에서도 확인이 가능하다
'프로그래밍 > 블록체인' 카테고리의 다른 글
펀딩해보는 컨트랙트 만들어보기 (0) | 2022.08.26 |
---|---|
트랜잭션에 데이터 담아 보내기 (0) | 2022.08.24 |
이더리움 프라이빗 네트워크 만들고 MetaMask로 송금하기 (0) | 2022.08.23 |