Cloning OpenSea NFT Boilerplate Questions

Hello, please help. I have such mistakes

Well the issue with this whole tutorial is that it just isnt a good one. what the tutorial never mentions is that unless you own the nfts the transfer wont work, but then he suggests just using any spare address you can find. however the way he built the contract there is no mint function, this is something he should have definitely mentioned and the fact that he still hasnt mentiond that is what has lead me to stop using this tutorial. There are simply to many others that actually work. He assumes that you understand how a smart contract works on the backeend and the fact is that the ethereum boilerplate needs to be heavily modified before it can interact with a smart contract. In short I feel like this tutorial is a waste of time because you will end up going down a tutorial hell trying to work out the bugs and a tutorial shouldnt be that way especially if it geard for people with no experince. I seriously think its left that way purposefully just to get us to interact on the forum more. I have a deep love and passion for moralis and the academy and I am going to strive harder to master this api but I seriously wouldnt recommend this tutorial unless your already good with react.
That being said I was unable to build a mint function and tie it in to the contract succesfully but that would be the crucial step to getting this to worlk. This repo proves it. using it you will see that trying to handle nfts that were not minted will always return an error and it makes it obvious that this tutorial is really ment to just get you started and is NOT a clone of open sea. In order to modify the contract effectively you Must be able to use REACT


since then the original creator has removed the repo but had already cloned a copy so…

can you show the detailed configuration for the event sync?

ABI: {
“anonymous”: false,
“inputs”: [
{
“indexed”: true,
“internalType”: “uint256”,
“name”: “itemId”,
“type”: “uint256”
},
{
“indexed”: true,
“internalType”: “address”,
“name”: “nftContract”,
“type”: “address”
},
{
“indexed”: true,
“internalType”: “uint256”,
“name”: “tokenId”,
“type”: “uint256”
},
{
“indexed”: false,
“internalType”: “address”,
“name”: “seller”,
“type”: “address”
},
{
“indexed”: false,
“internalType”: “address”,
“name”: “owner”,
“type”: “address”
},
{
“indexed”: false,
“internalType”: “uint256”,
“name”: “price”,
“type”: “uint256”
},
{
“indexed”: false,
“internalType”: “bool”,
“name”: “sold”,
“type”: “bool”
}
],
“name”: “MarketItemCreted”,
“type”: “event”
}

Address: 0x2FF7aA3fc6B24277376860523e3702F01CD930f8

TableName: MarketItems

What I have done, I updated the server and deployed successfully

1 Like

Hi @63MoneyT,

Thanks! I thought in your direction too and i am too a fan of (Ivan’s) Moralis and academy :wink:

Like ?

I’m a beginner to blockchain and I’m following your tutorial step by step to get an understanding of how this things works. The code that i forked from github for ethereum boilerplate and the turtorial in the video are slightly different.
for example in the App.jsx file there are no menu items keys in this code but its there in your video. should i add whats missing or can you give me the exact code or link of the code that you used for the video

Hi Apap,

Do you get any error messages when you open up the transactions page? I trust you are using the exact same code, so everything should work fine…

@hira,

You can checkout the version of the ethereum-boilerplate used in this video like so :slight_smile:

Any one want to deploy the Dapp to the network, after testing in a local server please follow the step below to publish your Dapp in the internet network:

  • Update your Server in Moralis

  • Run the following command in your project:
    npm run build
    this will generate a build folder in the project which include index.html
    if there an error try to replace build in package.json as follow:
    “scripts”: {
    “start”: “react-scripts --openssl-legacy-provider start”,
    “build”: “react-scripts --openssl-legacy-provider build”,
    .
    .
    .
    }

  • Then run following:
    npm install -g moralis-admin-cli

and then go to your project folder then run:
C:\Users\user…>moralis-admin-cli deploy --folderPath build
Specify Moralis Api Key: … (these you will find it in your Moralis server under details)
Specify Moralis Api Secret: …
Following servers were found:
(0) Marketplace_
What server do you want to connect to?: 0
Deployed successfully!
Site is available at:… (it will show your site here)
and then you are ready :slight_smile:

I hope this is useful :wink:

It’s the exact same code as the one which I posted and I don’t get any error messages when I open the transactions page.
Can there be some update of any of the dependencies causing this problem?
I cloned the Git about 1 ½ month ago and haven’t updated anything since.

I agree and i raised this before.

I came to this tutorial and the repository/video thinking it was a clone of opensea and at least will be able to create, buy and sell NFTs. This is not the case and I figure it’s nowhere near a clone but a boilerplate to use moralis. Obviously it’s not going to be a true clone of opensea but it should include the main features of a NFT marketplace, the first being able to mint NFTs.

