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
});
我正在 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
});