@whisk/steakhouse 0.0.5 → 0.0.7

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 (151) hide show
  1. package/dist/index.d.ts +1 -6
  2. package/dist/metadata/generated/vaults.d.ts +7 -0
  3. package/dist/metadata/generated/vaults.js +468 -0
  4. package/dist/metadata/generated/vaults.js.map +1 -0
  5. package/dist/metadata/index.d.ts +3 -3
  6. package/dist/metadata/index.js +4 -8
  7. package/dist/metadata/index.js.map +1 -1
  8. package/dist/metadata/types.d.ts +9 -10
  9. package/dist/metadata/types.js +4 -0
  10. package/dist/metadata/types.js.map +1 -1
  11. package/dist/queries/getTvl.d.ts +33 -0
  12. package/dist/queries/getTvl.js +33 -0
  13. package/dist/queries/getTvl.js.map +1 -0
  14. package/dist/queries/index.d.ts +1 -6
  15. package/dist/queries/index.js +1 -8
  16. package/dist/queries/index.js.map +1 -1
  17. package/dist/react/hooks/index.d.ts +3 -10
  18. package/dist/react/hooks/index.js +2 -6
  19. package/dist/react/hooks/index.js.map +1 -1
  20. package/dist/react/hooks/useTvl.d.ts +9 -0
  21. package/dist/react/hooks/useTvl.js +15 -0
  22. package/dist/react/hooks/useTvl.js.map +1 -0
  23. package/dist/react/index.d.ts +3 -10
  24. package/package.json +16 -8
  25. package/src/metadata/README.md +93 -0
  26. package/src/metadata/generated/vaults.ts +470 -0
  27. package/src/metadata/index.ts +5 -3
  28. package/src/metadata/types.ts +8 -11
  29. package/src/metadata/vaults/arbitrum/high-yield-turbo-usdc.md +6 -0
  30. package/src/metadata/vaults/arbitrum/high-yield-usdc-v1.md +6 -0
  31. package/src/metadata/vaults/arbitrum/high-yield-usdc-v2.md +6 -0
  32. package/src/metadata/vaults/arbitrum/high-yield-usdt-v2.md +6 -0
  33. package/src/metadata/vaults/base/deblock-eurc.md +6 -0
  34. package/src/metadata/vaults/base/eth-v1.md +6 -0
  35. package/src/metadata/vaults/base/eura.md +6 -0
  36. package/src/metadata/vaults/base/eurc-v1.md +6 -0
  37. package/src/metadata/vaults/base/high-yield-instant-usdc.md +6 -0
  38. package/src/metadata/vaults/base/high-yield-turbo-eth.md +6 -0
  39. package/src/metadata/vaults/base/high-yield-usdc-v1-1.md +6 -0
  40. package/src/metadata/vaults/base/high-yield-usdc.md +6 -0
  41. package/src/metadata/vaults/base/prime-instant-usdc.md +6 -0
  42. package/src/metadata/vaults/base/safe-x-eth-2.md +6 -0
  43. package/src/metadata/vaults/base/safe-x-eth.md +6 -0
  44. package/src/metadata/vaults/base/safe-x-usdc.md +6 -0
  45. package/src/metadata/vaults/base/smokehouse-usdc.md +6 -0
  46. package/src/metadata/vaults/base/susds.md +6 -0
  47. package/src/metadata/vaults/base/usda.md +6 -0
  48. package/src/metadata/vaults/base/usdc-rwa.md +6 -0
  49. package/src/metadata/vaults/base/usdc-v1.md +6 -0
  50. package/src/metadata/vaults/katana/high-yield-ausd.md +6 -0
  51. package/src/metadata/vaults/katana/high-yield-usdc.md +6 -0
  52. package/src/metadata/vaults/katana/prime-ausd.md +6 -0
  53. package/src/metadata/vaults/katana/prime-usdc.md +6 -0
  54. package/src/metadata/vaults/mainnet/3f-x-steakhouse.md +6 -0
  55. package/src/metadata/vaults/mainnet/coinshift-usdc.md +6 -0
  56. package/src/metadata/vaults/mainnet/coinshift-usdl.md +6 -0
  57. package/src/metadata/vaults/mainnet/eth-v1.md +6 -0
  58. package/src/metadata/vaults/mainnet/ethena-usdt.md +6 -0
  59. package/src/metadata/vaults/mainnet/ethena-usdtb.md +6 -0
  60. package/src/metadata/vaults/mainnet/eurcv-v1.md +6 -0
  61. package/src/metadata/vaults/mainnet/high-yield-instant-ausd-v2.md +6 -0
  62. package/src/metadata/vaults/mainnet/high-yield-instant-usdc-v2.md +6 -0
  63. package/src/metadata/vaults/mainnet/high-yield-instant-usdt-v2.md +6 -0
  64. package/src/metadata/vaults/mainnet/high-yield-term-usdc.md +6 -0
  65. package/src/metadata/vaults/mainnet/high-yield-turbo-cbbtc-v2.md +6 -0
  66. package/src/metadata/vaults/mainnet/high-yield-turbo-eth-v2.md +6 -0
  67. package/src/metadata/vaults/mainnet/high-yield-turbo-usdt-v2.md +6 -0
  68. package/src/metadata/vaults/mainnet/infinifi-usdc.md +6 -0
  69. package/src/metadata/vaults/mainnet/level-usdc.md +6 -0
  70. package/src/metadata/vaults/mainnet/m-v1.md +6 -0
  71. package/src/metadata/vaults/mainnet/paxg-v1.md +6 -0
  72. package/src/metadata/vaults/mainnet/peaty-usdc.md +6 -0
  73. package/src/metadata/vaults/mainnet/prime-instant-eth-v2.md +6 -0
  74. package/src/metadata/vaults/mainnet/prime-instant-eurcv-v2.md +6 -0
  75. package/src/metadata/vaults/mainnet/prime-instant-pyusd-v2.md +6 -0
  76. package/src/metadata/vaults/mainnet/prime-instant-usdc-v2.md +6 -0
  77. package/src/metadata/vaults/mainnet/prime-instant-usdt-v2.md +6 -0
  78. package/src/metadata/vaults/mainnet/pyusd-high-yield-instant.md +6 -0
  79. package/src/metadata/vaults/mainnet/pyusd-v1.md +6 -0
  80. package/src/metadata/vaults/mainnet/rusd-v1.md +6 -0
  81. package/src/metadata/vaults/mainnet/safe-x-eth.md +6 -0
  82. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdc.md +6 -0
  83. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdt.md +6 -0
  84. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wbtc.md +6 -0
  85. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wsteth.md +6 -0
  86. package/src/metadata/vaults/mainnet/safe-x-usdc.md +6 -0
  87. package/src/metadata/vaults/mainnet/safe-x-usdt.md +6 -0
  88. package/src/metadata/vaults/mainnet/smokehouse-cbbtc.md +6 -0
  89. package/src/metadata/vaults/mainnet/smokehouse-dai.md +6 -0
  90. package/src/metadata/vaults/mainnet/smokehouse-eth.md +6 -0
  91. package/src/metadata/vaults/mainnet/smokehouse-usdc.md +6 -0
  92. package/src/metadata/vaults/mainnet/smokehouse-usdt.md +6 -0
  93. package/src/metadata/vaults/mainnet/smokehouse-wsteth.md +6 -0
  94. package/src/metadata/vaults/mainnet/usdc-rwa.md +6 -0
  95. package/src/metadata/vaults/mainnet/usdc-v1.md +6 -0
  96. package/src/metadata/vaults/mainnet/usdq.md +6 -0
  97. package/src/metadata/vaults/mainnet/usdr.md +6 -0
  98. package/src/metadata/vaults/mainnet/usdt-lite.md +6 -0
  99. package/src/metadata/vaults/mainnet/usdt-v1.md +6 -0
  100. package/src/metadata/vaults/mainnet/vault-bridge-usdc.md +6 -0
  101. package/src/metadata/vaults/mainnet/wbtc-v1.md +6 -0
  102. package/src/metadata/vaults/monad/ausd-v2.md +6 -0
  103. package/src/metadata/vaults/monad/usdc-v2.md +6 -0
  104. package/src/metadata/vaults/unichain/eth.md +6 -0
  105. package/src/metadata/vaults/unichain/wsteth.md +6 -0
  106. package/src/queries/getTvl.ts +37 -0
  107. package/src/queries/index.ts +1 -10
  108. package/src/react/hooks/index.ts +1 -3
  109. package/src/react/hooks/useTvl.ts +14 -0
  110. package/dist/metadata/chains.d.ts +0 -7
  111. package/dist/metadata/chains.js +0 -15
  112. package/dist/metadata/chains.js.map +0 -1
  113. package/dist/metadata/vaults.d.ts +0 -7
  114. package/dist/metadata/vaults.js +0 -26
  115. package/dist/metadata/vaults.js.map +0 -1
  116. package/dist/queries/fragments/vaultDetail.d.ts +0 -265
  117. package/dist/queries/fragments/vaultDetail.js +0 -148
  118. package/dist/queries/fragments/vaultDetail.js.map +0 -1
  119. package/dist/queries/getDetailedVault.d.ts +0 -591
  120. package/dist/queries/getDetailedVault.js +0 -92
  121. package/dist/queries/getDetailedVault.js.map +0 -1
  122. package/dist/queries/getVaults.d.ts +0 -288
  123. package/dist/queries/getVaults.js +0 -49
  124. package/dist/queries/getVaults.js.map +0 -1
  125. package/dist/queries/steakhouseMetadata.d.ts +0 -13
  126. package/dist/queries/steakhouseMetadata.js +0 -12
  127. package/dist/queries/steakhouseMetadata.js.map +0 -1
  128. package/dist/queries/types.d.ts +0 -5
  129. package/dist/queries/types.js +0 -1
  130. package/dist/queries/types.js.map +0 -1
  131. package/dist/react/hooks/useDetailedVault.d.ts +0 -12
  132. package/dist/react/hooks/useDetailedVault.js +0 -16
  133. package/dist/react/hooks/useDetailedVault.js.map +0 -1
  134. package/dist/react/hooks/useSteakhouseQuery.d.ts +0 -11
  135. package/dist/react/hooks/useSteakhouseQuery.js +0 -14
  136. package/dist/react/hooks/useSteakhouseQuery.js.map +0 -1
  137. package/dist/react/hooks/useVaults.d.ts +0 -12
  138. package/dist/react/hooks/useVaults.js +0 -16
  139. package/dist/react/hooks/useVaults.js.map +0 -1
  140. package/src/metadata/chains.ts +0 -13
  141. package/src/metadata/vaults.ts +0 -27
  142. package/src/queries/fragments/vaultDetail.ts +0 -151
  143. package/src/queries/getDetailedVault.test.ts +0 -212
  144. package/src/queries/getDetailedVault.ts +0 -132
  145. package/src/queries/getVaults.test.ts +0 -186
  146. package/src/queries/getVaults.ts +0 -77
  147. package/src/queries/steakhouseMetadata.ts +0 -19
  148. package/src/queries/types.ts +0 -6
  149. package/src/react/hooks/useDetailedVault.ts +0 -19
  150. package/src/react/hooks/useSteakhouseQuery.ts +0 -17
  151. package/src/react/hooks/useVaults.ts +0 -17