In terms of others that actually work, one is the dabit3 boilerplate which apparently inspired this (says so in many files). There’s even a moralis tutorial on creating a marketplace that creates an NFT and you can buy sell.

1 Like

Anyone know how to further troubleshoot this error:

contract from : ethereum-nft-marketplace-boilerplate

truffle console --network mumbai
const instance = await mktPlace.deployed();
await instance.createMarketItem(‘xx’, 5, 50, 5, 0);

Uncaught { code: -32000, message: ‘execution reverted’ }

copy pasting my abi is not working, and then not able to create marketitems what should i do ??

which part did you copy?

looks like it might failed to run createMarketItem, possibly have double check on your inputs whether they have the right types and values

Hi IAmJaysWay,

Can you please help me on that. I’ve deployed my own NFT to the main net (>5000) but the state variable does not work properly, it takes time to load whenever I pressed the load button, you suggest to be passed to the useNFTTokenIds() hook, which just gets the next set of NFTs and then concatenate these to your NFTs state variable, can you please give a snap example.

Thank you

thanks in advance for the help/advice
I got this error message when I tried to fill sever fields
Invalid ABI, please verify

description: Market Item Created
topic
MarketItemCreated ( uint, address, uint256, address, address, uint256, bool);
abi
"inputs": [
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "seller",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "sold",
				"type": "bool"
			}
		],
		"name": "MarketItemCreated",
		"type": "event"
	},
address 0xc2cc3f7ccFA96CF8f447216a631Dd96846076F90
tableName CreatedMarketItem
Invalid ABI, please verify

hardhat ABI

