721J Code

The code for ERC721J.sol can be read here.

Events

There are 10 new events in ERC721J.sol and 3 events imported from interfaces, making 13 total:

  • Copy - from IERC721J

  • Recycle - from IERC721JFull

  • SetPromo - from IERC721JPromo

  • TokenPriceSet - Emits when a price changes for an ERC20 token.

  • TogglePublic - Emits when a tokenId is staked or unstaked.

  • NewSongURI - Emits when a piece of song metadata is added or changed.

  • NewMax - Emits when setMaxEditions is called to change the max supply of copies for a song.

  • NewSplit - Emits when a split address is set to a song.

  • NewMultiplier - Emits when setRarityMultiplier is called and a generation's rarity multiplier is updated.

  • BaseURIChange - Emits when setBaseURI is called and the baseURI is changed.

  • ContractURIChange - Emits when setContractURI is called and the contractURI is changed.

  • NameChange - Emits when setName is called and the contract name is changed.

  • SymbolChange - Emits when setSymbol is called and the symbol is changed.

  • Transfer - from IERC721

  • Approval - from IERC721

  • ApprovalForAll - from IERC721

Functions

There are lots of functions in ERC721J.sol. 72 public functions, and a bunch of private functions too! I'll do my best to organize the public functions in an understandable order here.

Functions are separated into categories because there are so many. Every function that isn't from an interface is properly noted.

Categories

There are 4 read and 5 write functions related to metadata. Read more here.

There are 10 write functions related to minting. Read more here.

There are 7 features that have their 19 functions detailed here.

There are 4 read and 6 write functions related to the promo system. Read more here.

The misfit unsorted functions that are still important. Read more here.

Imported Interface Contracts

All the imported interface contracts have their corresponding functions implemented into ERC721J.sol. The new interface contracts are:

  • IERC721J - See functions here.

  • IERC721JEnumerable - See functions here.

  • IERC721JFull - See functions here.

  • IERC721JPromo - See functions here.

The interface contracts from existing standards are:

  • IERC2981 - See function here.

  • IERC721 - See functions here.

  • IERC721Metadata - See functions here.

  • IERC721Enumerable - See functions here.

  • IERC165 - See function here.

Last updated