Creating NFT - Opensea metadata works on Rinkeby, doesn't work on Mumbai

Using this tutorial - https://www.youtube.com/watch?v=tBMk1iZa85Y Iā€™ve deployed the following smart contract to Rinkeby:

pragma solidity ^0.8.0;

import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC1155/ERC1155.sol";
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol";

contract NFTContract is ERC1155, Ownable {
    uint256 public constant ARTWORK = 0;
    uint256 public constant PHOTO = 1;
    
    constructor() ERC1155("https://llx9ou26wikn.bigmoralis.com/{id}.json") {
        _mint(msg.sender, ARTWORK, 1, "");  
        _mint(msg.sender, PHOTO, 2, "");  
    }
    
    function mint(address account, uint256 id, uint256 amount) public onlyOwner {
        _mint(account, id, amount, "");
    }
    
    function burn(address account, uint256 id, uint256 amount) public {
        require(msg.sender == account);
        _burn(account, id, amount);
    }
}

Everything worked and I was able to view my NFT on Opensea with image and metadata. Iā€™ve tried to deploy the same contract to Polygon Mumbai, and the NFT is visible on Opensea, but thereā€™s no metadata - https://testnets.opensea.io/assets/mumbai/0x60cfcd3a1c9c9b0290090d784024d24b14b3ffc3/1

What could be the reason? Itā€™s the same smart contract.

Hey @ApesTogetherStrong

Try to verify your contract

Hey @Yomoo, how can I do that?

you need to add the source code of the contract in the interface in https://polygonscan.com/

@cryptokid what should I put as ā€œconstructor arguments abi-encodedā€?

I donā€™t know, you can copy everything from Rinkeby in case that it was verified there.

I had this issue before and I found out that I needed to put some of the search logic into my cloud function to call the .json files and spit them out on my website. Iā€™m not sure if that will help but if you donā€™t have a cloud function pulling your metadata it wont show up on your Moralis website.