
이 오류에 대해서 알아보기 전에, BigNumber란 무엇일까 알아봤다.
BigNumber란 수학적 계산들을 모든 크기의 숫자에 대해서 안전하게 연산할 수 있도록 하는 것이다.
대부분의 연산들은 BigNumber와 파라미터들을 반환하게 해야 한다.
나의 경우 BigNumber의 에러는 contract의 입력값이 잘못되었을 때였다.

나의 함수는 입력값 nftContract의 주소와 Id를 받는 것으로 변수들이 잘 받아지고 잘 건네지는 지 확인을 했다.

확인을 하기 위해서 nftaddress와 nft.itemId을 console.log로 찍어본 결과 nft.itemId가 계속 undefined 발생했다.

확인한 결과 만드는 js인 create.js에서 Id를 tokenId로 지정한 것을 망각하고 결과를 보여주는 js파일에 Id를 itemId를 찍고 있었던 것이었다.

해결방법은 item의 Id를 item: i.tokenId.toNumber()을 해주면 되는 쉬운 문제였다.
BigNumber 문제가 발생하면 첫 번째로, 프런트 엔드에서 스마트 컨트렉트를 불러오는 함수를 확인한다. 특히, 입력값을 제대로 넣어줬는지, console.log를 하며 확인해준다.
두 번째로, 프런트엔드가 불러오는 컨트렉트 함수를 확인한다.
세 번째로, 프런트엔드끼리 연결되는 부분이 있다면, 서로의 약속된 변숫값들을 확인해준다.
'코딩 > ☠ Error' 카테고리의 다른 글
| [solidity] Error -32000 (0) | 2022.04.19 |
|---|---|
| [Solidity] TypeError: Contract "" should be marked as abstract. (0) | 2022.03.30 |
| [Next] Uncaught Error : Invalid src prop (0) | 2022.02.18 |
| [web3] Error: call revert exception(method="get()") (0) | 2022.02.14 |
| [React]에러 Error: img is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML` (0) | 2022.02.04 |