MetaMask - RPC Error: Internal JSON-RPC error

MetaMask - RPC Error: Internal JSON-RPC error

我正在 CELO 上开发一个 NFT 铸币网站。我的 mint 函数如下所示:

function safeMint(address to) public payable {
    require(msg.value >= mintPrice, "Not enough ETH sent; check price!"); 
    uint256 tokenId = _tokenIdCounter.current();
    _safeMint(to, tokenId);
    _tokenIdCounter.increment();
   // string memory token_uri=tokenURI(tokenId);
}

我的 React 前端是这样的:

async function mintNFT() {

if (typeof window.ethereum !== 'undefined') {
  
  await requestAccount()
  const provider = new ethers.providers.Web3Provider(window.ethereum);
  const signer = provider.getSigner();
  const contract = new ethers.Contract(t_tokenAddress, Token.abi, signer);
  
  try{
    await window.ethereum.enable();
  const transation = await contract.safeMint(userAccount);
  await transation.wait();
  fetchNFTIndex();
}
catch(e){
  console.log(e.data.message);
 }
}

}

当我 运行 使用 mintPrice =1 wei 或 ether 进行交易时,出现以下错误: Error

当我 运行 使用 mintPrice=0 以太币或 wei 的交易时,它工作正常。我不知道这里有什么问题。我的帐户中有 5 个 celo,所以我有足够的资金,我假设以太币是在 CELO 中转换和支付的。 任何人都可以理解这里的问题!

链接错误包含自定义消息“发送的 ETH 不足”,这意味着错误源自 require() 条件。

require(msg.value >= mintPrice, "Not enough ETH sent; check price!"); 

您的 JS 代码片段执行该函数,但不随交易发送任何 ETH 值。

为了发送ETH值,您需要在overrides参数中定义它。

const transation = await contract.safeMint(userAccount, {
    // send along 1 wei
    value: 1
});