Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf: Dont fetch v2 expired pools data and make price fetcher unique #10869

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

memoyil
Copy link
Collaborator

@memoyil memoyil commented Oct 24, 2024


PR-Codex overview

This PR focuses on optimizing the fetching of currency prices and pool data by eliminating duplicate requests and improving performance through the use of lodash's uniqBy function.

Detailed summary

  • Added uniqBy from lodash to filter unique currency parameters in usdPriceBatcher.
  • Renamed totalSupplyCalls to endTimestampCalls.
  • Updated calls to use activeValidPools instead of validPools.
  • Removed redundant endTimestampCalls and adjusted related logic.
  • Simplified Promise.all calls for fetching data.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Copy link

vercel bot commented Oct 24, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
web ✅ Ready (Inspect) Visit Preview 💬 Add feedback Oct 24, 2024 10:35am
6 Skipped Deployments
Name Status Preview Comments Updated (UTC)
aptos-web ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am
blog ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am
bridge ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am
games ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am
gamification ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am
uikit ⬜️ Ignored (Inspect) Visit Preview Oct 24, 2024 10:35am

Copy link

changeset-bot bot commented Oct 24, 2024

⚠️ No Changeset found

Latest commit: 945d879

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@@ -1,10 +1,14 @@
import { CurrencyParams, CurrencyUsdResult, getCurrencyKey, getCurrencyListUsdPrice } from '@pancakeswap/price-api-sdk'
import { create, windowedFiniteBatchScheduler } from '@yornaath/batshit'
import uniqBy from 'lodash/uniqBy'

export const usdPriceBatcher = create<CurrencyUsdResult, CurrencyParams, number>({
// The fetcher resolves the list of queries to one single api call.
fetcher: async (params: CurrencyParams[]) => {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

batcher shallowly compares currencyparams (which are tokens where it is called) and if same tokens are different objects it can be double fetched because of that

@memoyil memoyil changed the title perf: Dont fetch v2 expired pools data perf: Dont fetch v2 expired pools data and make price fetcher unique Oct 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant