Protections
board-controls message per ladder and stay in force until you send new ones with a higher nonce. The message carries expiresAt, the last second it can be committed: sign it a few minutes ahead. After that the commit is rejected (ControlsExpired(), reported as CommitRejected kind 4) and the nonce is not consumed. Once committed, the controls do not expire. Auto-dark is the expiry on every price message: expiresAt on ladders and offsets, ttl on anchors.
Age fade at
widenPpmPerSqrtSecond = 100:
The discount is
ceil(sqrt(widenPpmPerSqrtSecond^2 * age)) ppm. The age of a Reprice ladder counts from its anchor’s timestampMs, the age of a Rewrite ladder from its own timestampMs, so a ladder committed late is already aged. A controls commit does not reset the age.
The premium window restarts on every depth, anchor and controls commit. If you anchor every block or flashblock with premiumBlocks of 1 or more, the premium applies almost continuously. Size premiumPpm for that, or keep it at 0 and rely on age fade.
board() reports what is left in the current block, and the venue routes the rest of an order to other makers. controls(mm, tokenIn, tokenOut) on the executor returns your settings.
Maximum payout per ladder
A ladder fills at most its top size, counted across every taker. A newprice-ladder or offsets message resets the count. The maximum payout is fixed when you sign:
Keep at least that much
tokenOut in the provider. The executor caps board() remaining and quote() to what your provider’s available(tokenOut) reports, so with less inventory the venue quotes only the part you can pay.
Fill tracking
mmProvider, mmSigner and receiver are indexed. caller is the address that called fill (the venue, the hosted settlement or a direct taker), nonce is the depth version that priced the fill and anchorNonce is the pair anchor’s timestampMs at fill time (0 when no anchor exists for the pair). A trade split across makers emits one MMFillExecuted per maker. Its topic0 is 0x0d885e383bb9ad86c7811413207f8eabfcba2be4399cea97266e37996d46d062.
Stop quoting
setPaused needs no signed message and no keeper, so it works even when Biconomy’s keeper is down. It emits MakerPaused(address indexed mm, bool paused); makerPaused(mm) on the executor returns the current state. setPaused(false) lifts the pause; boards still inside their expiry quote again.
To resume after the other actions, send new messages with higher nonces.