여기에 코드를 공유해주시거나 어려우시다면 dm으로 주시면 구체적인 대화가 될 것 같습니다.
그것도 어려우시다면, 에러가 나는 작은 코드 예시를 작성해서 공유해주시면 좋을것같습니다.
위에 공유해주신 에러내용을 보면 import를 하는 패턴이 여러가지로 보여집니다.
예를들면 특정 파일은 local에서 import하고 특정파일은 원격에서 import하는 등 이렇게되면 서로 버전들이 안맞아서 에러가 생길 수 있습니다.
solidity는 일반 프로그래밍언어와 다르게 버전이 아주 다양합니다. 이로인해서 개발하는데 많은 불편함을 초래하기도 하지만 이부분은 EVM환경의 특성이라고도 볼수있을거 같습니다. nodejs의 경우에도 버전으로인한 문제가 많이 발생하는것처럼 동일하게 생각해 주시면 좋을 것 같습니다.
에러 메시지를 첨부주셔야 klaytn-contracts 상의 문제인지, 유저분의 환경설정 혹은 remix, openzepplin 등의 문제인지 알 수 있습니다.
“오픈제플린에 올라온 컨트렉트 코드는 과거 솔리디티 버전과 호환되지 않도록 변경하는 일이 있다는 걸까요” → 오픈제플린에 올라온 Ownable.sol 코드의 pragma 버전은 지속적으로 업데이트되어왔습니다. 3.x, 4.x 버전의 Ownable.sol을 사용할 시에는 0.5.x 버전으로 컴파일 안됩니다.
“클레이튼 라이브러리가 이전 버전에 사용하는게 동일하게 임포트 할 수 있다면 생길 수 없는 문제라 생각됩니다.” → 질문이 정확하게 이해가 안됩니다. 예상한게 맞다면, 참고로 openzepplin-contract과 klaytn-contract는 상호 참조하는 부분이 없기 때문에, 라이브러리 내의 임포트 문제는 아닐 것으로 사료됩니다.
@openzeppelin/contracts/GSN/Context.sol:3:1: ParserError: Source file requires different compiler version (current compiler is 0.5.17+commit.d19bba13.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version
pragma solidity >=0.6.0 <0.8.0;
^-----------------------------^