인프런 커뮤니티 질문&답변

하루끝님의 프로필 이미지

작성한 질문수

모두를 위한 모두의 EVM 블록체인 BApp 개발 - 입문

ERC721 Contract, Unit Test, Deploy

무슨 에러인지 모르겠습니다

해결된 질문

작성

·

227

1

TypeError: Function needs to specify overridden contract "ERC721URIStorage".

--> contracts/Monkey.sol:93:27:

|

93 | ) public view virtual override(ERC721, ERC721Enumerable) returns (bool) {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Note: This contract:

--> @openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol:12:1:

|

12 | abstract contract ERC721URIStorage is IERC4906, ERC721 {

| ^ (Relevant source part starts here and spans across multiple lines).

TypeError: Invalid contract specified in override list: "ERC721".

--> contracts/Monkey.sol:93:27:

|

93 | ) public view virtual override(ERC721, ERC721Enumerable) returns (bool) {

| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Note: This contract:

--> @openzeppelin/contracts/token/ERC721/ERC721.sol:19:1:

|

19 | contract ERC721 is Context, ERC165, IERC721, IERC721Metadata {

| ^ (Relevant source part starts here and spans across multiple lines).

Error HH600: Compilation failed

For more info go to https://hardhat.org/HH600 or run Hardhat with --show-stack-traces

 

에러메세지인데 어떤 에러인지 잘모르겠습니다

앞에서도 에러가 많이 났는데 다 해결하면서 진행했는데

여기서 막혀버리네요

typechain 만드는 과정에서 에러가 납니다

답변 1

0

하루끝님의 프로필 이미지
하루끝
질문자

에러 해결해서 해결법 남겨놓습니다

Monkey.sol 파일의 이 함수에서 에러 났는데

 

 


이 코드로 변경 후 에러 사라지고 typechain 만들어졌습니다

이 코드로 바꾸고 다른 에러가 생길지는 모르겠는데

우선 강의 쭉 진행해볼게요~

모영철님의 프로필 이미지
모영철
지식공유자

안녕하세요 Openzeppelin contract들이 업그레이드 되면서 하위 호환이 지켜지지 않는거 같습니다.

npm upgrade 명령으로 OpenZeppelin 버전을 올려보니 같은 에러가 나네요.

 

현재 시간 기준으로 강의를 하나씩 따라 하시면 OpenZeppelin이 4.9.5 버전이 설치가 되는데

스트레스 받지 않으시려면 OpenZeppelin을 삭제 하시고 강의 제작 당시 버전인 4.8.2로 설치하시는게 좋을거 같습니다.

image