블록체인

23.03.09 [ResourceNotFound]not found nft

슈팅스타제제 2023. 3. 9. 16:24

caver 로 NFT 컨트랙트 주소를 통해 데이터를 받아오는 중에 다음과 같은 에러 메세지가 나왔다. 

{"_code": 1040400, "_message": "[ResourceNotFound]not found nft", "_requestId": "8f011c9a-f0de-936d-9206-db855f38aa22"}

 

원인은 크게 세가지로 보고

1. 클레이튼 메인넷 호출 여부 (chainId)

2. contract address

3. EOA address 인자값을 체크했는데 다 이상없었다.

 

그리고 이상한 것은 같은 클레이튼 네트워크의 다른 컨트랙트 NFT 는 다 잘 나오는데 얘만 안나온다했더니

해당 컨트랙트의 Account Key 값이 AccountKeyFail 상태였다. 

키값의 상태는 총 5개로 

1. AccountKeyLegacy

2. AccountKeyPublic

3. AccountKeyFail

4. AccountKeyWeightedMultisig

5. AccountKeyRoleBased

 

AccountKeyFail 상태는 트랜잭션 유효성 검증 프로세스는 항상 실패한다는 공식문서 내용을 확인할 수 있다. 

caver 의 contract method 로 컨트랙트 호출할 때, 조회도 불가능

 

여기서 이상한 것은 세 가지다.

 

- AccountKeyFail 상태일 때, 트랜잭션 유효성 검증이 실패한다는 것은

컨트랙트 호출을 통한 거래도 할 수 없는 상태라는 것인데

opensea 에서는 2 days ago 로 이틀 전에 transferFrom method 가 호출되었다. 뭔데..

- 그리고 이 NFT 는 opensea 에서 hidden 으로 분류되었고 

- opensea 에서는 어떻게 이 NFT의 메타데이터를 모두 가져올 수 있는지 의문