opensea-creatures icon indicating copy to clipboard operation
opensea-creatures copied to clipboard

Where are all the available proxy addresses defined?

Open varanauskas opened this issue 4 years ago • 37 comments

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?

varanauskas avatar Aug 25 '21 11:08 varanauskas

Proxy-Addresses for Polygon can be found here: https://docs.opensea.io/docs/polygon-basic-integration

itinance avatar Sep 28 '21 22:09 itinance

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)

varanauskas avatar Sep 29 '21 04:09 varanauskas

It does not appear that there is a proxy address for mumbai, only mainnet - @varanauskas @itinance is this the case?

dogberto avatar Oct 06 '21 00:10 dogberto

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 avatar Nov 15 '21 16:11 andrekat

@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"

itinance avatar Nov 15 '21 21:11 itinance

hi, @itinance do you have any alternative solution for this issue? I also face this problem, cannot purchase.

yfng96 avatar Dec 07 '21 15:12 yfng96

@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);
    }

itinance avatar Dec 07 '21 15:12 itinance

@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"

thanks, this work perfectly!!!

yfng96 avatar Dec 07 '21 15:12 yfng96

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!

aitorjs avatar Dec 09 '21 20:12 aitorjs

Is this still up to date? Any changes here?

cre-mer avatar Jan 22 '22 22:01 cre-mer

In both Mumbai testnet and MainNet, I surely could gasless listing of ERC-1155 Polygon NFT, with proxy address (or proxyRegistryAddress) set to "0x207Fa8Df3a17D96Ca7EA4f2893fcdCb78a304101".

n0111000 avatar Feb 11 '22 06:02 n0111000

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.

FantasyGameFoundation avatar Feb 11 '22 18:02 FantasyGameFoundation

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.

n0111000 avatar Feb 11 '22 21:02 n0111000

I even get this error now when purchasing existing Items from Contracts on Polygon that has been working properly 3 months ago.

itinance avatar Feb 11 '22 22:02 itinance

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.

n0111000 avatar Feb 11 '22 23:02 n0111000

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.

itinance avatar Feb 12 '22 09:02 itinance

I want to know that. I cannot do purchasing test in Mumbai. I can do it in MainNet.

n0111000 avatar Feb 12 '22 10:02 n0111000

This maybe mumbai proxy address. But there are few transactions. "erc721Proxy": "0xff7ca10af37178bdd056628ef42fd7f799fac77c", "erc1155Proxy": "0x53d791f18155c211ff8b58671d0f7e9b50e596ad",

n0111000 avatar Feb 12 '22 10:02 n0111000

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.

Screenshot 2022-02-10 at 23 53 20

Without any further payment happening ...

itinance avatar Feb 14 '22 00:02 itinance

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.

n0111000 avatar Feb 14 '22 09:02 n0111000

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.

n0111000 avatar Feb 15 '22 10:02 n0111000

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.

n0111000 avatar Feb 15 '22 11:02 n0111000

Are the addresses in this gist I found correct?: https://github.com/0xflair/nft-collection-scaffold/blob/be7c45469d9973899c0ee47fd7cecf78caf47dd3/.env.dist

tab00 avatar Feb 19 '22 19:02 tab00

I got this proxy address working on mumbai: 0xff7Ca10aF37178BdD056628eF42fD7F799fAc77c

cre-mer avatar Feb 21 '22 11:02 cre-mer

Are you guys aware of the risks of auto-approving proxies mentioned in this gist?: https://gist.github.com/dievardump/483eb43bc6ed30b14f01e01842e3339b#warning-

tab00 avatar Feb 21 '22 17:02 tab00

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?

n0111000 avatar Feb 22 '22 12:02 n0111000

Can we find these official proxies in the Opensea docs?

laygir avatar Mar 05 '22 16:03 laygir

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

cre-mer avatar Mar 22 '22 13:03 cre-mer

@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"

Any news today?

FloUz-ai avatar Mar 28 '22 21:03 FloUz-ai

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.

thomasoss avatar Mar 29 '22 12:03 thomasoss