티스토리 뷰

1. 발생한 오류

truffle migrate시 발생한 오류: invalid opcode?

truffle migrate 명령어를 사용하여 ganache 테스트 네트워크에 스마트 컨트랙트를 배포할 때 발생 (컴파일은 정상 동작)

2. 해결 방법 검색

https://ethereum.stackexchange.com/questions/72036/migrations-hit-an-invalid-opcode-while-deploying-on-deploy-migrations-sol-with

 

"Migrations" hit an invalid opcode while deploying on deploy Migrations.sol with Truffle

An error occurs when truffle migrate try to deploy Migrations.sol contract, i don't understand why pragma solidity >=0.4.21 <0.6.0; contract Migrations { address public owner; uint public

ethereum.stackexchange.com

버전 문제인건가...?

3. 버전 확인

ganache-cli 버전 확인

$ ganache-cli --version
Ganache CLI v6.12.2 (ganache-core: 2.13.2)

truffle 버전 확인

$ truffle --version
Truffle v5.9.1 (core: 5.9.1)
Ganache v7.8.0
Solidity - 0.8.18 (solc-js)
Node v18.16.0
Web3.js v1.10.0

truffle-config.js: 컴파일러 버전

compilers: {
    solc: {
      version: "0.8.20",
    },
  },

버전 문제가 아닌 것 같기도 하고...

응급조치

아무거나 건드려 보다가 컴파일러 버전을 낮췄더니 정상적으로 배포가 된다.

compilers: {
    solc: {
      version: "0.8.19",
    },
  },

이게 끝??


근본적인 해결 방법

https://www.npmjs.com/package/ganache-cli

 

ganache-cli

<p align="center"> <em>NOTICE</em>: <code>testrpc</code> is now <code>ganache-cli</code>. Use it just as you would <code>testrpc</code>. </p> <hr/>. Latest version: 6.12.2, last published: 2 years ago. Start using ganache-cli in your project by running `np

www.npmjs.com

deprecated...?

ganache-cli 패키지가 더 이상 유지보수가 이루어지지 않음으로 인해 최신 버전(글 작성 시점 기준 0.8.20)의 솔리디티 컴파일러로 컴파일된 스마트 컨트랙트가 ganache-cli로 실행한 네트워크에 정상적으로 배포되지 못하는 문제가 발생하는 것으로 이해가 된다.

 

결과적으로 ganache-cli를 삭제하고 ganache를 설치해 사용하면 되는 것이다.

 

절차는 아래와 같다.

 

1. ganache-cli 삭제

$ npm rm -g ganache-cli

 

2. ganache 설치

$ npm i -g ganache

 

3. ganache 테스트 네트워크 실행

$ ganache --chain.networkId=<네트워크 아이디 지정>

네트워크 아이디가 무작위로 생성되므로 편의를 위해 지정해주는 것이 좋다.

 

4. truffle-config.js 수정

networks: {
    development: {
    	host: "127.0.0.1",
    	port: <ganache 테스트 네트워크를 실행할 때 바인딩된 포트>,
    	network_id: "<방금 지정한 네트워크 아이디>",
  	},
  },

  compilers: {
    solc: {
    	version: "0.8.20",
    },
  },

 

결과

배포 성공!

최근에 올라온 글
최근에 달린 댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday
글 보관함