Commit 4331527
authored
fix(blue-sdk-wagmi): remove blockNumber from query keys to prevent OOM
Remove blockNumber and blockTag from all fetch*QueryKey functions so that
TanStack Query reuses a single cache entry per entity instead of creating
~2,200 new entries every block (~10s on Base L2).
Before: each block spawns N new Query objects, old ones fail to gc at scale,
memory grows ~2.3 MB/s → OOM in ~20 min on heavy markets (Base cbBTC/USDC).
After: queries are stable. blockNumber/blockTag are captured in the queryFn
closure and passed to the underlying viem fetch calls, so RPC reads still
target the correct block. Consumers drive re-fetches by calling
invalidateAllBlueSdkQueries(queryClient) on each new block.
Changes:
- queries/fetch*.ts: exclude blockNumber and blockTag from queryKey return;
capture them from the parameters closure for queryFn.
- hooks/use*.ts: remove staleTime: Infinity default when blockNumber is set.
Consumers can still pass staleTime via the query parameter.
- simulation-sdk-wagmi/useSimulationState: drop Infinity staleTime override.
- New export: invalidateAllBlueSdkQueries() + BLUE_SDK_QUERY_NAMES constant
for consumer-driven block-change invalidation.
BREAKING CHANGE: Query keys no longer contain blockNumber/blockTag.
Code that accesses the cache with block-specific keys
(queryClient.getQueryData(['fetchMarket', { ..., blockNumber }]))
must be updated. staleTime no longer defaults to Infinity when
blockNumber is provided.1 parent cdba338 commit 4331527
File tree
33 files changed
+123
-110
lines changed- packages
- blue-sdk-wagmi/src
- hooks
- queries
- simulation-sdk-wagmi/src/hooks
33 files changed
+123
-110
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
53 | | - | |
54 | | - | |
| 52 | + | |
55 | 53 | | |
56 | 54 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
57 | | - | |
58 | | - | |
59 | | - | |
| 57 | + | |
60 | 58 | | |
61 | 59 | | |
62 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
53 | | - | |
| 51 | + | |
54 | 52 | | |
55 | 53 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | | - | |
| 49 | + | |
52 | 50 | | |
53 | 51 | | |
54 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
56 | | - | |
57 | | - | |
| 55 | + | |
58 | 56 | | |
59 | 57 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
| 58 | + | |
61 | 59 | | |
62 | 60 | | |
63 | 61 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 46 | + | |
49 | 47 | | |
50 | 48 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
| 48 | + | |
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
48 | | - | |
| 46 | + | |
49 | 47 | | |
50 | 48 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
50 | | - | |
| 48 | + | |
51 | 49 | | |
52 | 50 | | |
53 | 51 | | |
| |||
0 commit comments