Scenario
Round 1 DK1 -> Round 2 DK2 -> Round 3 DK1 again
At round 3, the state of coreDisputeIDToActive
and Dispute.jumped
might be incorrect at that point in both DK1 and DK2.
⚠️ Attempts at fixing this must ensure that it does not break withdrawFeesAndRewards()
which is only called at the end of the last round (so after all the DK jumps).
⚠️ Beware not mix up core/local dispute IDs and core/local round IDs.
Root cause
When jumping to another DK, KlerosCore.appeal()
calls DisputeKit.createDispute()
which always creates a new Dispute
object. Perhaps DisputeKit.createDispute()
should be smarter and only create a round if the dispute already exist.