Hi I'm building a game and wanted to implement a marketplace. The user puts the token on the marketplace and then someone buys it. I've already managed to implement something to create the market place, the problem is how to transfer the token to whoever buys it. Because when I click on buy, it gives an error saying that you don't own the token and that you can't transfer it.
1 Answer
First, the seller has to Approve() the marketplace contract manually or automatically, it depends on your design characteristics, for that token. Then marketplace could take care of transferring the ERC721 token from seller to buyer whenever the asked amount from the seller is completely paid.
This is the solution if your error is like this: "Caller is not approved nor the owner "
Go check out Approve() section of the ERC721 contract. I think it may help you. If your problem is something else, please provide more information.
-
And How i make the seller Approve() the marketplace contract automatically when the buyer press the buy button? Nov 18, 2021 at 13:36
-
You have to design a button that whenever it is clicked, it should ask the seller for permission, like e Metamask pop up, to Approve the marketplace smart contract. It is more related to Web3 stuff and you should search the net for more precise information. Nov 18, 2021 at 13:48
-
If you are using Remix, you have to do it by selecting the seller account and doing it manually. But if you are trying to make a user interface you should use Web3 and ask for permission by a pop-up from the seller. Nov 18, 2021 at 13:54