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

Remove user fee #2586

Merged
merged 7 commits into from
Apr 9, 2024
Merged

Remove user fee #2586

merged 7 commits into from
Apr 9, 2024

Conversation

sunce86
Copy link
Contributor

@sunce86 sunce86 commented Apr 1, 2024

Description

Fixes #2492

Related gnosis-solvers PR: gnosis/solvers#9

Will be merged next week - apparently we don't have enough solvers ready for this breaking change yet!

Changes

Removed field "user_fee" from auction endpoint - breaking API change.
Removed field "fee_amount" from solvers api - also breaking API change

How to test

Existing (updated) tests.

@sunce86 sunce86 self-assigned this Apr 1, 2024
@sunce86 sunce86 requested a review from a team as a code owner April 1, 2024 13:50
Copy link
Contributor

@squadgazzz squadgazzz left a comment

Choose a reason for hiding this comment

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

LG

Copy link
Contributor

@MartinquaXD MartinquaXD left a comment

Choose a reason for hiding this comment

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

Really nice.
Also needs a change in https://github.com/gnosis/solvers.
Let's hope none of the external solvers break because of this. 🤞
Should we maybe run this commit in staging before merging to see if some of the solvers will run into issues because of it.
cc @harisang to communicate this change to solvers.

crates/driver/src/domain/competition/solution/trade.rs Outdated Show resolved Hide resolved
crates/driver/src/boundary/settlement.rs Show resolved Hide resolved
Copy link
Contributor

@fleupold fleupold left a comment

Choose a reason for hiding this comment

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

Code looks good overall, I'm just somewhat worried about breaking the API for clients and wonder if we can decouple our internal representation (no more user fee) and the external representation (hardcode user fee to 0) in a way that could lower this risk?

Comment on lines -37 to -38
#[serde_as(as = "HexOrDecimalU256")]
pub fee_amount: U256,
Copy link
Contributor

Choose a reason for hiding this comment

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

How confident are we that this breaking change is not going to shoot us in the foot? I think it would be ok to leave this value on the API level but simply always set it to 0 in code (and document that it's deprecated and always 0 in the API spec). For our internal models (domain, etc), we would want to remove this field however.

The frontend team would like to re-vamp our API and I think it would be ok to defer breaking changes thereto.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The mentioned field is part of the solvers API. Not sure what frontend has with it? If you got confused and referred to the model data struct than yes, we still want to keep fee_amount there.
Solvers API should be kept clean, this moment is good enough to make this change as any other IMO (actually, would have been better if we made this change before solvers moved to this API 😄 buy hey...)

Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry, wrong file (I wanted to comment on the one above: crates/orderbook/src/dto/order.rs), there the field is user_fee. Just want to make sure only our frontend depends on this field and can live without it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is a similar change we had few weeks ago with solver_fee: #2272 No major problems arose except shadow competition was down and alerter being down AFAIR.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This time I would expect only shadow to be down because alerter is not deserializing user_fee.

Fee::Static => self.order.user_fee,
Fee::Static => {
// Orders with static fees are no longer used, expect for quoting purposes, when
// the static fee is set to 0. This is expected to be resolved with https://github.com/cowprotocol/services/issues/2543
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there anything blocking #2543 ? If not could we simply implement this now to combine the cleanups (I'm not sure there will be time scheduled for the follow up cleanup)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Started working on it here: #2590
Do you think #2543 should block merging this PR?

@sunce86 sunce86 merged commit a940bc1 into main Apr 9, 2024
9 checks passed
@sunce86 sunce86 deleted the remove-user-fee-locally branch April 9, 2024 10:26
@github-actions github-actions bot locked and limited conversation to collaborators Apr 9, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

chore: Remove user_fee
5 participants