Vectorized / dn404

Implementation of a co-joined ERC20 and ERC721 pair.
MIT License
476 stars 158 forks source link

I've completely rebuilt ERC404 to fix all issues(?) #101

Open TechnicallyWeb3 opened 8 months ago

TechnicallyWeb3 commented 8 months ago

I decided to take a look at ERC404 and thought I could do it better. I completely rewrote ERC404 to be completely compliant with ERC1155 and ERC20 standards. I chose to mix these two instead of ERC721/ERC20 for several reasons:

  1. ERC1155 and ERC20 have no function conflicts whereas there are function signature conflicts when mixing ERC721 and ERC20
  2. ERC1155 is already a widely adopted standard meaning any platform which supports ERC1155 will also support ERC404 fully
  3. All I need to do now is create a few standardized error messages for the potential errors while synchronizing ERC1155 and ERC20
  4. No new functions are needed
  5. Batch transfers possible in ERC1155 meaning users can batch specific NFTs with their token transfers.
  6. No ownership required, ownership can be added into the implementation contract allowing for developers to choose how centralized/decentralized their projects are (no previous token standard has onlyOwner functions)
  7. Token ID space can be opened back up from 1 - uint256.max, only preventing tokenId 0 since id 0 is where we store the ERC20 data.

If anyone is interested in trying my rendition of ERC404 as an ERC1155 in action I have it [https://sepolia.etherscan.io/address/0xde39999e3e500e4b4842f6a87fa1e6a4c95d0010#code](deployed to sepolia) or on [https://github.com/TechnicallyWeb3/TW3404](my repo).