DeclarationError when inheriting GSNRecipient

Hi @pwn0,

Welcome to the community :wave:

OpenZeppelin Contracts is for regular (non-upgradeable) contracts while OpenZeppelin Contracts Ethereum Package is an official fork of OpenZeppelin Contracts that has been modified to use initializers instead of constructors so that they can be used with upgradeable contracts.

I was curious to why you need to import both OpenZeppelin Contracts and OpenZeppelin Contracts Ethereum Package. I assume this is the cause of your error. You mentioned that you are not using initializers and are only using constructors, so you could just use OpenZeppelin Contracts.

I noticed that you are importing OpenZeppelin Contracts 2.4. The latest version using Solidity 0.5 is OpenZeppelin Contracts 2.5.1

I was also curious why your contract inherits from ERC721 and ERC20. Are you able to share any details?