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
?
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.