Skip to content

chore: Executed surplus fee in surplus token #2963

Description

@sunce86

Background

Both solver team and frontend team would like to have this field expressed over surplus token, instead of sell token. This would help a lot with showing complete breakdown of fees (network fee, protocol fee, total fee) as protocol fees are already calculated in surplus tokens.

Details

Steps:

  1. Add executed_surplus_fee_token to order_execution database table and populate historic entries with sell token of the order.
  2. Expose the field executed_surplus_fee_token over API whenever executed_surplus_fee is exposed.
  3. Switch to saving surplus fee in surplus token instead of sell token

So, bottom line, there will be a timestamp after which all fees will be in surplus token. For historic entries, executed surplus fee in sell token will remain.
Both solver and frontend team need to cope with this. I assume frontend will have to have a special IF to show things differently depending on if executed_surplus_fee is in sell token (for historic entries) or in surplus token (for new entries). There is also an alternative to try to convert executed_surplus_fee to surplus token for historic entries on the frontend side, where traded sell/buy amounts could be decent approximates (at least in most cases).

In the meantime, we decided to do a manual migration for historic entries, so that ALL fees will be expressed over SURPLUS token, so no special handling will be needed to support backward compatibility.

Acceptance criteria

Complete breakdown of taken fees is exposed on get_trades and get_order endpoints:

  1. network fee in surplus token
  2. protocol fees per fee policy, in surplus token
  3. total fee in surplus token (or maybe omitted since it can be calculated by summarizing (1) and (2))

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    blockedThis issue is blocked by some other work

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions