Dex AMM undefined or empty fields
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.
Thanks for flagging. Tagging @harsh9200 for Curve and Balancer. @liambeckman199 can you list the other subgraphs where you are seeing this issue?
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 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
Oh right! My bad.
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?
@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?
@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