Error: Number can only safely store up to 53 bits: Number type cannot handle big number. Please use hex string or BigNumber/BN 오류 도와주실분있나요?

제가 지금 유튜버인 조코딩님이 만든걸 사용해서 테스트중인데요.
웹사이트에서 민팅 버튼을 누르면 민팅을 실패하였습니다. 라고 뜨는데
이거 오류 고칠 방법이 있을까요?
몇일전에는 민팅성공했다라고 떠서 성공했구나 생각했었는데요. 오늘 다시 테스트할려고 민팅사이트에 들어가니 민팅 실패라고 뜨네요… klaytn IDE에서 설정변경하거나 코드바꾼게 하나도 없는데 민팅실패라고 떠서 왜 이런지 모르겠네요…
웹에서는 이렇게 뜹니다.
Error: Number can only safely store up to 53 bits: Number type cannot handle big number. Please use hex string or BigNumber/BN.
at Object.v (inpage.js:27:723068)
at inpage.js:27:304808
at Array.forEach ()
at p (inpage.js:27:304780)
at d.inputCallFormatter (inpage.js:27:307060)
at inpage.js:27:331451
at Array.map ()
at d.formatInput (inpage.js:27:331413)
at d.toPayload (inpage.js:27:331711)
at inpage.js:27:332178

이건 스마트컨트랙이고요 GitHub - JoCoding-Blockchain/kbirdz-contract
이건 웹사이트 코드입니다 GitHub - JoCoding-Blockchain/klaytn-minting-website

코드복사해서 실행만해서요 코드건드린건 하나도 없어요.
도와주시면 감사하겠습니다.

안녕하세요

제가 보기에는 Number.MAX_SAFE_INTEGER 범위를 벗어난 값을 컨트랙트로 전달하여 발생한 문제 같습니다.

// ... 생략
49: mintPrice = parseInt(result[6]);
// ... 생략
79: const amount = document.getElementById('amount').value;
// ... 생략
88: const total_value = amount * mintPrice;
// ... 생략

이 부분의 연산을 bignumber.js 와 같은 라이브러리로 변경 하시면 될것같습니다.

안녕하세요. 댓글달아주셔서 감사합니다.
제가 코드에 대해서 잘몰라서요
bignumber.js와 같은 라이브러리로 변경을 어떻게 하는지 몰라서요.
혹시 자세히 알려주실수있나요? 링크눌러서 들어가봤는데 이해가안되서요…
49.79.88 을 어떤식으로 변경해야하는건가요?

혹시 npm을 사용하여 bignumber.js를 설치 해보셨을까요?

네. npm install bignumber.js해서 설치했어요.

그럼 require 추가하시고 const total_value = BigNumber(amount * mintPrice);
하시면 됩니다

근데 이 내용을 해결하고 mintScript.js 102번 라인에 send() is not a function오류가 나요

            myContract.methods.publicMint(amount)
                .send({
                    from: account,
                    gas: estmated_gas,
                    value: total_value
                })
1개의 좋아요

아… 다른 오류가 또 생기는군요… 어떡하지…

위에서 bignumber.js 라이브러리로 변경하신거는 지우시고
caver.utils.toBN(value);
caver.utils.BigNumber(value);
쓰세요.
여기 가이드

다른 오류 생겼다는게 Buffer 오류면 caver.js 버전을 1.6.5로 바꾸어 사용해보세요.
여기 참고