Hello, good morning.
I'm still bothering with OpenSea...
I'm creating some tokens in OpenSea in Rinkeby, and I'm transferring them via web3 (ethers) through some scripts that I built myself.
Question, I have had to investigate some issues, since the contract associated to the token that OpenSea creates is not verified (erc1155) and I have had to use the ABI of what I understand is the same contract (verified) in Polygon.
Question, I need a third party to be able to transfer any token, and for this I call the function setApprovalForAll(...), which runs fine (I have given approve to another wallet of mine). But when I try to transfer the token through the approved account, I get this message:
AssetContractShared#_requireMintable: ONLY_CREATOR_ALLOWED
Which is an internal function, that at least from the code that is available from Polygon, is not called from anywhere.
But it is the require(..) where I got the error, which asks for the owner itself to transfer or a contract, let's say proxy.
function _requireMintable(address _address, uint256 _id) internal view {
require(
_isCreatorOrProxy(_id, _address),
"AssetContractShared#_requireMintable: ONLY_CREATOR_ALLOWED"
);
}
Question, I was thinking about developing me a contract, that does just that, the transfer.
And I had some doubts about how to deal with this problem.
Should I import an IERC1155 interface and work it that way, or just create a contract that receives a token (erc1155), and give it the address of the opensea address, and call setApprovalForAll() from the onwer with the address of my contract deployed in Rinkeby?
Regards!
May 19, 2022, 11:30 AM