I've broken up my code into 2 contracts. FA2 contract and other one managing its data and providing additional functionality on top. This is to not overload a single contract, however, it does introduce additional complexity. Is it worth it?
AFAIK there's 2 options:
- Keep all the data in one contract to avoid cross-contract calls at the expense of overloading a single contract.
- Use 2 contracts and do cross-contract calls to check for ownership and minting rights.
Is #2 the recommended approach and how can I make it safe? My main concern around the ownership cross-contract call is the synchronization.
My other concern is around the minting permissions. Setting that on a contract initialization and not allowing edits would be the most decentralized...
What's the recommended pattern to do this?