flashbots / mev-inspect-py

🔎 an MEV inspector for Ethereum 🔎
MIT License
826 stars 258 forks source link

FIX: Avoid CoinGecko's API rate limit with time delays, when updating prices #331

Open romandvo opened 1 year ago

romandvo commented 1 year ago

Updating token prices with ./mev prices fetch-all can fail due to CoinGecko's API rate limits https://www.coingecko.com/en/api/pricing_2 (10-30 requests a minute)

Error message: ValueError: {'status': {'error_code': 429, 'error_message': "You've exceeded the Rate Limit. Please visit https://www.coingecko.com/en/api/pricing to subscribe to our API plans for higher rate limits."}}

Currently, TOKEN_ADDRESSES length is 14 which can (and does) fail the function, depending on the dynamic limit

By introducing time delays between API queries we can avoid hitting the limit and failing the price update.

What does this PR do?

A short description of what the PR does.

Related issue

Link to the issue this PR addresses.

If there isn't already an open issue, create an issue first. This will be our home for discussing the problem itself.

Testing

What testing was performed to verify this works? Unit tests are a big plus!

Checklist before merging