iT邦幫忙

0

[已解決] ERC1155 mint時回應錯誤 mint to the zero address

  • 分享至 

  • xImage

如題

合約在Rinkeby做測試
在call 合約的method時拋出mint to the zero address的錯誤

因為在Remix上測試時沒有錯誤 所以我想可能是前端的問題

前端框架是nextjs
套件用的是Web3

以下是初始化的code

const init = async () => {
    const web3 = new Web3(Web3.givenProvider || "http://localhost:3000");
    const network = await web3.eth.net.getNetworkType();
    setNetwork(network);
    const accounts = await web3.eth.getAccounts();
    setAddress(accounts[0]);
    setWeb3(web3);

    const c = new web3.eth.Contract(ABI, contractAddress);
    setContract(c);
  };
  
  React.useEffect(() => {
    init();
  }, []);

然後有一個按鈕按下去之後會觸發Send的Function

  const send = () => {
    if (number < 0) return;

    contract.methods
      .mintBook(number, content, 0x00)
      .call()
      .then((tokenId: any) => {
        setTokenId(tokenId);
      })
      .catch((err: any) => console.log(err));
  };

mintBook是合約的方法,內容如下

    function mintBook(
        uint256 numberOfBooks,
        string memory content,
        bytes memory data
    ) public payable returns (uint256) {
        uint256 tokenId = _tokenIdCounter.current();
        _tokenIdCounter.increment();

        _bookContent[tokenId] = content;
        _initBookAmount[tokenId] = numberOfBooks;

        _mint(msg.sender, tokenId, numberOfBooks, data);
        return tokenId;
    }

因為我拿mint to the zero address去查
好像都是在測試的時候就出錯
但我是測試沒問題 直到上到測試鏈之後才跳出這個錯誤
想請問可能是哪裡出問題

感謝大家

============更新==============

後來發現是方法用錯了
改成

 await contract.methods
        .mintBook(number, content, 0x00)
        .send({
          from: address,
        });

即可

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答