feat(pricing): optimise coingecko requests + add multi-level cache #30
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.
This PR introduces a significant optimization to our CoinGecko API usage by implementing the following:
Request: (3 unique tokens)
Response: (only 1 underlying price lookup)
[ { "coin_type": "ETH", "chain_id": "0x1", "address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "price": 0.999797, "vs_currency": "usd", "cache_status": "HIT" }, { "coin_type": "SOL", "chain_id": "0x65", "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "price": 0.999797, "vs_currency": "usd", "cache_status": "HIT" }, { "coin_type": "ETH", "chain_id": "0x2105", "address": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "price": 0.999797, "vs_currency": "usd", "cache_status": "MISS" } ]