Skip to content

Contracts: Possible bug when a dispute jumps back to a previously used Dispute Kit #2156

@jaybuidl

Description

@jaybuidl

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions