When I first designed my application, I didn’t realise there was a maximum size of 700 for a stateful contract. One solution is to split up the contract into multiple and read the others’ states when needed.
Are they any patterns or best practices I should be aware of when dividing the application?
One idea is that since my app supports different functions
(NoOp with string arg specifying intended action), I can then have a master contract and then one contract for each function
. The master contract would then verify that a NoOp call with a string transaction is grouped with a call to its asociated contract. This may make handling state a bit complicated if there is shared state that multiple functions want to write to - in which case it would have to be handled in the master contract.
Are there any other solutions which may be more appropriate?