vegaprotocol / vega

A Go implementation of the Vega Protocol, a protocol for creating and trading derivatives on a fully decentralised network.
https://vega.xyz
GNU Affero General Public License v3.0
38 stars 22 forks source link

fix: when uncrossing after auction refine approximately expanded AMMs… #11736

Closed wwestgarth closed 1 month ago

wwestgarth commented 1 month ago

closes #11715

When the crossed region is large we approximate AMM orders to avoid lots of calculations when working out the volume-maximising-range. This approximation is usually fine execpt in the case where the volume-maximising range is bound by a real order on the book. In this situation the AMM's approximate order will straddle with bound and its luck whether the uncrossing will work.

What we do now is that for any AMM's that were expanded approximately, when we come to actually uncross the book, we refine its expansion accurately only in this volume-maximising-range. We then recalculate the volume-maximising-range with the more accurate expansion in the region we actually care about.