opensea-creatures
opensea-creatures copied to clipboard
Where are all the available proxy addresses defined?
I have found proxy addresses for some chains in code: https://github.com/ProjectOpenSea/opensea-creatures/blob/f7257a043e82fae8251eec2bdde37a44fee474c4/migrations/2_deploy_contracts.js#L28
Rinkeby: 0xf57b2c51ded3a29e6891aba85459d600256cf317 Mainnet: 0xa5409ec958c83c3f309868babaca7c86dcb077c1
Additionally in the docs I have found proxy address for polygon: https://docs.opensea.io/docs/polygon-basic-integration
Polygon: 0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101
Are there any more official sources for these addresses? Including addresses for Polygon testnet?
Proxy-Addresses for Polygon can be found here: https://docs.opensea.io/docs/polygon-basic-integration
As noted I have found the proxy address for polygon, I am just wondering where is all this defined in one place, and if it is not, it should probably be added, as what about Polygon Mumbai Testnet (rather than Matic Mainnet)
It does not appear that there is a proxy address for mumbai, only mainnet - @varanauskas @itinance is this the case?
It does not appear that there is a proxy address for mumbai, only mainnet - @varanauskas @itinance is this the case?
any update on this? no proxy for mumbai?
@andrekat @BountyCountry it seems that even on MainNet this proxy won't work anyways! After minting the NFTs (we tried both: ERC721 and ERC1155 with the corresponding proxy-Adress) and after listing them at OpenSea, a purchase is not possible. Instead, an error message appears stating "There was a problem processing your order."
Looking at Javascript Console we found "Invalid order signature", which seems to appear way before any transfer-related methods (safeTransferFrom e.g.) will be called on the ERC1155/721 contract.
But 25 days ago openSea executed a method on both proxy-Addresses (here for ERC1155: https://polygonscan.com/address/0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101) addAuthorizedAccount . Maybe this has something to do with that, but this is only speculation.
We've found out, that using another proxyAdress than mentioned in https://docs.opensea.io/docs/polygon-basic-integration will deny any listing with an error message stating "couldn't get permission to approve this token for trading. Its contract might not be implemented correctly. Please contact the developer", while using one of these address will corresponding to the contract-type, will at least enable a listing successfully, but will eventually fail on a purchase.
Even if the isAprovalForAll-function would return just "false" instead of reverting, the same error message would be displayed during the listing. I've already tried this out, even with official Example contracts for ERC721 "Creatures"
hi, @itinance do you have any alternative solution for this issue? I also face this problem, cannot purchase.
@yfng96 we solved it in our ERC721 with the following extension to isAprovedForAll:
/**
* Override isApprovedForAll to auto-approve OS's proxy contract
*/
function isApprovedForAll(address _owner, address _operator) public view override returns (bool isOperator) {
// if OpenSea's ERC721 Proxy Address is detected, auto-return true
if (_operator == address(0x58807baD0B376efc12F5AD86aAc70E78ed67deaE)) {
return true;
}
// otherwise, use the default ERC721.isApprovedForAll()
return ERC721.isApprovedForAll(_owner, _operator);
}
@andrekat @BountyCountry it seems that even on MainNet this proxy won't work anyways! After minting the NFTs (we tried both: ERC721 and ERC1155 with the corresponding proxy-Adress) and after listing them at OpenSea, a purchase is not possible. Instead, an error message appears stating "There was a problem processing your order."
Looking at Javascript Console we found "Invalid order signature", which seems to appear way before any
transfer-related methods (safeTransferFrome.g.) will be called on the ERC1155/721 contract.But 25 days ago openSea executed a method on both proxy-Addresses (here for ERC1155: https://polygonscan.com/address/0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101)
addAuthorizedAccount. Maybe this has something to do with that, but this is only speculation.We've found out, that using another proxyAdress than mentioned in https://docs.opensea.io/docs/polygon-basic-integration will deny any listing with an error message stating "couldn't get permission to approve this token for trading. Its contract might not be implemented correctly. Please contact the developer", while using one of these address will corresponding to the contract-type, will at least enable a listing successfully, but will eventually fail on a purchase.
Even if the
isAprovalForAll-function would return just "false" instead of reverting, the same error message would be displayed during the listing. I've already tried this out, even with official Example contracts for ERC721 "Creatures"
thanks, this work perfectly!!!
So:
- There is no ERC721 proxy address for mumbai on opensea.
- The polygon mainnet ERC721 proxy address is 0x58807baD0B376efc12F5AD86aAc70E78ed67deaE.
¿Are these two statements correct today? Thanks!
Is this still up to date? Any changes here?
In both Mumbai testnet and MainNet, I surely could gasless listing of ERC-1155 Polygon NFT, with proxy address (or proxyRegistryAddress) set to "0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101".
In both Mumbai testnet and MainNet, I surely could gasless listing of ERC-1155 Polygon NFT, with proxy address (or proxyRegistryAddress) set to "0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101".
Are you sure? I can't even find this address on Mumbai Testnet Explorer.
Yes, the address is not found in Mumbai. But I didn't see gas confirm dialog when I sell my NFT. If isAprovalForAll is not overrided, I see gas confirm dialog.
I even get this error now when purchasing existing Items from Contracts on Polygon that has been working properly 3 months ago.
Gasless is success when I do listing or cancel listing. But If I try to buy my NFT from another acount, I got error "There was a problem processing your request" In MainNet. This ERC-1155 proxy address maybe invalid.
Btw, how do you guys use Mumbai Testnet for testing purchasing? OpenSea (or Moonpay?) asks for some RINKETH. Where to get them? Couldn't find anything about it.
I want to know that. I cannot do purchasing test in Mumbai. I can do it in MainNet.
This maybe mumbai proxy address. But there are few transactions. "erc721Proxy": "0xff7ca10af37178bdd056628ef42fd7f799fac77c", "erc1155Proxy": "0x53d791f18155c211ff8b58671d0f7e9b50e596ad",
Strange things are happening on OpenSea with Polygon. I have deployed a simple ERC1155-Contract based on ERC1155PresetMinterPauser from OpenZeppelin. Minting with Account 1, listing, buying with Account 2. After Signing the transaction it rendered error message "Error occured while processing your request", but after this, the Item was successful transfered from Account 1 into Account 2.
Without any further payment happening ...
I saw same message when I delete isApprovedForAll override from ERC1155Tradable of opensea-creatures, and buy NFT of its contract with my second account. I could buy, too.
I understand why "Error occured while processing your request" is shown. I think OpenSea doesn't wait until unlock process fully ended. With my newly created Polygon account, I buy most simple ERC-721 NFT, and I try and try to sell and "Error occured while processing your request" is shown many times, I checked MetaMask acitivity, then there are many "Set Aprrove For All" process in que. I waited for a minute and after all "Set Aprrove For All" process become completed, I try to sell one more time, then unlock process is not needed, and I can sell NFT smoothly. "Please try again later" is exactly its literal meaning, I think. Of course, I ended up paying "Set Aprrove For All" fees many times.
When I try to "Buy now" for most simple ERC-721 NFT (not ERC721Tradable), my order become "offer" sometimes. At this moment "Error occured while processing your request" is shown. I try to "buy now" many times, then many my offrers are stacked. OpenSea seems not to be able to treat simple ERC-721 NFT, but their ERC721Tradable. However, it doesn't mean that ERC721Tradable is all that is needed. Even if my NFT is ERC721Tradable, it works strangely on Polygon.
Are the addresses in this gist I found correct?: https://github.com/0xflair/nft-collection-scaffold/blob/be7c45469d9973899c0ee47fd7cecf78caf47dd3/.env.dist
I got this proxy address working on mumbai: 0xff7Ca10aF37178BdD056628eF42fD7F799fAc77c
Are you guys aware of the risks of auto-approving proxies mentioned in this gist?: https://gist.github.com/dievardump/483eb43bc6ed30b14f01e01842e3339b#warning-
However, if we don't use proxies, OpenSea will return error message every time we buy or sell. For this reason, buyers feel uneasy or troublesome and don't buy. Is there a alternative solution to this?
Can we find these official proxies in the Opensea docs?
Can we find these official proxies in the Opensea docs?
You will at least find the proxy address on polygon in the docs: https://docs.opensea.io/docs/polygon-basic-integration
Are you guys aware of the risks of auto-approving proxies mentioned in this gist?: https://gist.github.com/dievardump/483eb43bc6ed30b14f01e01842e3339b#warning-
Yes, also giving OpenSea the permission to move around NFTs is not what I like to do. One solution I'm using is creating a ContractRegistry where I can store/remove the proxy address instead of hardcoding it. This way I can revoke the permission for OpenSea at any time
@andrekat @BountyCountry it seems that even on MainNet this proxy won't work anyways! After minting the NFTs (we tried both: ERC721 and ERC1155 with the corresponding proxy-Adress) and after listing them at OpenSea, a purchase is not possible. Instead, an error message appears stating "There was a problem processing your order."
Looking at Javascript Console we found "Invalid order signature", which seems to appear way before any
transfer-related methods (safeTransferFrome.g.) will be called on the ERC1155/721 contract.But 25 days ago openSea executed a method on both proxy-Addresses (here for ERC1155: https://polygonscan.com/address/0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101)
addAuthorizedAccount. Maybe this has something to do with that, but this is only speculation.We've found out, that using another proxyAdress than mentioned in https://docs.opensea.io/docs/polygon-basic-integration will deny any listing with an error message stating "couldn't get permission to approve this token for trading. Its contract might not be implemented correctly. Please contact the developer", while using one of these address will corresponding to the contract-type, will at least enable a listing successfully, but will eventually fail on a purchase.
Even if the
isAprovalForAll-function would return just "false" instead of reverting, the same error message would be displayed during the listing. I've already tried this out, even with official Example contracts for ERC721 "Creatures"
Any news today?
I used the ProxyRegistryAddress that was coded in 2_deploy_contracts.js in the opensea-creatures example (https://github.com/ProjectOpenSea/opensea-creatures). This was in January 2022 The address was 0xf57b2c51ded3a29e6891aba85459d600256cf317 f or Rinkeby
Now I tried to use a factory contract deployed in March 2022. I got the error
Couldn't get permission to approve these tokens for trading. Their contract might not be implemented correctly. Please contact the developer!
I again checked the ProxyRegistryAddress for Rinkeby in the 2_deploy_contract.js in the repository mentioned above. It has changed to 0x1E525EEAF261cA41b809884CBDE9DD9E1619573A
I could not find any documentation in OpenSea where the current ProxyRegistryAddress for a given environment like Rinkeby is documented.
After this experience I think it is a good idea to code a setter for the ProxyRegistryAddress to be able to change the address after the deployment of a contract.