i get this error whenever i try to test my code with hardhat
Error: call revert exception; VM Exception while processing transaction: reverted with reason string "ERC721: invalid token ID" [ See: https://links.ethers.org/v5-errors-CALL_EXCEPTION ] (method="tokenURI(uint256)", data="0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000184552433732313a20696e76616c696420746f6b656e2049440000000000000000", errorArgs=["ERC721: invalid token ID"], errorName="Error", errorSignature="Error(string)", reason="ERC721: invalid token ID", code=CALL_EXCEPTION, version=abi/5.6.4)
here is my script-test.js code where could the error be coming from? and how can i solve it?
const { expect } = require("chai");
describe("NFTMarket", function (){
it("Should create and execute market sale", async function(){
const Market = await ethers.getContractFactory("NFTMarket")
const market = await Market.deploy();
await market.deployed()
const marketAddress = market.address
const NFT = await ethers.getContractFactory("NFT")
const nft = await NFT.deploy(marketAddress)
await nft.deployed()
const nftContractAddress = nft.address
let listingPrice = await market.getListingPrice()
listingPrice = listingPrice.toString()
const auctionPrice = ethers.utils.parseUnits('100', 'ether')
await nft.createToken("https://www.mytokenlocation.com")
await nft.createToken("https://www.mytokenlocation2.com")
await market.createMarketItem(nftContractAddress, 1, auctionPrice, { value:listingPrice })
await market.createMarketItem(nftContractAddress, 2, auctionPrice, { value:listingPrice })
const [_, buyerAddress] = await ethers.getSigners()
await market.connect(buyerAddress).createMarketSale(nftContractAddress, 1, {value: auctionPrice})
let items = await market.fetchMarketItems()
items = await Promise.all(items.map(async i => {
const tokenUri = await nft.tokenURI(i.tokenId)
let item = {
price: i.price.toString(),
tokenId: i.tokenId.toString(),
seller: i.seller,
owner: i.owner,
tokenUri
}
return item
}))
console.log('items: ', items)
});
});
It looks like you haven't minted the NFT yet. try minting first
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.