Skip to content

Commit 51fd0d5

Browse files
0xbulmaclaude
andcommitted
fix: prepend BLUE_SDK_QUERY_KEY_PREFIX to all query keys
Wire the shared prefix into every query key so that invalidateAllBlueSdkQueries can use a single prefix-based invalidation call instead of looping through individual names. Also migrate fetchMarketParams and fetchVaultConfig to the closure-based queryFn pattern for consistency. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 7b68876 commit 51fd0d5

File tree

13 files changed

+38
-31
lines changed

13 files changed

+38
-31
lines changed

packages/blue-sdk-wagmi/src/queries/fetchHolding.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011
import type { TokenParameters } from "./fetchToken.js";
1112
import type { UserParameters } from "./fetchUser.js";
1213

@@ -63,6 +64,7 @@ export function fetchHoldingQueryKey({
6364
stateOverride,
6465
}: FetchHoldingParameters) {
6566
return [
67+
BLUE_SDK_QUERY_KEY_PREFIX,
6668
"fetchHolding",
6769
// Ignore all other irrelevant parameters.
6870
{

packages/blue-sdk-wagmi/src/queries/fetchMarket.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011

1112
export type MarketParameters = {
1213
marketId: MarketId;
@@ -56,6 +57,7 @@ export function fetchMarketQueryKey({
5657
stateOverride,
5758
}: FetchMarketParameters) {
5859
return [
60+
BLUE_SDK_QUERY_KEY_PREFIX,
5961
"fetchMarket",
6062
// Ignore all other irrelevant parameters.
6163
{

packages/blue-sdk-wagmi/src/queries/fetchMarketParams.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011
import type { MarketParameters } from "./fetchMarket.js";
1112

1213
export type MarketParamsParameters = MarketParameters;
@@ -21,8 +22,8 @@ export function fetchMarketParamsQueryOptions<config extends Config>(
2122
return {
2223
// TODO: Support `signal` once Viem actions allow passthrough
2324
// https://tkdodo.eu/blog/why-you-want-react-query#bonus-cancellation
24-
async queryFn({ queryKey }) {
25-
const { marketId, chainId } = queryKey[1];
25+
async queryFn() {
26+
const { marketId, chainId } = parameters;
2627
if (!marketId) throw Error("marketId is required");
2728

2829
return fetchMarketParams(marketId, config.getClient({ chainId }), {
@@ -44,6 +45,7 @@ export function fetchMarketParamsQueryKey({
4445
chainId,
4546
}: FetchMarketParamsParameters) {
4647
return [
48+
BLUE_SDK_QUERY_KEY_PREFIX,
4749
"fetchMarketParams",
4850
// Ignore all other irrelevant parameters.
4951
{

packages/blue-sdk-wagmi/src/queries/fetchPosition.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { QueryOptions } from "@tanstack/query-core";
44
import type { ReadContractErrorType } from "viem";
55
import type { Config } from "wagmi";
66
import { hashFn } from "wagmi/query";
7+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
78
import type { MarketParameters } from "./fetchMarket.js";
89
import type { UserParameters } from "./fetchUser.js";
910

@@ -59,6 +60,7 @@ export function fetchPositionQueryKey({
5960
stateOverride,
6061
}: FetchPositionParameters) {
6162
return [
63+
BLUE_SDK_QUERY_KEY_PREFIX,
6264
"fetchPosition",
6365
// Ignore all other irrelevant parameters.
6466
{

packages/blue-sdk-wagmi/src/queries/fetchToken.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { Address, ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011

1112
export type TokenParameters = {
1213
token: Address;
@@ -56,6 +57,7 @@ export function fetchTokenQueryKey({
5657
stateOverride,
5758
}: FetchTokenParameters) {
5859
return [
60+
BLUE_SDK_QUERY_KEY_PREFIX,
5961
"fetchToken",
6062
// Ignore all other irrelevant parameters.
6163
{

packages/blue-sdk-wagmi/src/queries/fetchUser.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { QueryOptions } from "@tanstack/query-core";
44
import type { Address, ReadContractErrorType } from "viem";
55
import type { Config } from "wagmi";
66
import { hashFn } from "wagmi/query";
7+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
78

89
export type UserParameters = {
910
user: Address;
@@ -51,6 +52,7 @@ export function fetchUserQueryKey({
5152
stateOverride,
5253
}: FetchUserParameters) {
5354
return [
55+
BLUE_SDK_QUERY_KEY_PREFIX,
5456
"fetchUser",
5557
// Ignore all other irrelevant parameters.
5658
{

packages/blue-sdk-wagmi/src/queries/fetchVault.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { Address, ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011

1112
export type VaultParameters = {
1213
vault: Address;
@@ -56,6 +57,7 @@ export function fetchVaultQueryKey({
5657
stateOverride,
5758
}: FetchVaultParameters) {
5859
return [
60+
BLUE_SDK_QUERY_KEY_PREFIX,
5961
"fetchVault",
6062
{
6163
vault,

packages/blue-sdk-wagmi/src/queries/fetchVaultConfig.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011
import type { VaultParameters } from "./fetchVault.js";
1112

1213
export type VaultConfigParameters = VaultParameters;
@@ -21,13 +22,12 @@ export function fetchVaultConfigQueryOptions<config extends Config>(
2122
return {
2223
// TODO: Support `signal` once Viem actions allow passthrough
2324
// https://tkdodo.eu/blog/why-you-want-react-query#bonus-cancellation
24-
async queryFn({ queryKey }) {
25-
const { vault, chainId, ...parameters } = queryKey[1];
25+
async queryFn() {
26+
const { vault, chainId } = parameters;
2627
if (!vault) throw Error("vault is required");
2728

2829
return fetchVaultConfig(vault, config.getClient({ chainId }), {
2930
chainId,
30-
...parameters,
3131
});
3232
},
3333
queryKey: fetchVaultConfigQueryKey(parameters),
@@ -45,6 +45,7 @@ export function fetchVaultConfigQueryKey({
4545
chainId,
4646
}: FetchVaultConfigParameters) {
4747
return [
48+
BLUE_SDK_QUERY_KEY_PREFIX,
4849
"fetchVaultConfig",
4950
// Ignore all other irrelevant parameters.
5051
{

packages/blue-sdk-wagmi/src/queries/fetchVaultMarketConfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011
import type { MarketParameters } from "./fetchMarket.js";
1112
import type { VaultParameters } from "./fetchVault.js";
1213

@@ -62,6 +63,7 @@ export function fetchVaultMarketConfigQueryKey({
6263
stateOverride,
6364
}: FetchVaultMarketConfigParameters) {
6465
return [
66+
BLUE_SDK_QUERY_KEY_PREFIX,
6567
"fetchVaultMarketConfig",
6668
// Ignore all other irrelevant parameters.
6769
{

packages/blue-sdk-wagmi/src/queries/fetchVaultUser.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type { QueryOptions } from "@tanstack/query-core";
77
import type { ReadContractErrorType } from "viem";
88
import type { Config } from "wagmi";
99
import { hashFn } from "wagmi/query";
10+
import { BLUE_SDK_QUERY_KEY_PREFIX } from "../query-key-prefix.js";
1011
import type { UserParameters } from "./fetchUser.js";
1112
import type { VaultParameters } from "./fetchVault.js";
1213

@@ -63,6 +64,7 @@ export function fetchVaultUserQueryKey({
6364
stateOverride,
6465
}: FetchVaultUserParameters) {
6566
return [
67+
BLUE_SDK_QUERY_KEY_PREFIX,
6668
"fetchVaultUser",
6769
{
6870
vault,

0 commit comments

Comments
 (0)