721J Code

The code for ERC721J.sol can be read here.

Events

There are 10 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 a lot of functions in the ERC721J.sol contract. 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

Metadata Functions

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

Minting Functions

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

Feature Functions

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

Promo System Functions

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

Other Functions

The unsorted misfit functions are below.

Write Functions

  • setName - Lets the owner set the name for the contract.

  • setSymbol - Lets the owner set the symbol for the contract.

  • setVariables2 - Intended as the first function after initializing which sets the baseURI, contractURI and royaltyBPS all in one. Meant to be used once at the beginning as a way to initialize the collection with a profile. If you load into The Manager page right after minting a contract with The Contract Wizard, you will see a special button that is asking you to use this code.

  • withdraw - Withdraws the ETH that was sent to the contract.

  • rarityOfToken

  • songOfToken

  • totalSongs

  • tokenOfPublicByIndex

  • tokenOfSongByIndex

From Interface Contracts

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

  • IERC721J - See functions here.

  • IERC721JEnumerable - See functions here.

  • IERC721JFull - See functions here.

  • IERC721JPromo - See functions here.

  • IERC2981 - See function here.

  • IERC721 - See functions here.

  • IERC721Metadata - See functions here.

  • IERC721Enumerable - See functions here.

  • IERC165 - See function here.

Last updated