-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add CoreV3 Engine fork for Prohibition #639
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor suggested edits here, but generally speaking overall LGTM.
@ryley-o would you be willing to TAL this week as well for a second set of eyes from our end?
Admin ACL diff: https://www.diffchecker.com/o9oOYbzW/
CoreV3 Flex diff: https://www.diffchecker.com/yYr25IDS/
MinterFilter diff: https://www.diffchecker.com/Pphlwqvi/
contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for developing this fork!
A couple requests:
- We will certainly want to keep the existing
adminACLAllowed
public function (without projectId) to maintain compatibility in our future state of a shared minter suite (including shared minter filter). Additionally, some current minters would need forking to be compatible today. Please incorporate the changes highlighted in the following diff (apologies for some formatting changes that are irrelevant but show up in the diff): https://www.diffchecker.com/9cDsWC13/- note: switched some constants to state variables to keep strings out of bytecode to stay <24kb
- note: you will want to update the
IGenArt721CoreV3_Engine_PROHIBITION.sol
to include the function as well
- I think implementing the above changes will allow you to be able to not have to fork MinterFilterV1
- Appreciate the updated tests, but would appreciate if all new core test logic lived in subdirectories. I think this can be as simple as copying your new files to a subdirectory, and updating the
coreContractsToTest
to be just the PROHIBITION fork (while leaving the original non-forked test files unchanged for this PR)- The exception here is that totally good with the current edits to
util/common.ts
, which LGTM as-is to me - Also note that if you no longer have to fork the MinterFilter, I think your tests simplify a bit!
- The exception here is that totally good with the current edits to
Thank you!
contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol
Show resolved
Hide resolved
contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks great, and I have one more requested change 🙏
Thinking on this more, and I am going to follow up with an update our Engine docs to better communicate this, I would prefer all Engine forks conform to our existing interfaces. We design our data indexing layers based off of the interfaces, so enforcing interface at the compiler level will greatly reduce the chance of any integration issues in the future (which is a win-win for everyone).
Based on that, would appreciate if you could implement the changes described in this commit, which essentially changes IGenArt721CoreContractV3_Engine_Flex_PROHIBITION
to simply extend IGenArt721CoreContractV3_Engine_Flex
, accomplishing all the guarantees we would like to achieve: 776b78f#diff-c18369ac7400114ef07e9ad79b25b8bf2edcfe93654bc0bde3bc15c7b3dbc1db
Appreciate your patience on all of these reviews today! 🙏 😄
contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 🎉 🙏 🙏
test/core/V3/prohibition/GenArt721CoreV3_Integration_PROHIBITION.test.ts
Outdated
Show resolved
Hide resolved
@tlip do you mind merging in the latest changes to main to this branch? thanks! |
Congrats, your important contribution to this open-source project has earned you a GitPOAP! GitPOAP: 2023 Art Blocks Contributor: Head to gitpoap.io & connect your GitHub account to mint! Learn more about GitPOAPs here. |
Description of the change
Fork of the CoreV3 Engine Flex contract (and some supporting contracts) to add: