Skip to content

Main#23

Merged
mmsaki merged 3 commits intov1from
main
Mar 15, 2026
Merged

Main#23
mmsaki merged 3 commits intov1from
main

Conversation

@mmsaki
Copy link
Contributor

@mmsaki mmsaki commented Mar 15, 2026

No description provided.

mmsaki added 3 commits March 15, 2026 12:28
7 sections covering the full protocol:

Section 1 — Surplus Capture (7 rules):
- surplus split conservation
- user/filler share boundedness
- protocol share non-negative
- no capture on fair execution
- disadvantaged field consistency
- preview never reverts

Section 2 — Pause Safety (3 rules):
- swap reverts when paused
- fill reverts when paused
- cancel not blocked by pause

Section 3 — Access Control (7 rules):
- only owner can pause/unpause/setTreasury/setFeeRefundToggle
- only pending owner can accept ownership
- parametric: owner changes only via acceptOwnership
- parametric: pause changes only via pause/unpause

Section 4 — Reward Uniqueness (2 rules):
- swapper reward is one-time
- filler reward is one-time

Section 5 — Fill Correctness (2 rules):
- fill reduces balancesOut
- fill minimum threshold enforced

Section 6 — Cancel Correctness (2 rules):
- cancel clears order state
- only swapper cancels before expiry

Section 7 — Invariants (2 invariants):
- paused is boolean
- owner is non-zero after init

Uses ghost variables with Sstore hooks, Sload constraints,
parametric rules, preserved blocks, mathint, definitions,
biconditional assertions, and @withrevert patterns.
- conf file for certoraRun with via_ir, optimistic_loop, basic rule_sanity
- includes AsyncSwap, IntentAuth, AsyncRouter, CurrencySettler in verification scene
- run with: certoraRun --conf certora/AsyncSwapPricing.conf
@mmsaki mmsaki merged commit 132bc5c into v1 Mar 15, 2026
2 checks passed
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.

1 participant