@whisk/steakhouse 0.0.2 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/client.d.ts +1 -12
  2. package/dist/client.js +1 -10
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.d.ts +6 -5
  5. package/dist/index.js +1 -4
  6. package/dist/index.js.map +1 -1
  7. package/dist/metadata/types.d.ts +3 -1
  8. package/dist/metadata/vaults.js +17 -15
  9. package/dist/metadata/vaults.js.map +1 -1
  10. package/dist/queries/fragments/vaultDetail.d.ts +265 -0
  11. package/dist/queries/fragments/vaultDetail.js +148 -0
  12. package/dist/queries/fragments/vaultDetail.js.map +1 -0
  13. package/dist/queries/getDetailedVault.d.ts +591 -0
  14. package/dist/queries/getDetailedVault.js +92 -0
  15. package/dist/queries/getDetailedVault.js.map +1 -0
  16. package/dist/queries/getVaults.d.ts +274 -13
  17. package/dist/queries/getVaults.js +36 -10
  18. package/dist/queries/getVaults.js.map +1 -1
  19. package/dist/queries/index.d.ts +6 -5
  20. package/dist/queries/index.js +6 -8
  21. package/dist/queries/index.js.map +1 -1
  22. package/dist/queries/steakhouseMetadata.d.ts +13 -0
  23. package/dist/queries/steakhouseMetadata.js +12 -0
  24. package/dist/queries/steakhouseMetadata.js.map +1 -0
  25. package/dist/queries/types.d.ts +2 -4
  26. package/dist/react/hooks/index.d.ts +8 -5
  27. package/dist/react/hooks/index.js +2 -0
  28. package/dist/react/hooks/index.js.map +1 -1
  29. package/dist/react/hooks/useDetailedVault.d.ts +12 -0
  30. package/dist/react/hooks/useDetailedVault.js +16 -0
  31. package/dist/react/hooks/useDetailedVault.js.map +1 -0
  32. package/dist/react/hooks/useSteakhouseQuery.d.ts +2 -4
  33. package/dist/react/hooks/useSteakhouseQuery.js +1 -1
  34. package/dist/react/hooks/useSteakhouseQuery.js.map +1 -1
  35. package/dist/react/hooks/useVaults.d.ts +7 -14
  36. package/dist/react/hooks/useVaults.js +3 -1
  37. package/dist/react/hooks/useVaults.js.map +1 -1
  38. package/dist/react/index.d.ts +8 -5
  39. package/dist/react/index.js +1 -8
  40. package/dist/react/index.js.map +1 -1
  41. package/dist/react/provider.d.ts +3 -5
  42. package/package.json +9 -4
  43. package/src/client.ts +3 -19
  44. package/src/index.ts +1 -2
  45. package/src/metadata/types.ts +3 -1
  46. package/src/metadata/vaults.ts +17 -17
  47. package/src/queries/fragments/vaultDetail.ts +151 -0
  48. package/src/queries/getDetailedVault.test.ts +212 -0
  49. package/src/queries/getDetailedVault.ts +132 -0
  50. package/src/queries/getVaults.test.ts +186 -0
  51. package/src/queries/getVaults.ts +62 -13
  52. package/src/queries/index.ts +9 -7
  53. package/src/queries/steakhouseMetadata.ts +19 -0
  54. package/src/react/hooks/index.ts +1 -0
  55. package/src/react/hooks/useDetailedVault.ts +19 -0
  56. package/src/react/hooks/useSteakhouseQuery.ts +3 -3
  57. package/src/react/hooks/useVaults.ts +7 -2
  58. package/src/react/index.ts +1 -6
  59. package/dist/queries/fragments/vault.d.ts +0 -19
  60. package/dist/queries/fragments/vault.js +0 -16
  61. package/dist/queries/fragments/vault.js.map +0 -1
  62. package/src/client.test.ts +0 -27
  63. package/src/queries/fragments/vault.ts +0 -15
@@ -1,27 +1,288 @@
1
1
  import * as gql_tada from 'gql.tada';
2
- import { VariablesOf } from 'gql.tada';
3
- import { ResultOf } from '@whisk/graphql';
4
- import { SteakhouseClient } from '../client.js';
5
- import '@urql/core';
6
- import '@whisk/client';
2
+ import { WhiskClient } from '@whisk/client';
3
+ import { VaultDetail } from './fragments/vaultDetail.js';
4
+ import { SteakhouseMetadata } from './steakhouseMetadata.js';
5
+ import '@whisk/graphql';
6
+ import '../metadata/types.js';
7
7
 