@@ -1,591 +0,0 @@
1
- import * as gql_tada from 'gql.tada';
2
- import { WhiskClient } from '@whisk/client';
3
- import { Address } from '../metadata/types.js';
4
- import { VaultDetail } from './fragments/vaultDetail.js';
5
- import { SteakhouseMetadata } from './steakhouseMetadata.js';
6
- import '@whisk/graphql';
7
-
8
- /** Historical data type extracted from the fragment */
9
- type VaultHistoricalData = {
10
- daily: Array<{
11
- bucketTimestamp: number;
12
- totalSupplied: {
13
- formatted: string;
14
- usd: number | null;
15
- };
16
- supplyApy7d: {
17
- total: number;
18
- };
19
- }>;
20
- };
21
- /** Query for fetching a single vault without historical data */
22
- declare const vaultQuery: gql_tada.TadaDocumentNode<{
23
- erc4626Vaults: {
24
- items: ({
25
- __typename?: "MorphoVault";
26
- chain: {
27
- id: number;
28
- name: string;
29
- icon: string;
30
- };
31
- vaultAddress: `0x${string}`;
32
- name: string;
33
- symbol: string;
34
- decimals: number;
35
- asset: {
36
- address: `0x${string}`;
37
- symbol: string;
38
- name: string;
39
- icon: string | null;
40
- priceUsd: number | null;
41
- decimals: number;
42
- };
43
- totalAssets: {
44
- raw: bigint;
45
- formatted: string;
46
- usd: number | null;
47
- };
48
- apy: {
49
- base: number;
50
- total: number;
51
- rewards: {
52
- asset: {
53
- symbol: string;
54
- icon: string | null;
55
- };
56
- apr: number;
57
- }[];
58
- fee: number;
59
- };
60
- totalLiquidity: {
61
- formatted: string;
62
- usd: number | null;
63
- };
64
- v1PerformanceFee: number;
65
- feeRecipientAddress: `0x${string}` | null;
66
- ownerAddress: `0x${string}`;
67
- curatorAddress: `0x${string}`;
68
- guardianAddress: `0x${string}`;
69
- metadata: {
70
- description: string | null;
71
- image: string | null;
72
- forumLink: string | null;
73
- curator: {
74
- name: string;
75
- image: string;
76
- url: string;
77
- } | null;
78
- curators: {
79
- name: string;
80
- image: string;
81
- url: string;
82
- }[];
83
- } | null;
84
- marketAllocations: {
85
- market: {
86
- marketId: `0x${string}`;
87
- name: string;
88
- loanAsset: {
89
- symbol: string;
90
- icon: string | null;
91
- };
92
- collateralAsset: {
93
- symbol: string;
94
- icon: string | null;
95
- } | null;
96
- isIdle: boolean;
97
- };
98
- enabled: boolean;
99
- supplyCap: {
100
- formatted: string;
101
- usd: number | null;
102
- };
103
- vaultSupplyShare: number;
104
- marketSupplyShare: number;
105
- position: {
106
- supplyAmount: {
107
- formatted: string;
108
- usd: number | null;
109
- };
110
- };
111
- }[];
112
- riskAssessment: {
113
- steakhouse: {
114
- score: number;
115
- rating: string;
116
- } | null;
117
- };
118
- } | {
119
- __typename?: "MorphoVaultV2";
120
- chain: {
121
- id: number;
122
- name: string;
123
- icon: string;
124
- };
125
- vaultAddress: `0x${string}`;
126
- name: string;
127
- symbol: string;
128
- decimals: number;
129
- asset: {
130
- address: `0x${string}`;
131
- symbol: string;
132
- name: string;
133
- icon: string | null;
134
- priceUsd: number | null;
135
- decimals: number;
136
- };
137
- totalAssets: {
138
- raw: bigint;
139
- formatted: string;
140
- usd: number | null;
141
- };
142
- apy: {
143
- base: number;
144
- total: number;
145
- rewards: {
146
- asset: {
147
- symbol: string;
148
- icon: string | null;
149
- };
150
- apr: number;
151
- }[];
152
- fee: number;
153
- };
154
- curatorAddress: `0x${string}`;
155
- ownerAddress: `0x${string}`;
156
- metadata: {
157
- description: string | null;
158
- image: string | null;
159
- forumLink: string | null;
160
- curator: {
161
- name: string;
162
- image: string;
163
- url: string;
164
- } | null;
165
- curators: {
166
- name: string;
167
- image: string;
168
- url: string;
169
- }[];
170
- } | null;
171
- liquidityAssets: {
172
- formatted: string;
173
- usd: number | null;
174
- };
175
- idleAssets: {
176
- formatted: string;
177
- usd: number | null;
178
- };
179
- v2PerformanceFee: {
180
- formatted: string;
181
- };
182
- managementFee: {
183
- formatted: string;
184
- };
185
- adapters: ({
186
- __typename?: "MarketV1Adapter";
187
- adapterAddress: `0x${string}`;
188
- name: string | null;
189
- } | {
190
- __typename?: "BoxVaultAdapter";
191
- } | {
192
- __typename?: "UnknownAdapter";
193
- } | {
194
- __typename?: "VaultV1Adapter";
195
- })[];
196
- riskAssessment: {
197
- steakhouse: {
198
- score: number;
199
- rating: string;
200
- } | null;
201
- };
202
- } | {
203
- __typename?: "BoxVault";
204
- chain: {
205
- id: number;
206
- name: string;
207
- icon: string;
208
- };
209
- vaultAddress: `0x${string}`;
210
- name: string;
211
- symbol: string;
212
- decimals: number;
213
- asset: {
214
- address: `0x${string}`;
215
- symbol: string;
216
- name: string;
217
- icon: string | null;
218
- priceUsd: number | null;
219
- decimals: number;
220
- };
221
- totalAssets: {
222
- raw: bigint;
223
- formatted: string;
224
- usd: number | null;
225
- };
226
- apy: {
227
- base: number;
228
- total: number;
229
- rewards: {
230
- asset: {
231
- symbol: string;
232
- icon: string | null;
233
- };
234
- apr: number;
235
- }[];
236
- fee: number;
237
- };
238
- } | {
239
- __typename?: "GenericErc4626Vault";
240
- chain: {
241
- id: number;
242
- name: string;
243
- icon: string;
244
- };
245
- vaultAddress: `0x${string}`;
246
- name: string;
247
- symbol: string;
248
- decimals: number;
249
- asset: {
250
- address: `0x${string}`;
251
- symbol: string;
252
- name: string;
253
- icon: string | null;
254
- priceUsd: number | null;
255
- decimals: number;
256
- };
257
- totalAssets: {
258
- raw: bigint;
259
- formatted: string;
260
- usd: number | null;
261
- };
262
- apy: {
263
- base: number;
264
- total: number;
265
- rewards: {
266
- asset: {
267
- symbol: string;
268
- icon: string | null;
269
- };
270
- apr: number;
271
- }[];
272
- fee: number;
273
- };
274
- } | null)[];
275
- };
276
- }, {
277
- where?: {
278
- keys?: {
279
- protocol: "morpho_v1" | "morpho_v2" | "generic" | "box";
280
- vaultAddress: `0x${string}`;
281
- chainId: number;
282
- }[] | null;
283
- } | null;
284
- }, void>;
285
- /** Query for fetching a single vault with historical data */
286
- declare const vaultWithHistoricalQuery: gql_tada.TadaDocumentNode<{
287
- erc4626Vaults: {
288
- items: ({
289
- __typename?: "MorphoVault";
290
- chain: {
291
- id: number;
292
- name: string;
293
- icon: string;
294
- };
295
- vaultAddress: `0x${string}`;
296
- name: string;
297
- symbol: string;
298
- decimals: number;
299
- asset: {
300
- address: `0x${string}`;
301
- symbol: string;
302
- name: string;
303
- icon: string | null;
304
- priceUsd: number | null;
305
- decimals: number;
306
- };
307
- totalAssets: {
308
- raw: bigint;
309
- formatted: string;
310
- usd: number | null;
311
- };
312
- apy: {
313
- base: number;
314
- total: number;
315
- rewards: {
316
- asset: {
317
- symbol: string;
318
- icon: string | null;
319
- };
320
- apr: number;
321
- }[];
322
- fee: number;
323
- };
324
- totalLiquidity: {
325
- formatted: string;
326
- usd: number | null;
327
- };
328
- v1PerformanceFee: number;
329
- feeRecipientAddress: `0x${string}` | null;
330
- ownerAddress: `0x${string}`;
331
- curatorAddress: `0x${string}`;
332
- guardianAddress: `0x${string}`;
333
- metadata: {
334
- description: string | null;
335
- image: string | null;
336
- forumLink: string | null;
337
- curator: {
338
- name: string;
339
- image: string;
340
- url: string;
341
- } | null;
342
- curators: {
343
- name: string;
344
- image: string;
345
- url: string;
346
- }[];
347
- } | null;
348
- marketAllocations: {
349
- market: {
350
- marketId: `0x${string}`;
351
- name: string;
352
- loanAsset: {
353
- symbol: string;
354
- icon: string | null;
355
- };
356
- collateralAsset: {
357
- symbol: string;
358
- icon: string | null;
359
- } | null;
360
- isIdle: boolean;
361
- };
362
- enabled: boolean;
363
- supplyCap: {
364
- formatted: string;
365
- usd: number | null;
366
- };
367
- vaultSupplyShare: number;
368
- marketSupplyShare: number;
369
- position: {
370
- supplyAmount: {
371
- formatted: string;
372
- usd: number | null;
373
- };
374
- };
375
- }[];
376
- riskAssessment: {
377
- steakhouse: {
378
- score: number;
379
- rating: string;
380
- } | null;
381
- };
382
- historical: {
383
- daily: {
384
- bucketTimestamp: number;
385
- totalSupplied: {
386
- formatted: string;
387
- usd: number | null;
388
- };
389
- supplyApy7d: {
390
- total: number;
391
- };
392
- }[];
393
- } | null;
394
- } | {
395
- __typename?: "MorphoVaultV2";
396
- chain: {
397
- id: number;
398
- name: string;
399
- icon: string;
400
- };
401
- vaultAddress: `0x${string}`;
402
- name: string;
403
- symbol: string;
404
- decimals: number;
405
- asset: {
406
- address: `0x${string}`;
407
- symbol: string;
408
- name: string;
409
- icon: string | null;
410
- priceUsd: number | null;
411
- decimals: number;
412
- };
413
- totalAssets: {
414
- raw: bigint;
415
- formatted: string;
416
- usd: number | null;
417
- };
418
- apy: {
419
- base: number;
420
- total: number;
421
- rewards: {
422
- asset: {
423
- symbol: string;
424
- icon: string | null;
425
- };
426
- apr: number;
427
- }[];
428
- fee: number;
429
- };
430
- curatorAddress: `0x${string}`;
431
- ownerAddress: `0x${string}`;
432
- metadata: {
433
- description: string | null;
434
- image: string | null;
435
- forumLink: string | null;
436
- curator: {
437
- name: string;
438
- image: string;
439
- url: string;
440
- } | null;
441
- curators: {
442
- name: string;
443
- image: string;
444
- url: string;
445
- }[];
446
- } | null;
447
- liquidityAssets: {
448
- formatted: string;
449
- usd: number | null;
450
- };
451
- idleAssets: {
452
- formatted: string;
453
- usd: number | null;
454
- };
455
- v2PerformanceFee: {
456
- formatted: string;
457
- };
458
- managementFee: {
459
- formatted: string;
460
- };
461
- adapters: ({
462
- __typename?: "MarketV1Adapter";
463
- adapterAddress: `0x${string}`;
464
- name: string | null;
465
- } | {
466
- __typename?: "BoxVaultAdapter";
467
- } | {
468
- __typename?: "UnknownAdapter";
469
- } | {
470
- __typename?: "VaultV1Adapter";
471
- })[];
472
- riskAssessment: {
473
- steakhouse: {
474
- score: number;
475
- rating: string;
476
- } | null;
477
- };
478
- historical: {
479
- daily: {
480
- bucketTimestamp: number;
481
- totalSupplied: {
482
- formatted: string;
483
- usd: number | null;
484
- };
485
- supplyApy7d: {
486
- total: number;
487
- };
488
- }[];
489
- } | null;
490
- } | {
491
- __typename?: "BoxVault";
492
- chain: {
493
- id: number;
494
- name: string;
495
- icon: string;
496
- };
497
- vaultAddress: `0x${string}`;
498
- name: string;
499
- symbol: string;
500
- decimals: number;
501
- asset: {
502
- address: `0x${string}`;
503
- symbol: string;
504
- name: string;
505
- icon: string | null;
506
- priceUsd: number | null;
507
- decimals: number;
508
- };
509
- totalAssets: {
510
- raw: bigint;
511
- formatted: string;
512
- usd: number | null;
513
- };
514
- apy: {
515
- base: number;
516
- total: number;
517
- rewards: {
518
- asset: {
519
- symbol: string;
520
- icon: string | null;
521
- };
522
- apr: number;
523
- }[];
524
- fee: number;
525
- };
526
- } | {
527
- __typename?: "GenericErc4626Vault";
528
- chain: {
529
- id: number;
530
- name: string;
531
- icon: string;
532
- };
533
- vaultAddress: `0x${string}`;
534
- name: string;
535
- symbol: string;
536
- decimals: number;
537
- asset: {
538
- address: `0x${string}`;
539
- symbol: string;
540
- name: string;
541
- icon: string | null;
542
- priceUsd: number | null;
543
- decimals: number;
544
- };
545
- totalAssets: {
546
- raw: bigint;
547
- formatted: string;
548
- usd: number | null;
549
- };
550
- apy: {
551
- base: number;
552
- total: number;
553
- rewards: {
554
- asset: {
555
- symbol: string;
556
- icon: string | null;
557
- };
558
- apr: number;
559
- }[];
560
- fee: number;
561
- };
562
- } | null)[];
563
- };
564
- }, {
565
- where?: {
566
- keys?: {
567
- protocol: "morpho_v1" | "morpho_v2" | "generic" | "box";
568
- vaultAddress: `0x${string}`;
569
- chainId: number;
570
- }[] | null;
571
- } | null;
572
- }, void>;
573
- type GetDetailedVaultVariables = {
574
- chainId: number;
575
- address: Address;
576
- /** Include historical data for charts (default: true) */
577
- historical?: boolean;
578
- };
579
- /** Vault detail with Steakhouse metadata and optional historical data */
580
- type DetailedVault = VaultDetail & {
581
- historical?: VaultHistoricalData | null;
582
- steakhouseMetadata: SteakhouseMetadata;
583
- };
584
- type GetDetailedVaultResult = DetailedVault | null;
585
- /**
586
- * Get full details for a single Steakhouse vault with optional historical data.
587
- * Returns null if the vault is not in the whitelist.
588
- */
589
- declare function getDetailedVault(client: WhiskClient, variables: GetDetailedVaultVariables): Promise<GetDetailedVaultResult>;
590
-
591
- export { type DetailedVault, type GetDetailedVaultResult, type GetDetailedVaultVariables, getDetailedVault, vaultQuery, vaultWithHistoricalQuery };
@@ -1,92 +0,0 @@
1
- import { graphql } from "@whisk/graphql";
2
- import { ALL_VAULTS } from "../metadata/vaults.js";
3
- import { vaultDetailFragment } from "./fragments/vaultDetail.js";
4
- import { buildSteakhouseMetadata } from "./steakhouseMetadata.js";
5
- const vaultHistoricalFragment = graphql(`
6
- fragment VaultHistoricalFragment on Erc4626Vault {
7
- ... on MorphoVault {
8
- historical {
9
- daily {
10
- bucketTimestamp
11
- totalSupplied {
12
- formatted
13
- usd
14
- }
15
- supplyApy7d {
16
- total
17
- }
18
- }
19
- }
20
- }
21
- ... on MorphoVaultV2 {
22
- historical {
23
- daily {
24
- bucketTimestamp
25
- totalSupplied {
26
- formatted
27
- usd
28
- }
29
- supplyApy7d {
30
- total
31
- }
32
- }
33
- }
34
- }
35
- }
36
- `);
37
- const vaultQuery = graphql(
38
- `
39
- query GetVault($where: Erc4626VaultFilter) {
40
- erc4626Vaults(where: $where, limit: 1) {
41
- items {
42
- ...VaultDetailFragment
43
- }
44
- }
45
- }
46
- `,
47
- [vaultDetailFragment]
48
- );
49
- const vaultWithHistoricalQuery = graphql(
50
- `
51
- query GetVaultWithHistorical($where: Erc4626VaultFilter) {
52
- erc4626Vaults(where: $where, limit: 1) {
53
- items {
54
- ...VaultDetailFragment
55
- ...VaultHistoricalFragment
56
- }
57
- }
58
- }
59
- `,
60
- [vaultDetailFragment, vaultHistoricalFragment]
61
- );
62
- async function getDetailedVault(client, variables) {
63
- const { chainId, address, historical = true } = variables;
64
- const vaultConfig = ALL_VAULTS.find(
65
- (v) => v.chainId === chainId && v.address.toLowerCase() === address.toLowerCase() && !v.isHidden
66
- );
67
- if (!vaultConfig) {
68
- return null;
69
- }
70
- const where = {
71
- keys: [
72
- {
73
- chainId,
74
- vaultAddress: address,
75
- protocol: vaultConfig.protocol
76
- }
77
- ]
78
- };
79
- const query = historical ? vaultWithHistoricalQuery : vaultQuery;
80
- const result = await client.query(query, { where });
81
- const vault = result.erc4626Vaults.items[0];
82
- if (!vault) {
83
- return null;
84
- }
85
- return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(vaultConfig) };
86
- }
87
- export {
88
- getDetailedVault,
89
- vaultQuery,
90
- vaultWithHistoricalQuery
91
- };
92
- //# sourceMappingURL=getDetailedVault.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/queries/getDetailedVault.ts"],"sourcesContent":["import { graphql } from \"@whisk/graphql\"\nimport type { SteakhouseClient } from \"../client.js\"\nimport type { Address } 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/** Historical data fragment for vault charts (works for both v1 and v2) */\nconst vaultHistoricalFragment = graphql(`\n fragment VaultHistoricalFragment on Erc4626Vault {\n ... on MorphoVault {\n historical {\n daily {\n bucketTimestamp\n totalSupplied {\n formatted\n usd\n }\n supplyApy7d {\n total\n }\n }\n }\n }\n ... on MorphoVaultV2 {\n historical {\n daily {\n bucketTimestamp\n totalSupplied {\n formatted\n usd\n }\n supplyApy7d {\n total\n }\n }\n }\n }\n }\n`)\n\n/** Historical data type extracted from the fragment */\ntype VaultHistoricalData = {\n daily: Array<{\n bucketTimestamp: number\n totalSupplied: { formatted: string; usd: number | null }\n supplyApy7d: { total: number }\n }>\n}\n\n/** Query for fetching a single vault without historical data */\nexport const vaultQuery = graphql(\n `\n query GetVault($where: Erc4626VaultFilter) {\n erc4626Vaults(where: $where, limit: 1) {\n items {\n ...VaultDetailFragment\n }\n }\n }\n `,\n [vaultDetailFragment],\n)\n\n/** Query for fetching a single vault with historical data */\nexport const vaultWithHistoricalQuery = graphql(\n `\n query GetVaultWithHistorical($where: Erc4626VaultFilter) {\n erc4626Vaults(where: $where, limit: 1) {\n items {\n ...VaultDetailFragment\n ...VaultHistoricalFragment\n }\n }\n }\n `,\n [vaultDetailFragment, vaultHistoricalFragment],\n)\n\nexport type GetDetailedVaultVariables = {\n chainId: number\n address: Address\n /** Include historical data for charts (default: true) */\n historical?: boolean\n}\n\n/** Vault detail with Steakhouse metadata and optional historical data */\nexport type DetailedVault = VaultDetail & {\n historical?: VaultHistoricalData | null\n steakhouseMetadata: SteakhouseMetadata\n}\n\nexport type GetDetailedVaultResult = DetailedVault | null\n\n/**\n * Get full details for a single Steakhouse vault with optional historical data.\n * Returns null if the vault is not in the whitelist.\n */\nexport async function getDetailedVault(\n client: SteakhouseClient,\n variables: GetDetailedVaultVariables,\n): Promise<GetDetailedVaultResult> {\n const { chainId, address, historical = true } = variables\n\n const vaultConfig = ALL_VAULTS.find(\n (v) =>\n v.chainId === chainId && v.address.toLowerCase() === address.toLowerCase() && !v.isHidden,\n )\n\n if (!vaultConfig) {\n return null\n }\n\n const where = {\n keys: [\n {\n chainId,\n vaultAddress: address,\n protocol: vaultConfig.protocol,\n },\n ],\n }\n const query = historical ? vaultWithHistoricalQuery : vaultQuery\n const result = await client.query(query, { where })\n const vault = result.erc4626Vaults.items[0]\n\n if (!vault) {\n return null\n }\n\n return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(vaultConfig) }\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,SAAS,kBAAkB;AAC3B,SAA2B,2BAA2B;AACtD,SAAS,+BAAwD;AAGjE,MAAM,0BAA0B,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA+BvC;AAYM,MAAM,aAAa;AAAA,EACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,CAAC,mBAAmB;AACtB;AAGO,MAAM,2BAA2B;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,CAAC,qBAAqB,uBAAuB;AAC/C;AAqBA,eAAsB,iBACpB,QACA,WACiC;AACjC,QAAM,EAAE,SAAS,SAAS,aAAa,KAAK,IAAI;AAEhD,QAAM,cAAc,WAAW;AAAA,IAC7B,CAAC,MACC,EAAE,YAAY,WAAW,EAAE,QAAQ,YAAY,MAAM,QAAQ,YAAY,KAAK,CAAC,EAAE;AAAA,EACrF;AAEA,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AAEA,QAAM,QAAQ;AAAA,IACZ,MAAM;AAAA,MACJ;AAAA,QACE;AAAA,QACA,cAAc;AAAA,QACd,UAAU,YAAY;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AACA,QAAM,QAAQ,aAAa,2BAA2B;AACtD,QAAM,SAAS,MAAM,OAAO,MAAM,OAAO,EAAE,MAAM,CAAC;AAClD,QAAM,QAAQ,OAAO,cAAc,MAAM,CAAC;AAE1C,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,SAAO,EAAE,GAAG,OAAO,oBAAoB,wBAAwB,WAAW,EAAE;AAC9E;","names":[]}