Skip to content

Conversation

@googgoog
Copy link

Description

When transitioning from op-succinct games back to OP games, HasProposedSince fails because it attempts to call claimData on all games including those with incompatible ABIs.

Problem

During game type transitions (e.g., switching from op-succinct OpSuccinctFaultDisputeGame back to OP PermissionedDisputeGame), the chain contains games of different types. The current implementation calls claimData on every game during iteration, which reverts when encountering games with incompatible ABIs, causing the proposer to fail entirely.

Solution

Split the lookup into two phases:

  1. gameBasicInfoAtIndex: Fetch only gameType and timestamp from the factory (no game contract call)
  2. gameAtIndex: Full lookup including claimData (only called when game type matches)

This allows the proposer to safely skip games with non-matching types during iteration.

Changes

  • Add gameBasicInfoAtIndex helper to fetch basic game info without calling claimData
  • Update HasProposedSince to filter by game type first, only loading full data for matching games
  • Add test to verify non-matching game types are skipped

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants