Skip to content

feat: add multi-path market orders + on-chain mark price - #21

Merged
crevelop merged 7 commits into
mainfrom
cr/market-order-refactor
May 28, 2026
Merged

feat: add multi-path market orders + on-chain mark price#21
crevelop merged 7 commits into
mainfrom
cr/market-order-refactor

Conversation

@crevelop

Copy link
Copy Markdown
Contributor

Market orders now walk both books per step, taking the cheapest crossable path between same-outcome normal fills and opposite-outcome mint/merge fills. Slippage is anchored to a new on-chain mark price waterfall — no caller-supplied price.

What's new

  • placeMarketBuy / placeMarketSell — single multi-path entry on MarketOrdersFacet. Parameter shape: (marketId, outcomeId, amount, slippageBps, orderType). FOK / FAK only.
  • LibMarkPriceService — implied midpoint via cross-outcome mint/merge complement, tick-size-scaled spread threshold (~$0.10), honest (0, false) when neither implied mid nor last-trade yields a defensible reference.
  • OrderBookFacet.getImpliedTopOfBook — new external view exposing the cross-outcome implied book for SDK / UI previews.

Breaking changes

  • Legacy placeMarketOrder(uint,uint,uint,uint,uint8) selector removed.
  • placeMarketSell selector preserved but parameter 4 changes meaning: minPriceTickslippageBps.
  • Events MarketOrderExecuted / MarketSellExecuted replaced by MarketOrderBuy / MarketOrderSell (+ markTick, maxEffTick / minEffTick, fillCount trailers).

Diamond cut shape

6 entries: 1 Remove, 2 Add, 3 Replace across MarketOrdersFacet, OrderBookFacet, MatchingFacet. Storage diff: none. Upgrade script: script/upgrades/20260527_MarketOrders_MultiPathMintMerge.s.sol.

Tests

494 passing, 0 failed, 1 skipped (was 465 at v1.4.x). Coverage in FillServicesRefactor.t.sol, MarkPriceService.t.sol, MarketTakeService.t.sol.

Deployments

  • Base Sepolia — already live.
  • Base mainnet — already live.

Downstream

Requires @oddmaki-protocol/sdk@^1.14.0 and the matching subgraph release.

@crevelop crevelop self-assigned this May 28, 2026
@crevelop
crevelop requested a review from a team as a code owner May 28, 2026 18:48
@crevelop
crevelop merged commit addda77 into main May 28, 2026
2 checks passed
@crevelop
crevelop deleted the cr/market-order-refactor branch May 28, 2026 18:55
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