Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
70d5b6e
kani: make settle_warmup full model branch-accurate
aeyakovenko Feb 23, 2026
700b856
fix: liquidation path must reset warmup slope per spec §5.4
aeyakovenko Feb 27, 2026
dc2d67f
fix(kani): strengthen i5 warmup assertion, clarify i8 equity comments
aeyakovenko Mar 4, 2026
4a7edee
Add fees_earned_total to Account for LP reward tracking
aeyakovenko Mar 5, 2026
d1312ed
fix(kani): close MM<=equity<IM gap in withdrawal margin proof
aeyakovenko Mar 6, 2026
da085a0
enforce maintenance_margin_bps < initial_margin_bps in constructor
aeyakovenko Mar 6, 2026
85d0b28
fix(kani): explicit three-region withdrawal margin assertions
aeyakovenko Mar 6, 2026
9bc0fab
feat: implement v9.4 spec — lazy A/K ADL + wide arithmetic + deferred…
aeyakovenko Mar 13, 2026
36381d6
feat(kani): add 37 A/K mechanism proof harnesses in tests/ak.rs
aeyakovenko Mar 14, 2026
1f0892c
fix(kani): strengthen 11 weak/unit-test ak.rs proofs per audit
aeyakovenko Mar 14, 2026
aa85ab1
docs: update spec to v9.5
aeyakovenko Mar 14, 2026
f65ec5d
feat: implement spec v9.5 changes
aeyakovenko Mar 14, 2026
8823e96
Update spec.md
aeyakovenko Mar 14, 2026
294b591
fix: spec v9.5 compliance — epoch snaps, OI assertions, version string
aeyakovenko Mar 14, 2026
1ab3574
fix: 7 engine safety fixes + 26 new Kani proofs (65 total)
aeyakovenko Mar 15, 2026
ce88753
fix(kani): convert engine proofs to small-model, fix unwind bounds
aeyakovenko Mar 15, 2026
c669d8a
feat(kani): add 16 real-engine integration proofs (Tier 11)
aeyakovenko Mar 15, 2026
9c55eef
fix(kani): rewrite stale t5_23 to dynamic dust bound, add t6_26b nonz…
aeyakovenko Mar 15, 2026
c393329
fix: v10.0 — 4 engine correctness fixes + proof suite updates
aeyakovenko Mar 15, 2026
7d9603e
fix: enqueue_adl global A truncation dust must feed phantom_dust_bound
aeyakovenko Mar 15, 2026
b5d0b95
docs: spec v10.0 — add global A truncation dust to enqueue_adl §5.6
aeyakovenko Mar 15, 2026
ff559c9
spec
aeyakovenko Mar 16, 2026
af8cb23
feat: implement spec v10.5 changes — payer-driven funding, fused ADL,…
aeyakovenko Mar 16, 2026
857a102
fix: proof suite — false theorem, weak assertions, inductive dust bound
aeyakovenko Mar 16, 2026
ce12aac
fix: 5 safety issues — error propagation, overflow guards, clamp-not-…
aeyakovenko Mar 16, 2026
6bb68ee
fix: proof suite audit — cross-multiplied invariant, dimensional fix,…
aeyakovenko Mar 16, 2026
b65a14a
fix: 5 implementation issues — error propagation, self-trade, same-sl…
aeyakovenko Mar 16, 2026
c480367
fix(proofs): strengthen t1_8/t1_9 bounds, t11_52 restart path, t13_54…
aeyakovenko Mar 16, 2026
2c1029f
fix: run end-of-instruction resets unconditionally in liquidate_at_or…
aeyakovenko Mar 16, 2026
c8a5f0a
refactor: reorganize proof suite into 6 topic files + add 20 unit tests
aeyakovenko Mar 17, 2026
4777cf5
fix: 3 critical issues — withdraw haircut inflation, funding rate DoS…
aeyakovenko Mar 17, 2026
558e87a
fix(proofs): 5 liveness proof issues — unreachable state, missing ass…
aeyakovenko Mar 17, 2026
1afa183
fix(proofs): strengthen t1_8/t1_9 bounds, t11_52 restart path, t13_54…
aeyakovenko Mar 17, 2026
95d4937
fix(proofs): eliminate vacuous proofs, strengthen assertions, add mis…
aeyakovenko Mar 17, 2026
f7d2de8
fix: 3 safety issues — GC dust predicate, fee seniority, min liquidat…
aeyakovenko Mar 17, 2026
d114bf2
docs: rewrite README — H keeps exits fair, A/K keeps overhang clearin…
aeyakovenko Mar 17, 2026
212e198
docs: remove proof stats from README
aeyakovenko Mar 17, 2026
d09d36d
docs: simplify README to high-level math only
aeyakovenko Mar 17, 2026
d64bab9
docs: alternative to ADL queues, not ADL itself (A/K is an ADL)
aeyakovenko Mar 17, 2026
ddd59c9
fix(proofs): 7 proof issues — forbidden input, weak assertions, missi…
aeyakovenko Mar 17, 2026
1a3b60b
docs: add fairness exactness caveat for H vs A/K
aeyakovenko Mar 17, 2026
9d962d7
fix(proofs): add min_liquidation_abs safety + trading loss seniority …
aeyakovenko Mar 17, 2026
c7f8f68
fix: reject fee_credits == i128::MIN per spec §2.1 + proof
aeyakovenko Mar 17, 2026
173e6ca
fix(proofs): replace contradictory i128::MIN robustness test with rej…
aeyakovenko Mar 17, 2026
b124b27
feat: migrate to native 128-bit architecture per spec v11.5
aeyakovenko Mar 17, 2026
10312f5
spec
aeyakovenko Mar 17, 2026
f4930c2
fix: spec v11.9 compliance audit — 10 normative fixes
aeyakovenko Mar 17, 2026
60d3629
fix(proofs): 4 proof audit fixes per v11.9 spec review
aeyakovenko Mar 17, 2026
fed1be7
chore: reduce LIQ_BUDGET_PER_CRANK to 64, make free_slot pub
aeyakovenko Mar 17, 2026
04762c8
fix: remove redundant touch_account_full from liquidation per spec §9.4
aeyakovenko Mar 18, 2026
82425cd
spec
aeyakovenko Mar 18, 2026
afacca8
spec
aeyakovenko Mar 18, 2026
b246b12
fix: v11.12 spec compliance — engine + 3 proof fixes
aeyakovenko Mar 18, 2026
0afb13a
fix(proofs): 9 proof fixes for base-10 scaling + spec compliance
aeyakovenko Mar 18, 2026
b283f16
feat: two-phase keeper barrier wave (spec addendum A2)
aeyakovenko Mar 18, 2026
1d078bb
feat: v11.21 spec compliance — off-chain shortlist keeper, split equi…
aeyakovenko Mar 19, 2026
ff71199
fix(proofs): update 4 stale proofs for v11.21 compliance
aeyakovenko Mar 20, 2026
640055a
fix: 3 spec compliance bugs — insurance-first ADL, liq-side reset, ex…
aeyakovenko Mar 20, 2026
b261865
fix(proofs): strengthen 8 weak proofs per audit
aeyakovenko Mar 20, 2026
3b4f384
fix: 4 audit findings — bilateral fee, risk-reducing proof, ADL pipel…
aeyakovenko Mar 20, 2026
ce8512b
fix(proofs): eliminate vacuous/tautological proofs, strengthen assert…
aeyakovenko Mar 20, 2026
f832aca
fix: 3 security audit findings + TDD proofs
aeyakovenko Mar 20, 2026
9feedae
Update spec.md
aeyakovenko Mar 19, 2026
aadea01
fix: v11.26 spec compliance — flat-close guard, fee-neutral risk-redu…
aeyakovenko Mar 20, 2026
7565a1a
feat: add MIN_NONZERO_MM_REQ / MIN_NONZERO_IM_REQ margin floors (spec…
aeyakovenko Mar 20, 2026
13a22d3
fix: GC reclaims flat-dust accounts below MIN_INITIAL_DEPOSIT (spec §…
aeyakovenko Mar 21, 2026
a7e2fff
docs: fix README haircut formula to use PNL_matured_pos_tot
aeyakovenko Mar 21, 2026
17d7104
fix(readme): correct haircut formula to use matured/released PnL
aeyakovenko Mar 21, 2026
b958b47
chore: update spec version reference from v11.5 to v11.26
aeyakovenko Mar 21, 2026
499b58b
feat(proofs): add 11 proofs for uncovered spec §12 test properties
aeyakovenko Mar 21, 2026
19db9bb
fix: 3 audit findings — fee sweep PnL breach, LP GC bypass, exact IM
aeyakovenko Mar 21, 2026
d33b291
fix(audit): 3 more findings — funding rate clamp, equity overflow, de…
aeyakovenko Mar 21, 2026
030b2b2
fix(audit): prevent i128::MIN negate panic in checked_u128_mul_i128 a…
aeyakovenko Mar 22, 2026
48f4452
fix(audit): 6 structural integrity fixes — atomicity, freelist, TVL b…
aeyakovenko Mar 22, 2026
d1e3ba1
fix(proofs): strengthen 6 weak/vacuous proofs found by self-audit
aeyakovenko Mar 22, 2026
ff0b25c
fix(audit): enforce fee_credits <= 0 invariant + add reclaim_empty_ac…
aeyakovenko Mar 22, 2026
ad49ad1
spec
aeyakovenko Mar 23, 2026
7830f1d
feat: v11.31 spec compliance — zero-rate funding, bilateral OI, parti…
aeyakovenko Mar 23, 2026
b576d65
docs: proof strength audit for v11.31 proofs
aeyakovenko Mar 23, 2026
a97a416
fix(proofs): upgrade 4 WEAK + 5 UNIT TEST proofs to STRONG per audit
aeyakovenko Mar 23, 2026
3db8d07
fix(audit): 4 external audit fixes + 8 Kani proofs
aeyakovenko Mar 23, 2026
94c3679
fix(audit): 3 more audit fixes — keeper griefing, missing-account saf…
aeyakovenko Mar 24, 2026
f6dd879
cleaup
aeyakovenko Mar 24, 2026
9705213
fix(audit): 4 fixes from third audit round + pre-flight partial hint …
aeyakovenko Mar 24, 2026
3e2ea1d
fix(audit): 4 fixes from fourth audit round + 8 Kani proofs
aeyakovenko Mar 24, 2026
a08a6fe
fix(audit): remove crank freshness gate from withdraw/trade + GC §2.6…
aeyakovenko Mar 24, 2026
893c8da
fix(audit): reduce internal method visibility + add insurance_floor t…
aeyakovenko Mar 24, 2026
b82d6ba
fix(proofs): 11 proof fixes — 2 broken + 9 gap-filling Kani proofs
aeyakovenko Mar 24, 2026
e4be4db
fix(audit): set_owner guard + stronger pre-flight proof with oracle s…
aeyakovenko Mar 25, 2026
b64ea60
feat: add close_account_resolved for frozen/resolved market path
aeyakovenko Mar 25, 2026
091163e
feat: enable maintenance fees (spec §8.2)
aeyakovenko Mar 25, 2026
6b6a0a2
fix: stale comment + close_account_resolved stale count decrement
aeyakovenko Mar 25, 2026
a4c4077
chore: update spec version references to v11.31
aeyakovenko Mar 25, 2026
cee584a
refactor: AccountKind enum → u8 to eliminate zc UB class
aeyakovenko Mar 27, 2026
03e37a9
fix: disable maintenance fee realization + add lifecycle method
aeyakovenko Mar 27, 2026
4b84390
feat: wire funding rate into engine K-coefficient transfers
aeyakovenko Mar 27, 2026
58066af
revert: restore zero-rate funding per spec v11.31 §4.12
aeyakovenko Mar 27, 2026
cd0b3df
feat: live premium-based funding (spec v12.0.2)
aeyakovenko Mar 28, 2026
a55fe45
fix(proofs): complete funding proof coverage gaps
aeyakovenko Mar 28, 2026
a5d2ff5
fix(tests): non-vacuous funding integration tests
aeyakovenko Mar 28, 2026
39ae652
fix: 4 spec violations from line-by-line audit
aeyakovenko Mar 28, 2026
1f60022
fix: abs_size undefined variable in execute_trade
aeyakovenko Mar 28, 2026
0403700
fix: remove GC from keeper_crank + deposit_fee_credits slot advance
aeyakovenko Mar 28, 2026
be77a9d
fix: 6 spec violations from re-audit
aeyakovenko Mar 28, 2026
6c963dd
fix: 3 issues from final re-audit
aeyakovenko Mar 28, 2026
8181322
chore: make accrue_market_to public
aeyakovenko Mar 30, 2026
c636dac
feat: force_close_resolved — settles K-pair PnL + zeros position
aeyakovenko Apr 3, 2026
a9b5017
test: comprehensive force_close_resolved test suite
aeyakovenko Apr 3, 2026
fa3ec3c
spec
aeyakovenko Apr 3, 2026
e357d43
feat: enable recurring maintenance fees per updated spec §8.2
aeyakovenko Apr 3, 2026
a874acd
fix: charge_fee_to_insurance drops excess + recompute_r_last returns …
aeyakovenko Apr 3, 2026
79c0c92
fix: MAX_PROTOCOL_FEE_ABS raised to 10^36 per spec v12.1.0
aeyakovenko Apr 3, 2026
55013a8
fix: validate_keeper_hint models capped fee + remove GC fee realization
aeyakovenko Apr 3, 2026
2430112
fix(proofs): substantiveness audit — 6 vacuity fixes + 1 proof correc…
aeyakovenko Apr 3, 2026
a5197e4
fix: 3 non-minor issues + version refs updated to v12.1.0
aeyakovenko Apr 3, 2026
0082064
chore: fix kani audit script + fuzz feature dep + remove examples
aeyakovenko Apr 3, 2026
acd4361
fix(fuzz): account_count scans full slab, not max_accounts
aeyakovenko Apr 3, 2026
d6cbe0e
fix: per-side actual fee in margin enforcement + stale comment
aeyakovenko Apr 3, 2026
5d53701
fix: force_close_resolved OI decrement + corrupt a_basis rejection
aeyakovenko Apr 4, 2026
2598a93
fix: 4 non-minor issues from review pass
aeyakovenko Apr 4, 2026
d94d064
fix: 6 issues — funding_rate preflight, scratch K, deposit ghost, fees
aeyakovenko Apr 4, 2026
03737b1
fix: force_close_resolved fee ordering matches touch_account_full
aeyakovenko Apr 4, 2026
c7e0cb0
fix: 3 broken proofs + address reviewer's remaining issues
aeyakovenko Apr 4, 2026
fb90d8d
fix: all 37 failing/timing-out Kani proofs now pass
aeyakovenko Apr 4, 2026
f12a651
fix: phantom dust accounting + insurance_floor dedup
aeyakovenko Apr 4, 2026
6f85a89
fix: LP fee tracking + remove dead liquidation_buffer_bps
aeyakovenko Apr 4, 2026
4e7566e
refactor: suffix non-atomic functions with _not_atomic
aeyakovenko Apr 4, 2026
5bb71a3
fix: atomicity contract + public add_user/add_lp
aeyakovenko Apr 4, 2026
2338184
fix: 5 issues — LP fees, force_close slot, add_user/lp, cleanup
aeyakovenko Apr 4, 2026
0521252
fix: 7 spec compliance issues from review
aeyakovenko Apr 5, 2026
60bc843
fix: 3 issues — fee_debt_sweep overflow, GC fee ordering, settle_losses
aeyakovenko Apr 5, 2026
7575941
fix: force_close_resolved OI decrement + liveness test
aeyakovenko Apr 5, 2026
1ad0ec7
fix: force_close_resolved bilateral OI decrement (critical liveness)
aeyakovenko Apr 5, 2026
d9a09ff
fix: 2 proof issues — force_close slot mismatch + vacuity cover
aeyakovenko Apr 5, 2026
733ed6d
fix: 2 timeout proofs — constrain symbolic ranges
aeyakovenko Apr 5, 2026
a3e7e88
test: add property 31 explicit coverage
aeyakovenko Apr 6, 2026
fa21ccc
feat: add stress feature flag (MAX_ACCOUNTS=4096 + test_visible methods)
aeyakovenko Apr 6, 2026
6d1d965
fix: proof_buffer_masking_blocked was vacuous (cover unsatisfied)
aeyakovenko Apr 8, 2026
8dd3597
feat: comprehensive margin enforcement proof (all 3 risk categories)
aeyakovenko Apr 10, 2026
be22277
Update spec.md
aeyakovenko Apr 11, 2026
08b9a72
feat: funding rate precision i64 bps → i128 e9 (ppb) per spec v12.14.0
aeyakovenko Apr 11, 2026
1d954dc
feat: add reserve cohort queue types + market mode (Phase 1+2)
aeyakovenko Apr 11, 2026
aed933e
feat: reserve cohort queue helpers (Phase 4a, spec §4.4)
aeyakovenko Apr 11, 2026
d0a8d1a
feat: cohort-based advance_profit_warmup (Phase 4b, spec §4.7)
aeyakovenko Apr 11, 2026
24f7c8e
feat: set_pnl_with_reserve + ReserveMode (Phase 4b, spec §4.5)
aeyakovenko Apr 11, 2026
c7e76f9
feat: candidate-trade PnL neutralization (Phase 5, spec §3.5)
aeyakovenko Apr 11, 2026
255cc0f
feat: touch_account_live_local + finalize_touched (Phase 6, spec §7.7…
aeyakovenko Apr 11, 2026
4c4bb5d
feat: add h_lock parameter to all instructions (Phase 7)
aeyakovenko Apr 11, 2026
c1f16f0
feat: resolve_market + h_lock threading (Phase 7+8, spec §10.7)
aeyakovenko Apr 11, 2026
fe76dc0
spec
aeyakovenko Apr 11, 2026
b3a18b7
feat: switch all instructions to new touch/finalize flow (Phase 9)
aeyakovenko Apr 11, 2026
0a1d468
feat: migrate all production callers to v12.14.0 APIs (Phase 10)
aeyakovenko Apr 11, 2026
acdee80
feat: two-phase keeper barrier wave (spec Addendum A2)
aeyakovenko Apr 11, 2026
1834afc
refactor: delete all legacy code and migrate tests/proofs
aeyakovenko Apr 11, 2026
c0b06c8
fix: 4 proof failures from legacy migration
aeyakovenko Apr 11, 2026
b0ddd48
feat: 9 Kani proofs for formal verification checklist gaps
aeyakovenko Apr 11, 2026
acd26a3
feat: 10 Kani proofs for cohort queue invariants (checklist §A1/A3/C1…
aeyakovenko Apr 11, 2026
70d2a7d
fix: 10 critical bugs and legacy artifacts from audit
aeyakovenko Apr 11, 2026
d6e6fc4
fix: 6 remaining major issues + dead code removal
aeyakovenko Apr 11, 2026
54b8d5c
fix: 5 remaining issues + zero-copy safety + dead code
aeyakovenko Apr 11, 2026
c0be287
fix: E3/E5/E6/E9/E11 + delete recompute_aggregates
aeyakovenko Apr 11, 2026
f3f7a09
refactor: EL3 — public materialize_with_fee replaces test-only add_us…
aeyakovenko Apr 11, 2026
f85205b
fix: order-invariant resolved payouts + crank inline finalize + E13
aeyakovenko Apr 11, 2026
17737ef
fix: resolved snapshot readiness + stale crank snapshot + sentinel
aeyakovenko Apr 12, 2026
67559d4
fix: resolved close deadlock — split into reconcile + terminal close
aeyakovenko Apr 12, 2026
88248ad
fix: 4 blockers (TDD — tests written first, verified failing, then fi…
aeyakovenko Apr 12, 2026
d370d76
audit: remove inert x_safe check + clamp crank max_revalidations
aeyakovenko Apr 12, 2026
5612114
audit: 4 proofs for uncovered spec security goals + inert code removal
aeyakovenko Apr 12, 2026
47b894b
fix: 7 audit findings (TDD — all tests written first)
aeyakovenko Apr 12, 2026
2a585c9
fix: 4 audit blockers + 3 verification tests (TDD)
aeyakovenko Apr 12, 2026
9015a28
fix: stack-safe materialization + kind validation + dust guard (TDD)
aeyakovenko Apr 12, 2026
5528e81
test: TDD scaffolding for v12.15 funding architecture
aeyakovenko Apr 12, 2026
4c7c93e
feat: v12.15 high-precision funding architecture (F_long_num/F_short_…
aeyakovenko Apr 12, 2026
a32ab1b
fix: update proofs for v12.15 funding architecture
aeyakovenko Apr 12, 2026
542a526
fix: h_lock=0 bypass + reclaim queue metadata check (TDD)
aeyakovenko Apr 12, 2026
8b3e5ba
audit: fix ignored funding test + verify all TDD tests pass
aeyakovenko Apr 12, 2026
8cebf75
test: KF partition invariance verified — separate floors correct at s…
aeyakovenko Apr 12, 2026
3ac9181
feat: public charge_account_fee_not_atomic entrypoint (TDD)
aeyakovenko Apr 12, 2026
ccaa326
feat: clean public API — ResolvedCloseResult enum + settle_flat_negat…
aeyakovenko Apr 12, 2026
f493d7b
refactor: delete legacy state + resize to 4096 accounts / 28 cohorts
aeyakovenko Apr 12, 2026
cab8096
spec
aeyakovenko Apr 13, 2026
1fd936e
feat: two-bucket warmup (spec v12.17) + 4 substantive Kani proofs
aeyakovenko Apr 13, 2026
8da17c4
fix: 3 proof failures from two-bucket + ImmediateRelease changes
aeyakovenko Apr 13, 2026
5ebd52e
fix: 5 spec alignment issues from v12.16.2 review
aeyakovenko Apr 13, 2026
4554795
feat: v12.16.4 — 3-arg accrue + neg_pnl_account_count + stored-rate r…
aeyakovenko Apr 13, 2026
04a65c6
feat: v12.16.5 — exact one-delta funding + touched-set fail-on-overflow
aeyakovenko Apr 13, 2026
68d3191
fix: OOM proof — simplify inductive_withdraw_preserves_accounting
aeyakovenko Apr 13, 2026
ad9a221
feat: v12.16.6 — self-synchronizing resolve_market + ProgressOnly enum
aeyakovenko Apr 13, 2026
32fb451
fix: 3 proof failures — update funding proofs for F-only one-delta model
aeyakovenko Apr 13, 2026
456118b
spec.md
aeyakovenko Apr 14, 2026
ddae91f
feat: v12.17.0 — ADL_ONE 1e15, MIN_A_SIDE 1e14
aeyakovenko Apr 14, 2026
734c74d
fix: resolved PNL cap + free_slot precondition (v12.17 audit)
aeyakovenko Apr 14, 2026
0e9fd3c
fix: 4 audit findings — combined KF floor + fee-neutral flat close + …
aeyakovenko Apr 14, 2026
e436a44
fix: 5 engine audit findings
aeyakovenko Apr 14, 2026
ae6223e
fix: 15 audit findings — v12.17.0 compliance
aeyakovenko Apr 14, 2026
1e2a84d
fix: re-apply all audit fixes lost to file reverts + new fixes
aeyakovenko Apr 14, 2026
b860145
fix: free_slot/finalize_resets/prepare_resolved/gc Result + fund_px_last
aeyakovenko Apr 14, 2026
66954dc
fix: withdraw lane + KF wide I256 + set_pnl pre-validate
aeyakovenko Apr 14, 2026
044a49d
fix: add compile-time power-of-two assertion for MAX_ACCOUNTS
aeyakovenko Apr 14, 2026
396e8df
fix: 8 remaining v12.17 compliance fixes
aeyakovenko Apr 14, 2026
38ea367
fix: wide accrue_market_to + I256 checked_mul + remaining fixes
aeyakovenko Apr 14, 2026
2a8e8ec
fix: convert remaining public-path panics to Result returns
aeyakovenko Apr 14, 2026
dba0883
fix: truly wide resolved terminal-K + set_pnl full pre-validate
aeyakovenko Apr 14, 2026
653f973
fix: reduce panic surface — effective_pos_q, side counts, internal he…
aeyakovenko Apr 14, 2026
221cdb5
fix: keeper fee-sweep order + same-epoch reject + settle/resolve Result
aeyakovenko Apr 14, 2026
d99d21a
fix: set_pnl propagates Result + settle/resolve propagated + warmup f…
aeyakovenko Apr 14, 2026
1e2e904
fix: deposit pre-validate + warmup fail-closed + stale checked + trad…
aeyakovenko Apr 14, 2026
719c408
fix: deposit rename + checked reserve math + set_position_basis_q bounds
aeyakovenko Apr 14, 2026
a02362d
sync: upstream v12.17.0 + re-add small/medium flags + execute_adl_not…
dcccrypto Apr 15, 2026
788ddf8
fix: set_position_basis_q + attach Result + remaining assert->Err
aeyakovenko Apr 15, 2026
305ce28
fix: reserve-shape validator + set_capital/fee_sweep/dust Result + va…
aeyakovenko Apr 15, 2026
0ca432c
Merge remote-tracking branch 'upstream/master'
dcccrypto Apr 15, 2026
9340977
chore: add detailed_offsets example for layout verification
dcccrypto Apr 16, 2026
57b5c00
fix: validate_reserve_shape + missed ? propagations + checked add_u12…
aeyakovenko Apr 16, 2026
97537c9
fix: propagate Result from attach_effective_position and set_capital …
dcccrypto Apr 16, 2026
9c40149
fix: propagate set_capital Result in withdraw_not_atomic
dcccrypto Apr 16, 2026
e989335
fix: eliminate remaining panics on public paths
dcccrypto Apr 16, 2026
ccf194c
Merge remote-tracking branch 'upstream/master'
dcccrypto Apr 16, 2026
44d1fe8
fix: replace last add_u128 call with checked_add, remove dead helpers
dcccrypto Apr 16, 2026
ee1ea5f
fix: update Kani proofs for Result-returning functions + add ADL proofs
dcccrypto Apr 16, 2026
b5e442e
chore: add kani cfg lint config to suppress 146 unexpected_cfg warnings
dcccrypto Apr 16, 2026
a9aeddc
docs: add THREAT_MODEL.md + update README for mainnet beta
dcccrypto Apr 16, 2026
1f1fc57
docs: restore experimental/not-audited disclaimers
dcccrypto Apr 16, 2026
36e228d
docs(threat-model): update deferred findings with resolution status
dcccrypto Apr 17, 2026
9cba53d
fix(engine): cap LIQ_BUDGET_PER_CRANK at 24 to stay under 1.4M CU
dcccrypto Apr 19, 2026
1d1f8f8
merge: adopt v12.17 core engine from laptop as canonical main
dcccrypto Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,2 @@
# RiskEngine is ~6 MB at MAX_ACCOUNTS=4096 and `new()` constructs on the
# stack. The default 8 MB thread stack is too small in debug builds.
# Bump all test threads to 32 MB so that every `cargo test` just works.
[env]
RUST_MIN_STACK = "33554432" # 32 MB
RUST_MIN_STACK = "8388608"
25 changes: 0 additions & 25 deletions .github/pull_request_template.md

This file was deleted.

62 changes: 0 additions & 62 deletions .github/workflows/ci.yml

This file was deleted.

34 changes: 0 additions & 34 deletions .github/workflows/kani-manual.yml

This file was deleted.

1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,3 @@ desktop.ini
.env
.env.local
test-ledger/
rust_out
77 changes: 7 additions & 70 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ name = "percolator"
version = "0.1.0"
edition = "2021"
license = "Apache-2.0"
autotests = false

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)', 'cfg(target_os, values("solana"))'] }

[lib]
name = "percolator"
Expand All @@ -20,11 +16,14 @@ proptest = "1.4"

[features]
default = []
test = [] # Use MAX_ACCOUNTS=64 (~0.17 SOL rent)
small = [] # Use MAX_ACCOUNTS=256 (~0.68 SOL rent)
medium = [] # Use MAX_ACCOUNTS=1024 (~2.7 SOL rent)
# No feature = MAX_ACCOUNTS=4096 (~6.9 SOL rent)
test = [] # Use MAX_ACCOUNTS=64 for tests
stress = [] # Expose test_visible methods but keep MAX_ACCOUNTS=4096
fuzz = ["test"] # Enable fuzzing tests (includes test feature for test_visible helpers)
small = [] # MAX_ACCOUNTS=256 (~0.68 SOL rent)
medium = [] # MAX_ACCOUNTS=1024 (~2.7 SOL rent)

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)'] }

[profile.release]
lto = "fat"
Expand All @@ -43,65 +42,3 @@ unstable = { stubbing = true }
[[workspace.metadata.kani.proof]]
harness = ".*"
unwind = 70

# Explicit test targets. autotests = false disables Cargo auto-discovery so
# `cargo kani --tests` does not attempt to parse broken/feature-gated test
# files (amm_tests.rs, fuzzing.rs, kani.rs) that depend on removed symbols
# (AccountKind enum, NoOpMatcher) or dev-dep macros Kani's frontend cannot
# expand. The file `tests/kani.rs` is intentionally not listed — it is kept
# on disk for future resurrection but is NOT part of any build target.
[[test]]
name = "proofs_arithmetic"
path = "tests/proofs_arithmetic.rs"

[[test]]
name = "proofs_audit"
path = "tests/proofs_audit.rs"

[[test]]
name = "proofs_instructions"
path = "tests/proofs_instructions.rs"

[[test]]
name = "proofs_invariants"
path = "tests/proofs_invariants.rs"

[[test]]
name = "proofs_lazy_ak"
path = "tests/proofs_lazy_ak.rs"

[[test]]
name = "proofs_liveness"
path = "tests/proofs_liveness.rs"

[[test]]
name = "proofs_safety"
path = "tests/proofs_safety.rs"

[[test]]
name = "proofs_v1131"
path = "tests/proofs_v1131.rs"

[[test]]
name = "proofs_phase_f"
path = "tests/proofs_phase_f.rs"

[[test]]
name = "kani"
path = "tests/kani.rs"

[[test]]
name = "unit_tests"
path = "tests/unit_tests.rs"

[[test]]
name = "amm_tests"
path = "tests/amm_tests.rs"

# NOTE: tests/fuzzing.rs is intentionally NOT declared as a [[test]] target.
# Its proptest! macro bodies parse as invalid Rust when proptest is not in
# scope, and activating the `fuzz` feature transitively activates `test`
# which reveals 600+ stale compile errors in unit_tests.rs. To run the
# proptest fuzz suite, either restore this entry locally with
# `required-features = ["fuzz"]` or copy fuzzing.rs into a separate crate.

Loading