8
- declare const vaultQuery: gql_tada.TadaDocumentNode<{
9
- morphoVaults: {
8
+ /** GraphQL query for fetching Steakhouse vaults */
9
+ declare const vaultsQuery: gql_tada.TadaDocumentNode<{
10
+ erc4626Vaults: {
10
11
  items: ({
12
+ __typename?: "MorphoVault";
11
13
  chain: {
12
14
  id: number;
15
+ name: string;
16
+ icon: string;
13
17
  };
14
18
  vaultAddress: `0x${string}`;
15
- totalSupplied: {
19
+ name: string;
20
+ symbol: string;
21
+ decimals: number;
22
+ asset: {
23
+ address: `0x${string}`;
24
+ symbol: string;
25
+ name: string;
26
+ icon: string | null;
27
+ priceUsd: number | null;
28
+ decimals: number;
29
+ };
30
+ totalAssets: {
31
+ raw: bigint;
32
+ formatted: string;
33
+ usd: number | null;
34
+ };
35
+ apy: {
36
+ base: number;
37
+ total: number;
38
+ rewards: {
39
+ asset: {
40
+ symbol: string;
41
+ icon: string | null;
42
+ };
43
+ apr: number;
44
+ }[];
45
+ fee: number;
46
+ };
47
+ totalLiquidity: {
48
+ formatted: string;
49
+ usd: number | null;
50
+ };
51
+ v1PerformanceFee: number;
52
+ feeRecipientAddress: `0x${string}` | null;
53
+ ownerAddress: `0x${string}`;
54
+ curatorAddress: `0x${string}`;
55
+ guardianAddress: `0x${string}`;
56
+ metadata: {
57
+ description: string | null;
58
+ image: string | null;
59
+ forumLink: string | null;
60
+ curator: {
61
+ name: string;
62
+ image: string;
63
+ url: string;
64
+ } | null;
65
+ curators: {
66
+ name: string;
67
+ image: string;
68
+ url: string;
69
+ }[];
70
+ } | null;
71
+ marketAllocations: {
72
+ market: {
73
+ marketId: `0x${string}`;
74
+ name: string;
75
+ loanAsset: {
76
+ symbol: string;
77
+ icon: string | null;
78
+ };
79
+ collateralAsset: {
80
+ symbol: string;
81
+ icon: string | null;
82
+ } | null;
83
+ isIdle: boolean;
84
+ };
85
+ enabled: boolean;
86
+ supplyCap: {
87
+ formatted: string;
88
+ usd: number | null;
89
+ };
90
+ vaultSupplyShare: number;
91
+ marketSupplyShare: number;
92
+ position: {
93
+ supplyAmount: {
94
+ formatted: string;
95
+ usd: number | null;
96
+ };
97
+ };
98
+ }[];
99
+ riskAssessment: {
100
+ steakhouse: {
101
+ score: number;
102
+ rating: string;
103
+ } | null;
104
+ };
105
+ } | {
106
+ __typename?: "MorphoVaultV2";
107
+ chain: {
108
+ id: number;
109
+ name: string;
110
+ icon: string;
111
+ };
112
+ vaultAddress: `0x${string}`;
113
+ name: string;
114
+ symbol: string;
115
+ decimals: number;
116
+ asset: {
117
+ address: `0x${string}`;
118
+ symbol: string;
119
+ name: string;
120
+ icon: string | null;
121
+ priceUsd: number | null;
122
+ decimals: number;
123
+ };
124
+ totalAssets: {
125
+ raw: bigint;
126
+ formatted: string;
127
+ usd: number | null;
128
+ };
129
+ apy: {
130
+ base: number;
131
+ total: number;
132
+ rewards: {
133
+ asset: {
134
+ symbol: string;
135
+ icon: string | null;
136
+ };
137
+ apr: number;
138
+ }[];
139
+ fee: number;
140
+ };
141
+ curatorAddress: `0x${string}`;
142
+ ownerAddress: `0x${string}`;
143
+ metadata: {
144
+ description: string | null;
145
+ image: string | null;
146
+ forumLink: string | null;
147
+ curator: {
148
+ name: string;
149
+ image: string;
150
+ url: string;
151
+ } | null;
152
+ curators: {
153
+ name: string;
154
+ image: string;
155
+ url: string;
156
+ }[];
157
+ } | null;
158
+ liquidityAssets: {
159
+ formatted: string;
160
+ usd: number | null;
161
+ };
162
+ idleAssets: {
163
+ formatted: string;
164
+ usd: number | null;
165
+ };
166
+ v2PerformanceFee: {
167
+ formatted: string;
168
+ };
169
+ managementFee: {
170
+ formatted: string;
171
+ };
172
+ adapters: ({
173
+ __typename?: "MarketV1Adapter";
174
+ adapterAddress: `0x${string}`;
175
+ name: string | null;
176
+ } | {
177
+ __typename?: "BoxVaultAdapter";
178
+ } | {
179
+ __typename?: "UnknownAdapter";
180
+ } | {
181
+ __typename?: "VaultV1Adapter";
182
+ })[];
183
+ riskAssessment: {
184
+ steakhouse: {
185
+ score: number;
186
+ rating: string;
187
+ } | null;
188
+ };
189
+ } | {
190
+ __typename?: "BoxVault";
191
+ chain: {
192
+ id: number;
193
+ name: string;
194
+ icon: string;
195
+ };
196
+ vaultAddress: `0x${string}`;
197
+ name: string;
198
+ symbol: string;
199
+ decimals: number;
200
+ asset: {
201
+ address: `0x${string}`;
202
+ symbol: string;
203
+ name: string;
204
+ icon: string | null;
205
+ priceUsd: number | null;
206
+ decimals: number;
207
+ };
208
+ totalAssets: {
16
209
  raw: bigint;
210
+ formatted: string;
211
+ usd: number | null;
212
+ };
213
+ apy: {
214
+ base: number;
215
+ total: number;
216
+ rewards: {
217
+ asset: {
218
+ symbol: string;
219
+ icon: string | null;
220
+ };
221
+ apr: number;
222
+ }[];
223
+ fee: number;
224
+ };
225
+ } | {
226
+ __typename?: "GenericErc4626Vault";
227
+ chain: {
228
+ id: number;
229
+ name: string;
230
+ icon: string;
231
+ };
232
+ vaultAddress: `0x${string}`;
233
+ name: string;
234
+ symbol: string;
235
+ decimals: number;
236
+ asset: {
237
+ address: `0x${string}`;
238
+ symbol: string;
239
+ name: string;
240
+ icon: string | null;
241
+ priceUsd: number | null;
242
+ decimals: number;
243
+ };
244
+ totalAssets: {
245
+ raw: bigint;
246
+ formatted: string;
247
+ usd: number | null;
248
+ };
249
+ apy: {
250
+ base: number;
251
+ total: number;
252
+ rewards: {
253
+ asset: {
254
+ symbol: string;
255
+ icon: string | null;
256
+ };
257
+ apr: number;
258
+ }[];
259
+ fee: number;
17
260
  };
18
261
  } | null)[];
19
262
  };
20
263
  }, {
21
- limit: number;
264
+ limit?: number | null;
265
+ where?: {
266
+ keys?: {
267
+ protocol: "morpho_v1" | "morpho_v2" | "generic" | "box";
268
+ vaultAddress: `0x${string}`;
269
+ chainId: number;
270
+ }[] | null;
271
+ } | null;
22
272
  }, void>;
23
- type GetVaultsVariables = VariablesOf<typeof vaultQuery>;
24
- type GetVaultsResult = ResultOf<typeof vaultQuery>["morphoVaults"]["items"];
25
- declare function getVaults(client: SteakhouseClient, variables: GetVaultsVariables): Promise<GetVaultsResult>;
273
+ type GetVaultsVariables = {
274
+ /** Filter by chain ID */
275
+ chainId?: number;
276
+ };
277
+ /** Vault with Steakhouse metadata */
278
+ type VaultWithMetadata = VaultDetail & {
279
+ steakhouseMetadata?: SteakhouseMetadata;
280
+ };
281
+ type GetVaultsResult = VaultWithMetadata[];
282
+ /**
283
+ * Get all Steakhouse-curated vaults.
284
+ * Results are filtered to the SDK whitelist and augmented with Steakhouse metadata.
285
+ */
286
+ declare function getVaults(client: WhiskClient, variables?: GetVaultsVariables): Promise<GetVaultsResult>;
26
287
 
27
- export { type GetVaultsResult, type GetVaultsVariables, getVaults, vaultQuery };
288
+ export { type GetVaultsResult, type GetVaultsVariables, type VaultWithMetadata, getVaults, vaultsQuery };
@@ -1,23 +1,49 @@
1
1
  import { graphql } from "@whisk/graphql";
2
- import { vaultFragment } from "./fragments/vault.js";
3
- const vaultQuery = graphql(
2
+ import { ALL_VAULTS } from "../metadata/vaults.js";
3
+ import { vaultDetailFragment } from "./fragments/vaultDetail.js";
4
+ import { buildSteakhouseMetadata } from "./steakhouseMetadata.js";
5
+ const vaultsQuery = graphql(
4
6
  `
5
- query GetVaults($limit: Int!) {
6
- morphoVaults(limit: $limit) {
7
+ query GetVaults($where: Erc4626VaultFilter, $limit: Int) {
8
+ erc4626Vaults(where: $where, limit: $limit) {
7
9
  items {
8
- ...VaultFragment
10
+ ...VaultDetailFragment
9
11
  }
10
12
  }
11
13
  }
12
14
  `,
13
- [vaultFragment]
15
+ [vaultDetailFragment]
14
16
  );
15
- async function getVaults(client, variables) {
16
- const result = await client.query(vaultQuery, variables);
17
- return result.morphoVaults.items;
17
+ async function getVaults(client, variables = {}) {
18
+ const { chainId } = variables;
19
+ const filteredVaults = ALL_VAULTS.filter(
20
+ (v) => !v.isHidden && (!chainId || v.chainId === chainId)
21
+ );
22
+ if (filteredVaults.length === 0) {
23
+ return [];
24
+ }
25
+ const keys = filteredVaults.map((v) => ({
26
+ chainId: v.chainId,
27
+ vaultAddress: v.address,
28
+ protocol: v.protocol
29
+ }));
30
+ const result = await client.query(vaultsQuery, {
31
+ where: { keys },
32
+ limit: keys.length
33
+ });
34
+ const metadataMap = new Map(
35
+ filteredVaults.map((v) => [v.address.toLowerCase(), v])
36
+ );
37
+ return result.erc4626Vaults.items.filter((vault) => vault !== null).map((vault) => {
38
+ const config = metadataMap.get(vault.vaultAddress.toLowerCase());
39
+ if (config) {
40
+ return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(config) };
41
+ }
42
+ return vault;
43
+ });
18
44
  }
19
45
  export {
20
46
  getVaults,
21
- vaultQuery
47
+ vaultsQuery
22
48
  };
23
49
  //# sourceMappingURL=getVaults.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/queries/getVaults.ts"],"sourcesContent":["import { graphql, type ResultOf } from \"@whisk/graphql\"\nimport type { VariablesOf } from \"gql.tada\"\nimport type { SteakhouseClient } from \"../client.js\"\nimport { vaultFragment } from \"./fragments/vault.js\"\n\nexport const vaultQuery = graphql(\n `\n query GetVaults($limit: Int!) {\n morphoVaults(limit: $limit) {\n items {\n ...VaultFragment\n }\n }\n }\n `,\n [vaultFragment],\n)\n\nexport type GetVaultsVariables = VariablesOf<typeof vaultQuery>\nexport type GetVaultsResult = ResultOf<typeof vaultQuery>[\"morphoVaults\"][\"items\"]\n\nexport async function getVaults(\n client: SteakhouseClient,\n variables: GetVaultsVariables,\n): Promise<GetVaultsResult> {\n const result = await client.query(vaultQuery, variables)\n return result.morphoVaults.items\n}\n"],"mappings":"AAAA,SAAS,eAA8B;AAGvC,SAAS,qBAAqB;AAEvB,MAAM,aAAa;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,CAAC,aAAa;AAChB;AAKA,eAAsB,UACpB,QACA,WAC0B;AAC1B,QAAM,SAAS,MAAM,OAAO,MAAM,YAAY,SAAS;AACvD,SAAO,OAAO,aAAa;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../src/queries/getVaults.ts"],"sourcesContent":["import { graphql } from \"@whisk/graphql\"\nimport type { SteakhouseClient } from \"../client.js\"\nimport type { Address, VaultConfig } from \"../metadata/types.js\"\nimport { ALL_VAULTS } from \"../metadata/vaults.js\"\nimport { type VaultDetail, vaultDetailFragment } from \"./fragments/vaultDetail.js\"\nimport { buildSteakhouseMetadata, type SteakhouseMetadata } from \"./steakhouseMetadata.js\"\n\n/** GraphQL query for fetching Steakhouse vaults */\nexport const vaultsQuery = graphql(\n `\n query GetVaults($where: Erc4626VaultFilter, $limit: Int) {\n erc4626Vaults(where: $where, limit: $limit) {\n items {\n ...VaultDetailFragment\n }\n }\n }\n `,\n [vaultDetailFragment],\n)\n\nexport type GetVaultsVariables = {\n /** Filter by chain ID */\n chainId?: number\n}\n\n/** Vault with Steakhouse metadata */\nexport type VaultWithMetadata = VaultDetail & {\n steakhouseMetadata?: SteakhouseMetadata\n}\n\nexport type GetVaultsResult = VaultWithMetadata[]\n\n/**\n * Get all Steakhouse-curated vaults.\n * Results are filtered to the SDK whitelist and augmented with Steakhouse metadata.\n */\nexport async function getVaults(\n client: SteakhouseClient,\n variables: GetVaultsVariables = {},\n): Promise<GetVaultsResult> {\n const { chainId } = variables\n\n const filteredVaults = ALL_VAULTS.filter(\n (v) => !v.isHidden && (!chainId || v.chainId === chainId),\n )\n\n if (filteredVaults.length === 0) {\n return []\n }\n\n // Build keys array for erc4626Vaults filter\n const keys = filteredVaults.map((v) => ({\n chainId: v.chainId,\n vaultAddress: v.address,\n protocol: v.protocol,\n }))\n\n const result = await client.query(vaultsQuery, {\n where: { keys },\n limit: keys.length,\n })\n\n const metadataMap = new Map<Address, VaultConfig>(\n filteredVaults.map((v) => [v.address.toLowerCase() as Address, v]),\n )\n\n return result.erc4626Vaults.items\n .filter((vault): vault is NonNullable<typeof vault> => vault !== null)\n .map((vault) => {\n const config = metadataMap.get(vault.vaultAddress.toLowerCase() as Address)\n if (config) {\n return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(config) }\n }\n return vault\n })\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,SAAS,kBAAkB;AAC3B,SAA2B,2BAA2B;AACtD,SAAS,+BAAwD;AAG1D,MAAM,cAAc;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,CAAC,mBAAmB;AACtB;AAkBA,eAAsB,UACpB,QACA,YAAgC,CAAC,GACP;AAC1B,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,iBAAiB,WAAW;AAAA,IAChC,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,YAAY;AAAA,EACnD;AAEA,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAO,CAAC;AAAA,EACV;AAGA,QAAM,OAAO,eAAe,IAAI,CAAC,OAAO;AAAA,IACtC,SAAS,EAAE;AAAA,IACX,cAAc,EAAE;AAAA,IAChB,UAAU,EAAE;AAAA,EACd,EAAE;AAEF,QAAM,SAAS,MAAM,OAAO,MAAM,aAAa;AAAA,IAC7C,OAAO,EAAE,KAAK;AAAA,IACd,OAAO,KAAK;AAAA,EACd,CAAC;AAED,QAAM,cAAc,IAAI;AAAA,IACtB,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,YAAY,GAAc,CAAC,CAAC;AAAA,EACnE;AAEA,SAAO,OAAO,cAAc,MACzB,OAAO,CAAC,UAA8C,UAAU,IAAI,EACpE,IAAI,CAAC,UAAU;AACd,UAAM,SAAS,YAAY,IAAI,MAAM,aAAa,YAAY,CAAY;AAC1E,QAAI,QAAQ;AACV,aAAO,EAAE,GAAG,OAAO,oBAAoB,wBAAwB,MAAM,EAAE;AAAA,IACzE;AACA,WAAO;AAAA,EACT,CAAC;AACL;","names":[]}
@@ -1,8 +1,9 @@
1
- export { Vault, vaultFragment } from './fragments/vault.js';
2
- export { GetVaultsResult, GetVaultsVariables, getVaults, vaultQuery } from './getVaults.js';
1
+ export { VaultDetail, vaultDetailFragment } from './fragments/vaultDetail.js';
2
+ export { DetailedVault, GetDetailedVaultResult, GetDetailedVaultVariables, getDetailedVault, vaultQuery, vaultWithHistoricalQuery } from './getDetailedVault.js';
3
+ export { GetVaultsResult, GetVaultsVariables, VaultWithMetadata, getVaults, vaultsQuery } from './getVaults.js';
4
+ export { SteakhouseMetadata, buildSteakhouseMetadata } from './steakhouseMetadata.js';
3
5
  export { SteakhouseQueryFn } from './types.js';
4
- import '../client.js';
6
+ import '@whisk/client';
5
7
  import 'gql.tada';
6
8
  import '@whisk/graphql';
7
- import '@urql/core';
8
- import '@whisk/client';
9
+ import '../metadata/types.js';
@@ -1,11 +1,9 @@
1
- import { vaultFragment } from "./fragments/vault.js";
2
- import {
3
- getVaults,
4
- vaultQuery
5
- } from "./getVaults.js";
1
+ import { vaultDetailFragment } from "./fragments/vaultDetail.js";
2
+ export * from "./getDetailedVault.js";
3
+ export * from "./getVaults.js";
4
+ import { buildSteakhouseMetadata } from "./steakhouseMetadata.js";
6
5
  export {
7
- getVaults,
8
- vaultFragment,
9
- vaultQuery
6
+ buildSteakhouseMetadata,
7
+ vaultDetailFragment
10
8
  };
11
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/queries/index.ts"],"sourcesContent":["export { type Vault, vaultFragment } from \"./fragments/vault.js\"\nexport {\n type GetVaultsResult,\n type GetVaultsVariables,\n getVaults,\n vaultQuery,\n} from \"./getVaults.js\"\nexport type { SteakhouseQueryFn } from \"./types.js\"\n"],"mappings":"AAAA,SAAqB,qBAAqB;AAC1C;AAAA,EAGE;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../src/queries/index.ts"],"sourcesContent":["// Fragments\nexport { type VaultDetail, vaultDetailFragment } from \"./fragments/vaultDetail.js\"\n// Queries\nexport * from \"./getDetailedVault.js\"\nexport * from \"./getVaults.js\"\n// Shared\nexport { buildSteakhouseMetadata, type SteakhouseMetadata } from \"./steakhouseMetadata.js\"\n\n// Types\nexport type { SteakhouseQueryFn } from \"./types.js\"\n"],"mappings":"AACA,SAA2B,2BAA2B;AAEtD,cAAc;AACd,cAAc;AAEd,SAAS,+BAAwD;","names":[]}
@@ -0,0 +1,13 @@
1
+ import { VaultConfig } from '../metadata/types.js';
2
+
3
+ /** Steakhouse-specific metadata augmented onto vault data */
4
+ type SteakhouseMetadata = {
5
+ name?: string;
6
+ description?: string;
7
+ tag?: VaultConfig["tag"];
8
+ protocol: VaultConfig["protocol"];
9
+ };
10
+ /** Build metadata object from vault config */
11
+ declare function buildSteakhouseMetadata(config: VaultConfig): SteakhouseMetadata;
12
+
13
+ export { type SteakhouseMetadata, buildSteakhouseMetadata };
@@ -0,0 +1,12 @@
1
+ function buildSteakhouseMetadata(config) {
2
+ return {
3
+ protocol: config.protocol,
4
+ ...config.name !== void 0 && { name: config.name },
5
+ ...config.description !== void 0 && { description: config.description },
6
+ ...config.tag !== void 0 && { tag: config.tag }
7
+ };
8
+ }
9
+ export {
10
+ buildSteakhouseMetadata
11
+ };
12
+ //# sourceMappingURL=steakhouseMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/queries/steakhouseMetadata.ts"],"sourcesContent":["import type { VaultConfig } from \"../metadata/types.js\"\n\n/** Steakhouse-specific metadata augmented onto vault data */\nexport type SteakhouseMetadata = {\n name?: string\n description?: string\n tag?: VaultConfig[\"tag\"]\n protocol: VaultConfig[\"protocol\"]\n}\n\n/** Build metadata object from vault config */\nexport function buildSteakhouseMetadata(config: VaultConfig): SteakhouseMetadata {\n return {\n protocol: config.protocol,\n ...(config.name !== undefined && { name: config.name }),\n ...(config.description !== undefined && { description: config.description }),\n ...(config.tag !== undefined && { tag: config.tag }),\n }\n}\n"],"mappings":"AAWO,SAAS,wBAAwB,QAAyC;AAC/E,SAAO;AAAA,IACL,UAAU,OAAO;AAAA,IACjB,GAAI,OAAO,SAAS,UAAa,EAAE,MAAM,OAAO,KAAK;AAAA,IACrD,GAAI,OAAO,gBAAgB,UAAa,EAAE,aAAa,OAAO,YAAY;AAAA,IAC1E,GAAI,OAAO,QAAQ,UAAa,EAAE,KAAK,OAAO,IAAI;AAAA,EACpD;AACF;","names":[]}
@@ -1,7 +1,5 @@
1
- import { SteakhouseClient } from '../client.js';
2
- import '@urql/core';
3
- import '@whisk/client';
1
+ import { WhiskClient } from '@whisk/client';
4
2
 
5
- type SteakhouseQueryFn<TData, TVariables> = (client: SteakhouseClient, variables: TVariables) => Promise<TData>;
3
+ type SteakhouseQueryFn<TData, TVariables> = (client: WhiskClient, variables: TVariables) => Promise<TData>;
6
4
 
7
5
  export type { SteakhouseQueryFn };
@@ -1,10 +1,13 @@
1
+ export { useDetailedVault } from './useDetailedVault.js';
1
2
  export { useSteakhouseQuery } from './useSteakhouseQuery.js';
2
3
  export { useVaults } from './useVaults.js';
3
4
  import '@tanstack/react-query';
4
- import '../../queries/types.js';
5
- import '../../client.js';
6
- import '@urql/core';
7
- import '@whisk/client';
8
- import '../../queries/getVaults.js';
5
+ import '../../queries/getDetailedVault.js';
9
6
  import 'gql.tada';
7
+ import '@whisk/client';
8
+ import '../../metadata/types.js';
9
+ import '../../queries/fragments/vaultDetail.js';
10
10
  import '@whisk/graphql';
11
+ import '../../queries/steakhouseMetadata.js';
12
+ import '../../queries/types.js';
13
+ import '../../queries/getVaults.js';
@@ -1,6 +1,8 @@
1
+ import { useDetailedVault } from "./useDetailedVault.js";
1
2
  import { useSteakhouseQuery } from "./useSteakhouseQuery.js";
2
3
  import { useVaults } from "./useVaults.js";
3
4
  export {
5
+ useDetailedVault,
4
6
  useSteakhouseQuery,
5
7
  useVaults
6
8
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/hooks/index.ts"],"sourcesContent":["export { useSteakhouseQuery } from \"./useSteakhouseQuery.js\"\nexport { useVaults } from \"./useVaults.js\"\n"],"mappings":"AAAA,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;","names":[]}
1
+ {"version":3,"sources":["../../../src/react/hooks/index.ts"],"sourcesContent":["export { useDetailedVault } from \"./useDetailedVault.js\"\nexport { useSteakhouseQuery } from \"./useSteakhouseQuery.js\"\nexport { useVaults } from \"./useVaults.js\"\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,iBAAiB;","names":[]}
@@ -0,0 +1,12 @@
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { GetDetailedVaultVariables, GetDetailedVaultResult } from '../../queries/getDetailedVault.js';
3
+ import 'gql.tada';
4
+ import '@whisk/client';
5
+ import '../../metadata/types.js';
6
+ import '../../queries/fragments/vaultDetail.js';
7
+ import '@whisk/graphql';
8
+ import '../../queries/steakhouseMetadata.js';
9
+
10
+ declare function useDetailedVault(variables: GetDetailedVaultVariables): UseQueryResult<GetDetailedVaultResult, Error>;
11
+
12
+ export { useDetailedVault };
@@ -0,0 +1,16 @@
1
+ "use client";
2
+ import {
3
+ getDetailedVault
4
+ } from "../../queries/getDetailedVault.js";
5
+ import { useSteakhouseQuery } from "./useSteakhouseQuery.js";
6
+ function useDetailedVault(variables) {
7
+ return useSteakhouseQuery({
8
+ queryName: "detailedVault",
9
+ queryFn: getDetailedVault,
10
+ variables
11
+ });
12
+ }
13
+ export {
14
+ useDetailedVault
15
+ };
16
+ //# sourceMappingURL=useDetailedVault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/react/hooks/useDetailedVault.ts"],"sourcesContent":["\"use client\"\n\nimport type { UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type GetDetailedVaultResult,\n type GetDetailedVaultVariables,\n getDetailedVault,\n} from \"../../queries/getDetailedVault.js\"\nimport { useSteakhouseQuery } from \"./useSteakhouseQuery.js\"\n\nexport function useDetailedVault(\n variables: GetDetailedVaultVariables,\n): UseQueryResult<GetDetailedVaultResult, Error> {\n return useSteakhouseQuery({\n queryName: \"detailedVault\",\n queryFn: getDetailedVault,\n variables,\n })\n}\n"],"mappings":";AAGA;AAAA,EAGE;AAAA,OACK;AACP,SAAS,0BAA0B;AAE5B,SAAS,iBACd,WAC+C;AAC/C,SAAO,mBAAmB;AAAA,IACxB,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1,13 +1,11 @@
1
- import * as _tanstack_react_query from '@tanstack/react-query';
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
2
  import { SteakhouseQueryFn } from '../../queries/types.js';
3
- import '../../client.js';
4
- import '@urql/core';
5
3
  import '@whisk/client';
6
4
 
7
5
  declare function useSteakhouseQuery<TData, TVariables>(options: {
8
6
  queryName: string;
9
7
  queryFn: SteakhouseQueryFn<TData, TVariables>;
10
8
  variables: TVariables;
11
- }): _tanstack_react_query.UseQueryResult<_tanstack_react_query.NoInfer<TData>, Error>;
9
+ }): UseQueryResult<TData, Error>;
12
10
 
