Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clear2 0 order ratio bug #1049

Merged
merged 25 commits into from
Dec 28, 2024
Merged

Clear2 0 order ratio bug #1049

merged 25 commits into from
Dec 28, 2024

Conversation

ninokeldishvili
Copy link
Contributor

@ninokeldishvili ninokeldishvili commented Dec 9, 2024

Motivation

There seems to be a bug in an edge with clear2() where if Alice or Bob order ratio is 0, then the tx goes through silently without any reverts or issues, but nothing actually clears, no vault balance changes and no bounties.

This should not happen, in fact if the order ratio is 0, that measn all the output vault should go to the tx sender as bounty.

Solution

Add test showing the issue

Checks

By submitting this for review, I'm confirming I've done the following:

  • made this PR as small as possible
  • unit-tested any new functionality
  • linked any relevant issues or PRs
  • included screenshots (if this involves a front-end change)

@ninokeldishvili ninokeldishvili self-assigned this Dec 9, 2024
@ninokeldishvili ninokeldishvili linked an issue Dec 9, 2024 that may be closed by this pull request
@thedavidmeister thedavidmeister requested review from hardyjosh and removed request for thedavidmeister December 24, 2024 14:12
@thedavidmeister thedavidmeister self-assigned this Dec 24, 2024
uint256 orderIORatio = calculateOrderStack[0];
uint256 orderIORatio;
Output18Amount orderOutputMax18;
assembly ("memory-safe") {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was done to make the contract size smaller so that it can be deployed, we're right at the max codesize limit

@@ -786,14 +786,18 @@ contract OrderBook is IOrderBookV4, IMetaV1_2, ReentrancyGuard, Multicall, Order
new uint256[](0)
);

// This is redundant with the array index checks implied by solidity
// but it's a much clearer error message.
// This is a much error message and overall more efficient than
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo?

@thedavidmeister thedavidmeister merged commit d566b4b into main Dec 28, 2024
21 checks passed
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.

clear2() 0 order ratio bug
4 participants