ethereumsoliditysmartcontractsopensea

OpenSea isApprovedForAll and proxy addresses functionality


I found an explanation here, but I want to clarify some moments.

Is the isApprovedForAll method needs to be overwritten in ERC721Tradable if we need to get rid of excess fees for approval? Is proxy addresses for each user unique? If it isn't, do we need to add something like

       if (_operator == address(proxy_address)) {
            return true;
        }

in isApprovedForAll?


Solution

  • As displayed in deploy script for OpenSea Creatures contracts (lines 25-26), there is one address for each network:

      let proxyRegistryAddress = "";
      if (network === 'rinkeby') {
              proxyRegistryAddress = "0xf57b2c51ded3a29e6891aba85459d600256cf317";
      } else {
              proxyRegistryAddress = "0xa5409ec958c83c3f309868babaca7c86dcb077c1";
      }
    

    So in most cases, we don't need to hardcode it inside our contracts.