13
11
  export { useSteakhouseQuery };
@@ -4,7 +4,7 @@ import { useSteakhouse } from "../provider.js";
4
4
  function useSteakhouseQuery(options) {
5
5
  const { client } = useSteakhouse();
6
6
  return useQuery({
7
- queryKey: [options.queryName, options.variables],
7
+ queryKey: ["steakhouse", options.queryName, options.variables],
8
8
  queryFn: () => options.queryFn(client, options.variables)
9
9
  });
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/hooks/useSteakhouseQuery.ts"],"sourcesContent":["\"use client\"\n\nimport { useQuery } from \"@tanstack/react-query\"\nimport type { SteakhouseQueryFn } from \"../../queries/types.js\"\nimport { useSteakhouse } from \"../provider.js\"\n\nexport function useSteakhouseQuery<TData, TVariables>(options: {\n queryName: string\n queryFn: SteakhouseQueryFn<TData, TVariables>\n variables: TVariables\n}) {\n const { client } = useSteakhouse()\n return useQuery({\n queryKey: [options.queryName, options.variables],\n queryFn: () => options.queryFn(client, options.variables),\n })\n}\n"],"mappings":";AAEA,SAAS,gBAAgB;AAEzB,SAAS,qBAAqB;AAEvB,SAAS,mBAAsC,SAInD;AACD,QAAM,EAAE,OAAO,IAAI,cAAc;AACjC,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,QAAQ,WAAW,QAAQ,SAAS;AAAA,IAC/C,SAAS,MAAM,QAAQ,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC1D,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/react/hooks/useSteakhouseQuery.ts"],"sourcesContent":["\"use client\"\n\nimport { type UseQueryResult, useQuery } from \"@tanstack/react-query\"\nimport type { SteakhouseQueryFn } from \"../../queries/types.js\"\nimport { useSteakhouse } from \"../provider.js\"\n\nexport function useSteakhouseQuery<TData, TVariables>(options: {\n queryName: string\n queryFn: SteakhouseQueryFn<TData, TVariables>\n variables: TVariables\n}): UseQueryResult<TData, Error> {\n const { client } = useSteakhouse()\n return useQuery({\n queryKey: [\"steakhouse\", options.queryName, options.variables],\n queryFn: () => options.queryFn(client, options.variables),\n })\n}\n"],"mappings":";AAEA,SAA8B,gBAAgB;AAE9C,SAAS,qBAAqB;AAEvB,SAAS,mBAAsC,SAIrB;AAC/B,QAAM,EAAE,OAAO,IAAI,cAAc;AACjC,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,cAAc,QAAQ,WAAW,QAAQ,SAAS;AAAA,IAC7D,SAAS,MAAM,QAAQ,QAAQ,QAAQ,QAAQ,SAAS;AAAA,EAC1D,CAAC;AACH;","names":[]}
@@ -1,19 +1,12 @@
1
- import * as _tanstack_react_query from '@tanstack/react-query';
2
- import { GetVaultsVariables } from '../../queries/getVaults.js';
1
+ import { UseQueryResult } from '@tanstack/react-query';
2
+ import { GetVaultsVariables, GetVaultsResult } from '../../queries/getVaults.js';
3
3
  import 'gql.tada';
