Highlights
- Gas for matches are O(1) per‑rung relative to maker count.
- Claims scale mostly with order count; segment count adds modest overhead: 1 order ~36k, 25 orders ~479k; 1 order with 1k segments ~44k, O(log n) 100k segments ~50k.
- Batching is materially cheaper:
addLiquidityBatch(10 orders) is 1,564,032 gas vs ~2.74M gas for 10xaddLiquidityAsksingles (about 43% lower in this profile). - Rung traversal drives taker cost:
buyBaseis ~182,799 gas for 1 rung and adds ~141k per additional rung in this profile.
Overview
This section summarizes observed gas costs for common MAOB.sol actions. Values are from internal profiling runs and can vary by chain, state, and calldata.
Gas profile
Disclaimer: these figures were obtained in a local test environment on a standard EVM and will vary by chain, state, and calldata. MegaETH, specifically, has a non-standard method to calculate gas (which is not measured here) as described in MegaETH docs.
| Scenario | Gas |
|---|---|
| MAOB addLiquidityAsk 1 order | 273,601 |
| MAOB addLiquidityBid 1 order | 272,497 |
| MAOB addLiquidityBatch 10 orders | 1,564,032 |
| MAOB cancelOrder ask no withdraw | 79,261 |
| MAOB cancelOrder ask withdraw | 107,481 |
| MAOB cancelOrder bid no withdraw | 79,367 |
| MAOB cancelOrder bid withdraw | 107,609 |
| MAOB buyBase fill 1 makers | 182,719 |
| MAOB buyBase fill 5 makers | 182,719 |
| MAOB buyBase fill 20 makers | 182,719 |
| MAOB buyBase fill 50 makers | 182,719 |
| MAOB buyBaseTargetIn fill 1 makers | 182,613 |
| MAOB buyBaseTargetIn fill 20 makers | 182,613 |
| MAOB buyBaseTargetIn fill 2 rungs (10 makers each) | 325,230 |
| MAOB buyBaseTargetIn remainder quote | 201,948 |
| MAOB sellBaseExactOut fill 1 makers | 201,461 |
| MAOB sellBaseExactOut fill 20 makers | 201,461 |
| MAOB sellBaseExactOut fill 2 rungs (10 makers each) | 363,066 |
| MAOB sellBaseExactOut partial rung (1 of 10 makers) | 200,719 |
| MAOB sellBaseTargetIn fill 1 makers | 202,840 |
| MAOB sellBaseTargetIn fill 20 makers | 202,840 |
| MAOB buyBase fill 2 rungs explicit (10 makers each) | 323,800 |
| MAOB buyBase partial rung (1 of 10 makers) | 182,172 |
| MAOB buyBase fill 1 rungs (10 makers each) | 182,799 |
| MAOB buyBase fill 2 rungs (10 makers each) | 323,881 |
| MAOB buyBase fill 3 rungs (10 makers each) | 464,964 |
| MAOB buyBase fill 4 rungs (10 makers each) | 606,047 |
| MAOB buyBase fill 5 rungs (10 makers each) | 747,130 |
| MAOB buyBase fill 6 rungs (10 makers each) | 888,213 |
| MAOB buyBase fill 7 rungs (10 makers each) | 1,029,296 |
| MAOB buyBase fill 8 rungs (10 makers each) | 1,170,379 |
| MAOB buyBase fill 9 rungs (10 makers each) | 1,311,462 |
| MAOB buyBase fill 10 rungs (10 makers each) | 1,452,545 |
| MAOB claimOrders 1 orders | 36,132 |
| MAOB claimOrders 5 orders | 97,438 |
| MAOB claimOrders 10 orders | 182,519 |
| MAOB claimOrders 25 orders | 478,603 |
| MAOB claimOrders bid 5 orders | 97,699 |
| MAOB claimOrders 1 order, 2 segments | 36,581 |
| MAOB claimOrders 1 order, 10 segments | 38,415 |
| MAOB claimOrders 1 order, 25 segments | 39,326 |
| MAOB claimOrders 1 order, 50 segments | 40,237 |
| MAOB claimOrders 1 order, 100 segments | 41,148 |
| MAOB claimOrders 1 order, 1000 segments | 43,964 |
| MAOB claimOrders O(log n) 1 order, 1000 segments | 43,858 |
| MAOB claimOrders O(log n) 1 order, 100000 segments | 50,235 |