바오밥 테스트넷에서 잘 되던 트랜잭션 코드가 안 되서
사이프러스 메인넷에서 민팅하는 코드를 디버깅하고 있습니다.
예제로 참고한 소스는 다음과 같습니다.
제 소스 코드의 원문을 보여드리겠습니다.
const caver = new Caver(new Caver.providers.HttpProvider(rpcUrl, option));
var contract = caver.contract.create(abi, contract_addr)
const receipt2 = await contract.methods.publicMint(1).send({
from: account,
to: contract_addr,
value: caver.utils.toPeb(1, ‘KLAY’) * sendKlayValue,
gas: 1000000
});
console.log(receipt2)
const receipt2 = await contract.methods.publicMint(1).send({
이 코드가 문제인 것 같아서 아래의 다양한 방법으로 시도하고 있으나 디버깅이 쉽지 않습니다.
const receipt2 = await contract.methods.publicMint(1).send({
const receipt2 = await contract.methods.publicMint(‘1’).send({
const receipt2 = await contract.methods.publicMint(‘0x1’).send({
const valueToBN = caver.utils.toBN(1);
const receipt2 = await contract.methods.publicMint(valueToBN).send({
아래는 구글 크롬에서 나온 에러 내용입니다.
분명 형변환과 관련 있는 것 같은데 왜 안 되는지 모르겠습니다.
Unhandled Rejection (Error): Number can only safely store up to 53 bits: Number type cannot handle big number. Please use hex string or BigNumber/BN.
5 stack frames were collapsed.
mintEvent
218 | const caver = new Caver(new Caver.providers.HttpProvider(rpcUrl, option));
219 | var contract = caver.contract.create(abi, contract_addr)
220 | >
221 | const receipt2 = await contract.methods.publicMint('0x1').send({
222 | from: account,
223 | to: contract_addr,
224 | value: caver.utils.toPeb(1, 'KLAY') * sendKlayValue,
아래는 제가 호출한 solidity 코드입니다
//Public Mint
function publicMint(uint256 requestedCount) external payable {
for(uint256 i = 0; i < requestedCount; i++) {
_mint(msg.sender, _mintIndexForSale);
_mintIndexForSale = _mintIndexForSale.add(1);
}
}
제 추측이 잘못된 것일까요?
어떤 점이 문제인지 모르겠습니다.
약간의 힌트라도 좋으니 댓글 간곡하게 부탁드립니다.
이 문제로 벌써 반나절을 보낸 것 같습니다.
요번에 프론트엔드 개발을 처음해서 그런지 너무 어렵네요 ㅜㅜ
긴 글 읽어주셔서 감사합니다.
좋은 주말 되세요!!