0

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

1 Answer 1

0

Maybe use kind of BaseFacet that would import AccessControl and Reentrancy, and the just inherit BaseFacet in other facets?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.