subgraphs icon indicating copy to clipboard operation
subgraphs copied to clipboard

Dex AMM undefined or empty fields

Open liambeckman199 opened this issue 3 years ago • 5 comments

While querying a number of Dex AMM subgraphs on various chains, I have noticed the following fields in particular either undefined or empty:

**- RewardemissionsUSD

  • RewardTokenEmissionsAmount
  • Protocol Name and Network
  • outputToken**

I'm assuming this is a pending out of sync issue, but it would helpful to know if the team has noticed issues with any of these fields and has plans on addressing them. A subgraph that showcases these issues is Curve Finance on Ethereum Mainnet.

liambeckman199 avatar Aug 05 '22 17:08 liambeckman199

Thanks for flagging. Tagging @harsh9200 for Curve and Balancer. @liambeckman199 can you list the other subgraphs where you are seeing this issue?

this-username-is-taken avatar Aug 05 '22 22:08 this-username-is-taken

Here is a little report from looking through all the dex-amms besides curve!

By always present, always null, or sometimes present and sometimes null in the report below, I mean that it is actually a null field and not just a '0' value. I did not notice any cases where the protocol name or network are missing, but there were a couple examples of outdated names.

There is a fair bit of discrepancy between the protocols in how they handle the stakedOutputTokenAmount, rewardTokenEmissionsUSD, and rewardTokensEmissionsAmount. I think this is because, sometimes people chose to not add a value to these fields unless that pool is actually receiving rewards.

Also, I saw that the outputToken for Balancer and Beethoven is always null.

Bancor V3

  • rewardTokenEmissionUSD: always present
  • rewardTokenEmissionsAmount: always present
  • stakedOutputToken: always present
  • outputToken: always present
  • ProtocolName: present
  • ProtocolNetwork: present but uses mainnet instead of ethereum

Balancer V2 (ALL)

  • rewardTokenEmissionUSD: always null
  • rewardTokenEmissionsAmount: always null
  • stakedOutputTokenAmount: always present
  • outputToken: always null
  • ProtocolName: present
  • ProtocolNetwork: present but uses matic instead of polygon for the polygon deployment.

Beethoven X Optimism

  • rewardTokenEmissionUSD: always null
  • rewardTokenEmissionsAmount: always null
  • stakedOutputTokenAmount: always present
  • outputToken: always null
  • ProtocolName: present
  • ProtocolNetwork: present

Saddle Finance (ALL)

  • rewardTokenEmissionUSD: sometimes present sometimes null
  • rewardTokenEmissionsAmount: sometimes present sometimes null
  • stakedOutputTokenAmount: sometimes present sometimes null
  • outputToken: always present
  • ProtocolName: present
  • ProtocolNetwork: present but uses mainnet instead of ethereum

Platypus Finance

  • rewardTokenEmissionUSD: always present
  • rewardTokenEmissionsAmount: always present
  • stakedOutputTokenAmount: always null
  • outputToken: always present
  • ProtocolName: present
  • ProtocolNetwork: present but uses mainnet instead of ethereum

Uniswap Forks

  • rewardTokenEmissionUSD: always present
  • rewardTokenEmissionsAmount: always present
  • stakedOutputTokenAmount: always present
  • outputToken: always present
  • ProtocolName: present
  • ProtocolNetwork: present

BROKEN SUBGRAPHS:

  • Beethoven X Fantom
  • Ellipsis Finance BSC

steegecs avatar Aug 06 '22 02:08 steegecs

@steegecs thanks for putting this together! I will follow up with the respective owners of each subgraph. For ProtocolNetwork, I remember that we had a discussion about this and decided to stay consistent with The Graph inside of the subgraphs right? Like documented here: https://github.com/messari/subgraphs/blob/018486ef8d16e5314d794444b4d6a06bebae03f3/subgraphs/reference/src/common/constants.ts#L21

this-username-is-taken avatar Aug 07 '22 22:08 this-username-is-taken

Oh right! My bad.

steegecs avatar Aug 08 '22 16:08 steegecs

Thanks for this list steegecs. I agree with most of these items, however I've noticed issues in some of the fields you're reporting present. This might be because the subgraphs are not fully synced yet...?

Bancor v3, Sushi, Saddle and Balancer:

  • Missing fields: RewardEmission Amount &USD on snapshot levels

Sushi and Balancer:

  • Missing fields: output token on pool levels

Overall, the reward emission data should be null values for pools that don't receive rewards, rather than having no field at all... but I understand the challenge of people not reporting it as you mentioned. Does team Messari plan on solving these reward discrepancy issues?

liambeckman199 avatar Aug 08 '22 19:08 liambeckman199

@harsh9200 seems like some of Curve's fields are not in percentage format:

"inputTokenWeights": [
          "0.4649857979352482389912341794587102",
          "0.5105779228804201622802825403507127"
        ]

Would you also look through other places in Curve and Balancer to make sure?

this-username-is-taken avatar Aug 26 '22 15:08 this-username-is-taken

@liambeckman199 the Curve token weight issues has been fixed here (https://github.com/messari/subgraphs/pull/893/commits/6aa4430c643a30eefe51e141f8d8d27aafd28816) and is in the pending deployment. There are some price issues that are causing the weighting to be off, which we are tracking here: https://github.com/messari/subgraphs/issues/937. Please let me know if you see other issues

this-username-is-taken avatar Sep 03 '22 17:09 this-username-is-taken