Skip to content

[Feature] V2: implement bonded assertion posting #65

Description

@collinsezedike

Summary

Implement v2's assert_outcome equivalent: the optimistic first stage of a v2 assertion, before any dispute exists.

What to build

A function taking (asserter: Address, outcome: bool) that:

  • Requires asserter's authorization.
  • Transfers the deployment's configured base_bond from asserter into the contract.
  • Creates a new AssertionV2 (see [Feature] V2: implement PolicySnapshot and versioned assertion state #64) with a freshly pinned PolicySnapshotV2, status = Pending, outcome set, and no disputer yet.
  • Emits an event equivalent to v1's Asserted, versioned for v2.
  • Returns the new assertion id.

If the challenge window (registration_duration_secs is irrelevant here; this stage uses the same uncontested-window concept as v1) elapses with no dispute call, finalize behaves exactly as v1's does: the outcome stands, bond returns to the asserter (minus any configured finalize reward, if v2 keeps that mechanic, confirm during implementation whether v1's finalize_reward_bps carries over unchanged).

Depends on

#64 (PolicySnapshotV2 and AssertionV2 must exist first).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmediumModerate scope or risk

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions