I am looking to change the design of my contract into diamond proxy. For that i have split up my contract into 3 parts. the issue i am facing is while setting up access control. When i am using OZ contracts i have to inherit them on each facet. the issue with that is when cutting the facets into the diamond, i have to check at the overlapping functions and manually remove them. that do not look clean.
How cna we solve this. Is there any standard approach to this.?
function newOffer(uint8 offerType) external payable nonReentrant whenNotPaused onlyRole(LibDiamondStorage.diamondStorage().constants.OPERATOR_ROLE) in order to use modifiers like nonReentrant and onlyRole i have to import them into each facet and this cause issues when cutting into the Diamond with script. It works fine when i am deploying and manually cutting using louper.dev