4
- import '@whisk/graphql';
5
- import '../../client.js';
6
- import '@urql/core';
7
4
  import '@whisk/client';
5
+ import '../../queries/fragments/vaultDetail.js';
6
+ import '@whisk/graphql';
7
+ import '../../queries/steakhouseMetadata.js';
8
+ import '../../metadata/types.js';
8
9
 
9
- declare function useVaults(variables: GetVaultsVariables): _tanstack_react_query.UseQueryResult<({
10
- chain: {
11
- id: number;
12
- };
13
- vaultAddress: `0x${string}`;
14
- totalSupplied: {
15
- raw: bigint;
16
- };
17
- } | null)[], Error>;
10
+ declare function useVaults(variables: GetVaultsVariables): UseQueryResult<GetVaultsResult, Error>;
18
11
 
19
12
  export { useVaults };
@@ -1,5 +1,7 @@
1
1
  "use client";
2
- import { getVaults } from "../../queries/getVaults.js";
2
+ import {
3
+ getVaults
4
+ } from "../../queries/getVaults.js";
3
5
  import { useSteakhouseQuery } from "./useSteakhouseQuery.js";
4
6
  function useVaults(variables) {
5
7
  return useSteakhouseQuery({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/react/hooks/useVaults.ts"],"sourcesContent":["\"use client\"\n\nimport { type GetVaultsVariables, getVaults } from \"../../queries/getVaults.js\"\nimport { useSteakhouseQuery } from \"./useSteakhouseQuery.js\"\n\nexport function useVaults(variables: GetVaultsVariables) {\n return useSteakhouseQuery({\n queryName: \"vaults\",\n queryFn: getVaults,\n variables,\n })\n}\n"],"mappings":";AAEA,SAAkC,iBAAiB;AACnD,SAAS,0BAA0B;AAE5B,SAAS,UAAU,WAA+B;AACvD,SAAO,mBAAmB;AAAA,IACxB,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/react/hooks/useVaults.ts"],"sourcesContent":["\"use client\"\n\nimport type { UseQueryResult } from \"@tanstack/react-query\"\nimport {\n type GetVaultsResult,\n type GetVaultsVariables,\n getVaults,\n} from \"../../queries/getVaults.js\"\nimport { useSteakhouseQuery } from \"./useSteakhouseQuery.js\"\n\nexport function useVaults(variables: GetVaultsVariables): UseQueryResult<GetVaultsResult, Error> {\n return useSteakhouseQuery({\n queryName: \"vaults\",\n queryFn: getVaults,\n variables,\n })\n}\n"],"mappings":";AAGA;AAAA,EAGE;AAAA,OACK;AACP,SAAS,0BAA0B;AAE5B,SAAS,UAAU,WAAuE;AAC/F,SAAO,mBAAmB;AAAA,IACxB,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA,EACF,CAAC;AACH;","names":[]}
@@ -1,12 +1,15 @@
1
+ export { useDetailedVault } from './hooks/useDetailedVault.js';
1
2
  export { useSteakhouseQuery } from './hooks/useSteakhouseQuery.js';
2
3
  export { useVaults } from './hooks/useVaults.js';
3
4
  export { SteakhouseContextValue, SteakhouseProvider, SteakhouseProviderProps, useSteakhouse } from './provider.js';
4
5
  import '@tanstack/react-query';
5
- import '../queries/types.js';
6
- import '../client.js';
7
- import '@urql/core';
8
- import '@whisk/client';
9
- import '../queries/getVaults.js';
6
+ import '../queries/getDetailedVault.js';
10
7
  import 'gql.tada';
8
+ import '@whisk/client';
9
+ import '../metadata/types.js';
10
+ import '../queries/fragments/vaultDetail.js';
11
11
  import '@whisk/graphql';
12
+ import '../queries/steakhouseMetadata.js';
13
+ import '../queries/types.js';
14
+ import '../queries/getVaults.js';
12
15
  import 'react';
@@ -1,10 +1,3 @@
1
1
  export * from "./hooks/index.js";
2
- import {
3
- SteakhouseProvider,
4
- useSteakhouse
5
- } from "./provider.js";
6
- export {
7
- SteakhouseProvider,
8
- useSteakhouse
9
- };
2
+ export * from "./provider.js";
10
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/index.ts"],"sourcesContent":["export * from \"./hooks/index.js\"\nexport {\n type SteakhouseContextValue,\n SteakhouseProvider,\n type SteakhouseProviderProps,\n useSteakhouse,\n} from \"./provider.js\"\n"],"mappings":"AAAA,cAAc;AACd;AAAA,EAEE;AAAA,EAEA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../src/react/index.ts"],"sourcesContent":["export * from \"./hooks/index.js\"\nexport * from \"./provider.js\"\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}