The tick math, against the real Solidity
Every range here is priced with tick math, where an off-by-one is a revert or a figure quietly wrong everywhere. So it is not reviewed, it is compared.
What was recorded
The recorder asks upstream v3-core and v3-periphery 19,546 questions and records the answers — writing nothing if one disagreed.
| Function | Cases | Digest |
|---|---|---|
| constants | 4 | 5646dd135f4e2d02 |
| fee_growth_inside | 2,000 | 2b1c9edf0713c19f |
| get_amount0_delta | 4,000 | f7433be1c611f3c9 |
| get_amount1_delta | 4,000 | ddb34abed2a13a11 |
| get_amounts_for_liquidity | 2,000 | 113e6859b5ddc6ee |
| get_liquidity_for_amounts | 1,528 | 242ee1c1c6d7e70b |
| get_sqrt_ratio_at_tick | 2,010 | 1f27806475cd53ae |
| get_tick_at_sqrt_ratio | 2,004 | abe1465ff86bd4b1 |
| tokens_owed | 2,000 | ec076204fd3bee25 |
| total | 19,546 |
Seed 20260813 throughout, so the cases reproduce. Comparison is exact integer equality — no tolerance anywhere, because a tolerance is how an off-by-one survives to production.
Compared against which code
The commits that answered, pinned.
| Library | Commit | Pinned |
|---|---|---|
| forge-std | 467ffd422ca0 | 2026-08-10 |
| v3-core | d0831dc6b8a3 | 2026-04-30 |
| v3-periphery | 0682387198a2 | 2024-07-25 |
Whether this Python still reproduces them
Two runs can answer that, and they answer different questions. Neither is inferred from the files above.
Replay
Our math against the recorded answers. No network, no fork, no foundry — which is what lets it run on every commit.
| Metric | Value | Note |
|---|---|---|
| pytest said | 10 passed, 1 warning in 1.07s | |
| cases covered | 19,546 | 9 groups |
Differential
Our math against freshly deployed Solidity. Regenerates the whole comparison rather than reading these files, so it can catch a corpus that was recorded wrong.
| Metric | Value | Note |
|---|---|---|
| the run said | 19,546 fresh cases fuzzed against the deployed Solidity across 9 groups, 0 mismatches | |
| cases covered | 19,546 | 9 groups |
| mismatches | 0 |
Every figure the replay defends is used somewhere on this site. How a quote is made →