Ok so I need to write a smart contract, and inside it need to be a bunch of different pools. Each pool has its own unique ASA and about 15 global variables in it (like pool owner, pool interest rate, … , etc)
One implementation is to just have a smart contract hold all these pools. The issue is that i am going to have to store their variables (recall that each pool has 15 variables) in global storage. From my understanding, there is a max of 64 key-values for global storage in algorand so we could really only have like 4 pools (64 // 15) in the smart contract.
Another implementation might be to have a bunch of logic sigs representing the pools tied to the smart contract. We could store the addresses of these logic sigs in global storage (total of 64 pools), and the logic sigs could check for the contract ID that is being called (this could be done simultaneously in a grouped transaction). Even with this implementation, we can only have a total of 64 pools because that is the max number of key-value pairs in global storage.
Is the second implementation with 64 logic sigs the way to go? Is there a better way to implement this where I can have more than 64 pools?
Constraint: A pool cannot be opened by anyone, it has to be created and approved by myself.
