Actors
Maker
Holds
MAKER_ROLE. Escrows at creation, is paid directly on every fill, may cancel any time.Taker
Names the output they want and a ceiling on what they will pay for it. Open to anyone by
default; integrations can confirm current access with
canTake(account).Sweeper
Anyone. Calls
expireOrders to sweep timed-out orders. The refund goes to the maker — there is
nothing here to farm, which is why it needs no permission. No role required, and none exists
for it.Where funds sit
Only the sell side is ever held by the contract. The buy side is pulled from the taker and forwarded to the maker in the same call — it never rests anywhere.The solvency invariant
accruedFees[token] and remains separate from escrowed maker
funds. The balance can be checked externally with
lens.totalEscrowed.

