Skip to content

fix: lazy TTL bump, market config cache, exchange router docs, keeper risk assessment#346

Merged
abayomicornelius merged 2 commits into
SO4-Markets:mainfrom
circleboyslimited:fix/ttl-caching-docs-297-291-299-296
Jun 26, 2026
Merged

fix: lazy TTL bump, market config cache, exchange router docs, keeper risk assessment#346
abayomicornelius merged 2 commits into
SO4-Markets:mainfrom
circleboyslimited:fix/ttl-caching-docs-297-291-299-296

Conversation

@circleboyslimited

Copy link
Copy Markdown

Summary

Test plan

  • cargo test -p data-store — 8 tests pass
  • cargo test -p referral-storage — passes
  • cargo check -p order-handler -p liquidation-handler — no new errors (pre-existing contracterror issues in shared libs are unrelated)
  • Review docs/exchange-router-api.md and docs/keeper-risk.md for completeness

Closes #297
Closes #299
Closes #291
Closes #296

presidojay1 and others added 2 commits June 26, 2026 23:13
…eper risk assessment

Closes SO4-Markets#297 — lazy persistent TTL bumping:
- Add PERSISTENT_BUMP_TARGET (518 400 ledgers ≈ 30 days) and
  MIN_BUMP_THRESHOLD (259 200 ledgers ≈ 15 days) constants in
  order_handler and referral_storage.
- extend_ttl fires only when remaining TTL < MIN_BUMP_THRESHOLD,
  halving unnecessary rent payments on busy markets.
- order_handler: bump Order key on create_order, update_order;
  bump OrderFrozen key on freeze_order.
- referral_storage: bump on every write and on every read
  (register_code, set_trader_referral_code, set_referrer_tier,
  set_tier_config, get_trader_referrer, get_trader_discount_bps).

Closes SO4-Markets#299 — instance-storage cache for market config:
- Add InstanceU128 variant to DataKey enum in data_store.
- Add set_u128_config (write-through: persistent + instance) for
  rarely-changing config (fee factors, OI caps, leverage limits).
- Add get_u128_cached (check instance first, populate on miss) so
  subsequent reads skip the persistent round-trip.
- Expose get_u128_cached in DataStoreClient trait of order_handler
  and liquidation_handler.

Closes SO4-Markets#291 — exchange router API reference:
- New docs/exchange-router-api.md documents all 10 entrypoints
  (multicall, create_order, cancel_order, create_deposit,
  cancel_deposit, create_withdrawal, cancel_withdrawal,
  claim_funding_fees, send_tokens, upgrade) with signatures, auth,
  pre-conditions, side effects, events, errors, and examples.

Closes SO4-Markets#296 — keeper front-running risk assessment:
- New docs/keeper-risk.md assesses order-reordering, liquidation
  cherry-picking, ADL selection bias, and deposit/withdrawal timing
  risks; documents all mitigations already in place and monitoring
  guidance for operators.
@abayomicornelius abayomicornelius merged commit 39817e3 into SO4-Markets:main Jun 26, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment