feat(ui): reduce suggestedParams requests #120
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.
The generated Algokit app clients will fetch suggested transaction params for every transaction, unless you provide them yourself via the
params
property. To prevent frequent repeated requests for the same data, this adds a simple utility class calledParamsCache
which fetches suggested params once and caches the result for a configuredstaleTime
(currently 5 minutes).While this does mean I'm now instantiating app clients via an async function, since the data is cached most of those executed functions will return their data instantly.
Other Changes
My initial approach here was to use Tanstack Query for fetching and caching suggested params. But it would require passing a
QueryClient
instance as an argument to every API function from the component calling it. Over the course of my first approach I made some other minor changes, including:get
tofetch
to follow the convention used everywhere else/src/api/clients.ts
Even though I reverted the commit that actually added the query, the other changes could obviously stay.