{
  "_format": "hh-sol-artifact-1",
  "contractName": "MarketBeta",
  "sourceName": "src/contracts/marketBet.sol",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "itemId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "nftContract",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "seller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "sold",
          "type": "bool"
        }
      ],
      "name": "MarketItemCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "itemId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "MarketItemSold",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "nftContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "price",
          "type": "uint256"
        }
      ],
      "name": "createMarketItem",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "nftContract",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "itemId",
          "type": "uint256"
        }
      ],
      "name": "createMarketSale",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "fetchMarketItems",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "itemId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "nftContract",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "address payable",
              "name": "seller",
              "type": "address"
            },
            {
              "internalType": "address payable",
              "name": "owner",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "price",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "sold",
              "type": "bool"
            }
          ],
          "internalType": "struct MarketBeta.MarketItem[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052670de0b6b3a764000060045534801561001c57600080fd5b506001600055600380546001600160a01b03191633179055610907806100436000396000f3fe60806040526004361061003f5760003560e01c80630f08efe01461004457806358eb2df51461006f5780638da5cb5b14610084578063c23b139e146100bc575b600080fd5b34801561005057600080fd5b506100596100cf565b60405161006691906107dd565b60405180910390f35b61008261007d3660046107ab565b6102a5565b005b34801561009057600080fd5b506003546100a4906001600160a01b031681565b6040516001600160a01b039091168152602001610066565b6100826100ca366004610782565b6104e8565b606060006100dc60015490565b905060006100e960025490565b6001546100f69190610889565b90506000808267ffffffffffffffff81111561012257634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561018957816020015b6040805160e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282526000199092019101816101405790505b50905060005b8481101561029c5760006005816101a7846001610871565b81526020810191909152604001600020600401546001600160a01b0316141561028a5760006101d7826001610871565b600081815260056020818152604092839020835160e0810185528154815260018201546001600160a01b0390811693820193909352600282015494810194909452600381015482166060850152600481015490911660808401529081015460a0830152600681015460ff16151560c083015285519293509185908790811061026f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610285600186610871565b945050505b80610294816108a0565b91505061018f565b50949350505050565b600260005414156102fd5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000558061034f5760405162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e20300000000060448201526064016102f4565b61035d600180546001019055565b600061036860015490565b6040805160e0810182528281526001600160a01b0387811660208084018281528486018a8152336060870181815260006080890181815260a08a018e815260c08b018381528d8452600598899052928c90209a518b55955160018b018054918b166001600160a01b0319928316179055945160028b0155915160038a018054918a1691861691909117905590516004808a01805492909916919094161790965591519286019290925592516006909401805494151560ff199095169490941790935592516323b872dd60e01b81529182015230602482015260448101869052919250906323b872dd90606401600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b505060408051338152600060208201819052818301879052606082015290518693506001600160a01b038816925084917f045dfa01dcba2b36aba1d3dc4a874f4b0c5d2fbeb8d2c4b34a7d88c8d8f929d1919081900360800190a4505060016000555050565b6002600054141561053b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102f4565b60026000818155828152600560208190526040909120908101549181015460069091015460ff163483146105d9576040805162461bcd60e51b81526020600482015260248101919091527f506c65617365207375626d6974207468652061736b696e67207072696365206960448201527f6e206f7264657220746f20636f6d706c6574652074686520707572636861736560648201526084016102f4565b6001811515141561062c5760405162461bcd60e51b815260206004820152601e60248201527f546869732053616c652068617320616c726564792066696e6e6973686564000060448201526064016102f4565b60405133815284907f2073b2706c235effb1e3840575370a51749afd8181b4018f93bff955d50792cb9060200160405180910390a26000848152600560205260408082206003015490516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156106a9573d6000803e3d6000fd5b506040516323b872dd60e01b8152306004820152336024820152604481018390526001600160a01b038616906323b872dd90606401600060405180830381600087803b1580156106f857600080fd5b505af115801561070c573d6000803e3d6000fd5b505050600085815260056020526040902060040180546001600160a01b031916331790555061073f600280546001019055565b5050506000908152600560205260408120600601805460ff19166001908117909155905550565b80356001600160a01b038116811461077d57600080fd5b919050565b60008060408385031215610794578182fd5b61079d83610766565b946020939093013593505050565b6000806000606084860312156107bf578081fd5b6107c884610766565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b8281101561086457815180518552868101516001600160a01b039081168887015286820151878701526060808301518216908701526080808301519091169086015260a0808201519086015260c09081015115159085015260e090930192908501906001016107fa565b5091979650505050505050565b60008219821115610884576108846108bb565b500190565b60008282101561089b5761089b6108bb565b500390565b60006000198214156108b4576108b46108bb565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220bb92a465a31b9d19771252451493bbc13b270675b70916f3fdddd7a57d99dc8e64736f6c63430008040033",
  "deployedBytecode": "0x60806040526004361061003f5760003560e01c80630f08efe01461004457806358eb2df51461006f5780638da5cb5b14610084578063c23b139e146100bc575b600080fd5b34801561005057600080fd5b506100596100cf565b60405161006691906107dd565b60405180910390f35b61008261007d3660046107ab565b6102a5565b005b34801561009057600080fd5b506003546100a4906001600160a01b031681565b6040516001600160a01b039091168152602001610066565b6100826100ca366004610782565b6104e8565b606060006100dc60015490565b905060006100e960025490565b6001546100f69190610889565b90506000808267ffffffffffffffff81111561012257634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561018957816020015b6040805160e08101825260008082526020808301829052928201819052606082018190526080820181905260a0820181905260c082015282526000199092019101816101405790505b50905060005b8481101561029c5760006005816101a7846001610871565b81526020810191909152604001600020600401546001600160a01b0316141561028a5760006101d7826001610871565b600081815260056020818152604092839020835160e0810185528154815260018201546001600160a01b0390811693820193909352600282015494810194909452600381015482166060850152600481015490911660808401529081015460a0830152600681015460ff16151560c083015285519293509185908790811061026f57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610285600186610871565b945050505b80610294816108a0565b91505061018f565b50949350505050565b600260005414156102fd5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000558061034f5760405162461bcd60e51b815260206004820152601c60248201527f5072696365206d7573742062652067726561746572207468616e20300000000060448201526064016102f4565b61035d600180546001019055565b600061036860015490565b6040805160e0810182528281526001600160a01b0387811660208084018281528486018a8152336060870181815260006080890181815260a08a018e815260c08b018381528d8452600598899052928c90209a518b55955160018b018054918b166001600160a01b0319928316179055945160028b0155915160038a018054918a1691861691909117905590516004808a01805492909916919094161790965591519286019290925592516006909401805494151560ff199095169490941790935592516323b872dd60e01b81529182015230602482015260448101869052919250906323b872dd90606401600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b505060408051338152600060208201819052818301879052606082015290518693506001600160a01b038816925084917f045dfa01dcba2b36aba1d3dc4a874f4b0c5d2fbeb8d2c4b34a7d88c8d8f929d1919081900360800190a4505060016000555050565b6002600054141561053b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016102f4565b60026000818155828152600560208190526040909120908101549181015460069091015460ff163483146105d9576040805162461bcd60e51b81526020600482015260248101919091527f506c65617365207375626d6974207468652061736b696e67207072696365206960448201527f6e206f7264657220746f20636f6d706c6574652074686520707572636861736560648201526084016102f4565b6001811515141561062c5760405162461bcd60e51b815260206004820152601e60248201527f546869732053616c652068617320616c726564792066696e6e6973686564000060448201526064016102f4565b60405133815284907f2073b2706c235effb1e3840575370a51749afd8181b4018f93bff955d50792cb9060200160405180910390a26000848152600560205260408082206003015490516001600160a01b03909116913480156108fc02929091818181858888f193505050501580156106a9573d6000803e3d6000fd5b506040516323b872dd60e01b8152306004820152336024820152604481018390526001600160a01b038616906323b872dd90606401600060405180830381600087803b1580156106f857600080fd5b505af115801561070c573d6000803e3d6000fd5b505050600085815260056020526040902060040180546001600160a01b031916331790555061073f600280546001019055565b5050506000908152600560205260408120600601805460ff19166001908117909155905550565b80356001600160a01b038116811461077d57600080fd5b919050565b60008060408385031215610794578182fd5b61079d83610766565b946020939093013593505050565b6000806000606084860312156107bf578081fd5b6107c884610766565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b8281101561086457815180518552868101516001600160a01b039081168887015286820151878701526060808301518216908701526080808301519091169086015260a0808201519086015260c09081015115159085015260e090930192908501906001016107fa565b5091979650505050505050565b60008219821115610884576108846108bb565b500190565b60008282101561089b5761089b6108bb565b500390565b60006000198214156108b4576108b46108bb565b5060010190565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220bb92a465a31b9d19771252451493bbc13b270675b70916f3fdddd7a57d99dc8e64736f6c63430008040033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}

also, remix abi

[
	{
		"inputs": [],
		"stateMutability": "nonpayable",
		"type": "constructor"
	},
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "seller",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "sold",
				"type": "bool"
			}
		],
		"name": "MarketItemCreated",
		"type": "event"
	},
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			}
		],
		"name": "MarketItemSold",
		"type": "event"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			}
		],
		"name": "createMarketItem",
		"outputs": [],
		"stateMutability": "payable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			}
		],
		"name": "createMarketSale",
		"outputs": [],
		"stateMutability": "payable",
		"type": "function"
	},
	{
		"inputs": [],
		"name": "fetchMarketItems",
		"outputs": [
			{
				"components": [
					{
						"internalType": "uint256",
						"name": "itemId",
						"type": "uint256"
					},
					{
						"internalType": "address",
						"name": "nftContract",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "tokenId",
						"type": "uint256"
					},
					{
						"internalType": "address payable",
						"name": "seller",
						"type": "address"
					},
					{
						"internalType": "address payable",
						"name": "owner",
						"type": "address"
					},
					{
						"internalType": "uint256",
						"name": "price",
						"type": "uint256"
					},
					{
						"internalType": "bool",
						"name": "sold",
						"type": "bool"
					}
				],
				"internalType": "struct MarketBeta.MarketItem[]",
				"name": "",
				"type": "tuple[]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [],
		"name": "owner",
		"outputs": [
			{
				"internalType": "address",
				"name": "",
				"type": "address"
			}
		],
		"stateMutability": "view",
		"type": "function"
	}
]

deployed NFTmarket and NFT contracts on polygon mainnet
MarketBeta deployed to: https://polygonscan.com/address/0xc2cc3f7ccFA96CF8f447216a631Dd96846076F90
nftBeta deployed to: https://polygonscan.com/address/0xbc2278f2461D6b5aAf1D61DA3bEbdd883549E63B
I cloned the git, setup moralis sever on polygon mainnet, and filled up the env file, when I finally ran the code on localhost, I only am viewing the traditional boilerplate. Build successfully on netlify too but it’s shown blank page at https://nft-beta.allswap.xyz 2 . how to get the blank page working?

Hey your ABI for event sync should be a JSON object, which means no array (square bracket) there and don’t forget no trailing comma :raised_hands:

Thanks for your reply, I’ve tried these formats without any success

{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "seller",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "sold",
				"type": "bool"
			}

		"name": "MarketItemCreated",
		"type": "event"
	},
{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "seller",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "sold",
				"type": "bool"
			}
		"name": "MarketItemCreated",
		"type": "event"
{
				"indexed": true,
				"internalType": "uint256",
				"name": "itemId",
				"type": "uint256"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "nftContract",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "tokenId",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "seller",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "address",
				"name": "owner",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "price",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "sold",
				"type": "bool"
			}

		"name": "MarketItemCreated",
		"type": "event"
}

same message Invalid ABI, please verify