Currently, we are checking if a user is signed up already by fetching events from the chain where contracts are deployed. This can cause strains to the rpc endpoint in use (each user might have a different one depending on their wallet and configuration), so after a large amount of blocks are validated, these requests for logs might start failing.
Proposed solution is to implement a minimal subgraph for MACI and query it in the frontend. Also the state index and voice credit balances can be stored in localstorage to start with.
Currently, we are checking if a user is signed up already by fetching events from the chain where contracts are deployed. This can cause strains to the rpc endpoint in use (each user might have a different one depending on their wallet and configuration), so after a large amount of blocks are validated, these requests for logs might start failing.
Proposed solution is to implement a minimal subgraph for MACI and query it in the frontend. Also the state index and voice credit balances can be stored in localstorage to start with.