I'm trying to set up an nft marketplace, I can mint it, sell it and resell it, but after putting it to sell again it goes to the market, but it keeps showing up as if it's still in my wallet, but it's not there anymore, it's just showing up in the inventory of the site that is like a ghost. Can someone help me?
inventory page reseller structure:
export async function convertMarketItemStruct2MarketItem(item: MarketItemStructOutput) {
const tokenURI = await getTokenContract().tokenURI(item.tokenId);
const metadata = await axios.get(`https://ipfs.io/ipfs/${tokenURI}`);
return {
name: metadata.data.name,
image: `https://ipfs.io/ipfs/${metadata.data.image}`,
description: metadata.data.description,
seller: item.seller,
owner: item.owner,
tokenId: item.tokenId.toNumber(),
itemId: item.itemId.toNumber(),
price: item.price,
} as MarketItem;
}
export async function convertMarketItemStructs2MarketItems(items: MarketItemStructOutput[]) {
const marketItems: MarketItem[] = [];
const contract = getTokenContract();
for (let i = 0; i < items.length; i++) {
const tokenURI = await contract.tokenURI(items[i].tokenId);
const metadata = await axios.get(`https://ipfs.io/ipfs/${tokenURI}`);
marketItems.push({
name: metadata.data.name,
image: `https://ipfs.io/ipfs/${metadata.data.image}`,
description: metadata.data.description,
seller: items[i].seller,
owner: items[i].owner,
tokenId: items[i].tokenId.toNumber(),
itemId: items[i].itemId.toNumber(),
price: items[i].price,
} as MarketItem);
}
return marketItems;
}
page structure to show nfts in my inventory:
function MyNFTs(props: Props) {
const { getProvider } = useContext(BlockchainContext);
const { showSpinner, hideSpinner } = useSpinner();
const [nfts, setNFTs] = useState<MarketItem[]>();
useEffect(() => {
showSpinner();
fetchMyNFTs();
}, []);
async function fetchMyNFTs() {
const provider = await getProvider();
if (!provider) {
hideSpinner();
return;
}
const signer = provider.getSigner();
const marketContract = getMarketContract(signer);
const marketNFTs = await marketContract.fetchMyNFTs();
const myNFTs = await convertMarketItemStructs2MarketItems(marketNFTs);
setNFTs(myNFTs);
hideSpinner();
}
return (