-
Notifications
You must be signed in to change notification settings - Fork 8
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
Fix SWR Cache Quota #223
base: master
Are you sure you want to change the base?
Fix SWR Cache Quota #223
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM 👍
@@ -129,3 +132,25 @@ function buildGetTransactionsFn(metadataTransactions: Transaction[]) { | |||
) | |||
} | |||
} | |||
|
|||
export async function pruneTransactionsInfiniteScrollCache() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this function try to clear the cache of unselected accounts?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if we have a selected account (we normally have unless this is a new wallet), then it will clear the cache for infinite scroll transaction for all other unselected accounts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I switch accounts twice, does it mean all account cache for scrolling would be removed?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we switch account and close & open the extension wallet, it will clear all the account cache for transactions infinite scroll. Only switching account won't clear all scrolling cache.
The consequence of not having the infinite scroll cache is that if we click the activity tab to look at transaction history, it will try to fetch from the explorer backend immediately
Do you think this is too aggressive?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does SWR support LRU cache with a limited capacity? LRU cache can handle clearing automatically.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SWR doesn't seem to have built-in support for LRU cache with limited capacity. I can investigate if we can integrate with custom cache provider to achieve this.
SWR Cache uses the
localStorage
as backend, which has a 10MB limit. The one uses the most space is the infinite scroll cache for transactions (~75% for my wallet)This PR:
useArrayStorage
, only cache the selected results instead of all results