fix: Add MANTLE support for conversion rates #5402
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explanation
It seems that the MANTLE ERC20 tokens have wildly different USD/fiat conversions that what we had expected. This is amplified if you have more tokens.
Doing some digging, it seems that the balance/market data calculation is processed in the
fetchAndMapExchangeRatesForUnsupportedNativeCurrency
flow (for unsupported currencies).Code Flow
Starts here...
Which calls this
Which is a renamed export of fetchExchangeRate which doesn't use that conversion
Inspecting extension network shows that we fetch the conversion rate using this URL:
https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=MNT
This is incorrect as it is not using the correct symbol override. The url should be:
https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=MANTLE
This gives a much better unsupported conversion number that what it currently is.
References
Changelog
@metamask/assets-controllers
crypto-compare-service
fetchExchangeRate
to allow symbol overrides for mantle.Checklist