Description and context
Currently, getAncestorIpsCount / getAncestorIpsCountExt are invoked via _callIpGraph. While these functions do not modify IPGraph state, we use call (instead of staticcall) primarily for testability, since MockIPGraph writes to storage during simulation.
This creates some inconsistency and can be confusing for reviewers, as the production functions are effectively read-only but appear as regular calls.
This issue is tracking:
- Refactor related MockIPGraph function to read-only mode.
- Update test cases accordingly.
- Refactor production calls to use _staticcallIpGraph for ancestor count queries.