Completed an overhaul of the tokenURIMinter contract which now makes the minting module fully reusable, along with a first pass at a PACreatorV1 contract which allows much easier configuration of Zora Drops with custom minting functionality. Instead of needing to deploy a zora drop, a minting module + custom metadata renderer, and then grant the correct approvals as separate contract interactions, the PACreatorV1 contract handles all of this with one single call “deployAndConfigureDrop”
This allows for much easier development of UIs to create copies of these types of “tokenURIMinter” contracts, as a user only needs to make one contract call to handle all of the above.
New/updated solidity:
- PACreatorV1.sol
- TokenUriMinter.sol
-
IZoraCreatorInterface.sol
^test suite was also fully redone to incorporate PACreatorV1
Initial test deploys (GOERLI):
Example One txn zora deploy + minting module config (GOERLI):
Example Mint (GOERLI):
Addtitional work:
- should add another mapping to the PACreatorV1 that records which minting module a zora drop was applied to would be helpful for front ends, as we could now query what custom module a zora drop was initialized too and serve the user with the correct module for their specific contract. this will be necessary when we provide multiple minting modules within PACreatorV1
cc @salief for how I implemented PACreatorV1 + @DBlodorn bc we are at the 99% mark in terms of turning this into a prodcut! just need to set up PACreatorV1 for the longhaul so we can add to it overtime, but tokenURIMinter is now done