feat(spg): add public minting support #65
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds public minting support for SPG functions that handle minting. It replaces the
onlyCallerWithMinterRole
access control modifier withonlyMintAuthorized
, which checks if the caller is authorized to mint—either by having the minter role in the given SPG NFT contract or if the contract haspublicMinting
enabled.Test Plan
test_SPG_revert_mintAndRegisterIp_callerNotAuthorizedToMint
to verify that minting is blocked when the caller doesn't have the minter role and public minting is disabled in the collection.test_SPG_mintAndRegisterIp_publicMint
to test that minting is allowed when public minting is enabled, even if the caller doesn't have the minter role.All new and existing tests pass locally.
Related Issue