@whisk/steakhouse 0.0.4 → 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 +3 -3
  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
package/dist/client.d.ts CHANGED
@@ -1,12 +1 @@
1
- import { AnyVariables, TypedDocumentNode } from '@urql/core';
2
- import { WhiskClientConfig } from '@whisk/client';
3
-
4
- interface SteakhouseClientConfig extends WhiskClientConfig {
5
- }
6
- declare class SteakhouseClient {
7
- private readonly client;
8
- constructor(config: SteakhouseClientConfig);
9
- query<TValue, TVariables extends AnyVariables>(document: TypedDocumentNode<TValue, TVariables>, variables: TVariables): Promise<TValue>;
10
- }
11
-
12
- export { SteakhouseClient, type SteakhouseClientConfig };
1
+ export { WhiskClient as SteakhouseClient, WhiskClientConfig as SteakhouseClientConfig } from '@whisk/client';
package/dist/client.js CHANGED
@@ -1,14 +1,5 @@
1
1
  import { WhiskClient } from "@whisk/client";
2
- class SteakhouseClient {
3
- client;
4
- constructor(config) {
5
- this.client = new WhiskClient(config);
6
- }
7
- async query(document, variables) {
8
- return this.client.query(document, variables);
9
- }
10
- }
11
2
  export {
12
- SteakhouseClient
3
+ WhiskClient as SteakhouseClient
13
4
  };
14
5
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/client.ts"],"sourcesContent":["import type { AnyVariables, TypedDocumentNode } from \"@urql/core\"\nimport { WhiskClient, type WhiskClientConfig } from \"@whisk/client\"\n\nexport interface SteakhouseClientConfig extends WhiskClientConfig {}\n\nexport class SteakhouseClient {\n private readonly client: WhiskClient\n\n constructor(config: SteakhouseClientConfig) {\n this.client = new WhiskClient(config)\n }\n\n public async query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<TValue, TVariables>,\n variables: TVariables,\n ): Promise<TValue> {\n return this.client.query(document, variables)\n }\n}\n"],"mappings":"AACA,SAAS,mBAA2C;AAI7C,MAAM,iBAAiB;AAAA,EACX;AAAA,EAEjB,YAAY,QAAgC;AAC1C,SAAK,SAAS,IAAI,YAAY,MAAM;AAAA,EACtC;AAAA,EAEA,MAAa,MACX,UACA,WACiB;AACjB,WAAO,KAAK,OAAO,MAAM,UAAU,SAAS;AAAA,EAC9C;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/client.ts"],"sourcesContent":["// Re-export from @whisk/client\nexport type { WhiskClientConfig as SteakhouseClientConfig } from \"@whisk/client\"\nexport { WhiskClient as SteakhouseClient } from \"@whisk/client\"\n"],"mappings":"AAEA,SAAwB,mBAAwB;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
- export { SteakhouseClient, SteakhouseClientConfig } from './client.js';
2
- export { Vault, vaultFragment } from './queries/fragments/vault.js';
3
- export { GetVaultsResult, GetVaultsVariables, getVaults, vaultQuery } from './queries/getVaults.js';
1
+ export { WhiskClient as SteakhouseClient, WhiskClientConfig as SteakhouseClientConfig } from '@whisk/client';
2
+ export { VaultDetail, vaultDetailFragment } from './queries/fragments/vaultDetail.js';
3
+ export { DetailedVault, GetDetailedVaultResult, GetDetailedVaultVariables, getDetailedVault, vaultQuery, vaultWithHistoricalQuery } from './queries/getDetailedVault.js';
4
+ export { GetVaultsResult, GetVaultsVariables, VaultWithMetadata, getVaults, vaultsQuery } from './queries/getVaults.js';
5
+ export { SteakhouseMetadata, buildSteakhouseMetadata } from './queries/steakhouseMetadata.js';
4
6
  export { SteakhouseQueryFn } from './queries/types.js';
5
- import '@urql/core';
6
- import '@whisk/client';
7
7
  import 'gql.tada';
8
8
  import '@whisk/graphql';
9
+ import './metadata/types.js';
package/dist/index.js CHANGED
@@ -1,6 +1,3 @@
1
- import { SteakhouseClient } from "./client.js";
1
+ export * from "./client.js";
2
2
  export * from "./queries/index.js";
3
- export {
4
- SteakhouseClient
5
- };
6
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { SteakhouseClient, type SteakhouseClientConfig } from \"./client.js\"\nexport * from \"./queries/index.js\"\nexport type { SteakhouseQueryFn } from \"./queries/types.js\"\n"],"mappings":"AAAA,SAAS,wBAAqD;AAC9D,cAAc;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./client.js\"\nexport * from \"./queries/index.js\"\n"],"mappings":"AAAA,cAAc;AACd,cAAc;","names":[]}
@@ -1,7 +1,9 @@
1
1
  type Address = `0x${string}`;
2
- type VaultProtocol = "morpho" | "steakhouse";
2
+ /** Protocol type matching Erc4626VaultProtocol enum */
3
+ type VaultProtocol = "morpho_v1" | "morpho_v2" | "generic" | "box";
3
4
  type VaultTag = "featured" | "new" | "deprecated";
4
5
  interface VaultConfig {
6
+ readonly chainId: number;
5
7
  readonly address: Address;
6
8
  readonly protocol: VaultProtocol;
7
9
  readonly name?: string;
@@ -1,20 +1,22 @@
1
1
  const MAINNET_VAULTS = [
2
- // Example placeholder vault
3
- // {
4
- // address: "0x...",
5
- // protocol: "steakhouse",
6
- // name: "Steakhouse USDC Vault",
7
- // tag: "featured",
8
- // },
9
- ];
10
- const BASE_VAULTS = [
11
- // Example placeholder vault
12
- // {
13
- // address: "0x...",
14
- // protocol: "steakhouse",
15
- // name: "Steakhouse USDC Vault",
16
- // },
2
+ {
3
+ chainId: 1,
4
+ address: "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB",
5
+ protocol: "morpho_v1"
6
+ },
7
+ {
8
+ chainId: 1,
9
+ address: "0xbeef0046fcab1dE47E41fB75BB3dC4Dfc94108E3",
10
+ protocol: "morpho_v2",
11
+ tag: "featured"
12
+ },
13
+ {
14
+ chainId: 1,
15
+ address: "0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757",
16
+ protocol: "morpho_v2"
17
+ }
17
18
  ];
19
+ const BASE_VAULTS = [];
18
20
  const ALL_VAULTS = [...MAINNET_VAULTS, ...BASE_VAULTS];
19
21
  export {
20
22
  ALL_VAULTS,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/metadata/vaults.ts"],"sourcesContent":["import type { VaultConfig } from \"./types.js\"\n\n// Mainnet vault configurations\n// TODO: Add real Steakhouse vault addresses\nexport const MAINNET_VAULTS: readonly VaultConfig[] = [\n // Example placeholder vault\n // {\n // address: \"0x...\",\n // protocol: \"steakhouse\",\n // name: \"Steakhouse USDC Vault\",\n // tag: \"featured\",\n // },\n] as const\n\n// Base vault configurations\n// TODO: Add real Steakhouse vault addresses\nexport const BASE_VAULTS: readonly VaultConfig[] = [\n // Example placeholder vault\n // {\n // address: \"0x...\",\n // protocol: \"steakhouse\",\n // name: \"Steakhouse USDC Vault\",\n // },\n] as const\n\n// All vaults across all chains\nexport const ALL_VAULTS = [...MAINNET_VAULTS, ...BASE_VAULTS] as const\n"],"mappings":"AAIO,MAAM,iBAAyC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQtD;AAIO,MAAM,cAAsC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOnD;AAGO,MAAM,aAAa,CAAC,GAAG,gBAAgB,GAAG,WAAW;","names":[]}
1
+ {"version":3,"sources":["../../src/metadata/vaults.ts"],"sourcesContent":["import type { VaultConfig } from \"./types.js\"\n\n// Mainnet vault configurations\nexport const MAINNET_VAULTS: readonly VaultConfig[] = [\n {\n chainId: 1,\n address: \"0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB\",\n protocol: \"morpho_v1\",\n },\n {\n chainId: 1,\n address: \"0xbeef0046fcab1dE47E41fB75BB3dC4Dfc94108E3\",\n protocol: \"morpho_v2\",\n tag: \"featured\",\n },\n {\n chainId: 1,\n address: \"0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757\",\n protocol: \"morpho_v2\",\n },\n] as const\n\n// Base vault configurations\nexport const BASE_VAULTS: readonly VaultConfig[] = [] as const\n\n// All vaults across all chains\nexport const ALL_VAULTS = [...MAINNET_VAULTS, ...BASE_VAULTS] as const\n"],"mappings":"AAGO,MAAM,iBAAyC;AAAA,EACpD;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,IACV,KAAK;AAAA,EACP;AAAA,EACA;AAAA,IACE,SAAS;AAAA,IACT,SAAS;AAAA,IACT,UAAU;AAAA,EACZ;AACF;AAGO,MAAM,cAAsC,CAAC;AAG7C,MAAM,aAAa,CAAC,GAAG,gBAAgB,GAAG,WAAW;","names":[]}
@@ -0,0 +1,265 @@
1
+ import * as gql_tada from 'gql.tada';
2
+ import { FragmentOf } from '@whisk/graphql';
3
+
4
+ /**
5
+ * Full fragment for vault detail view.
6
+ * Uses inline fragments to handle both MorphoVault (v1) and MorphoVaultV2.
7
+ */
8
+ declare const vaultDetailFragment: gql_tada.TadaDocumentNode<{
9
+ __typename?: "MorphoVault";
10
+ chain: {
11
+ id: number;
12
+ name: string;
13
+ icon: string;
14
+ };
15
+ vaultAddress: `0x${string}`;
16
+ name: string;
17
+ symbol: string;
18
+ decimals: number;
19
+ asset: {
20
+ address: `0x${string}`;
21
+ symbol: string;
22
+ name: string;
23
+ icon: string | null;
24
+ priceUsd: number | null;
25
+ decimals: number;
26
+ };
27
+ totalAssets: {
28
+ raw: bigint;
29
+ formatted: string;
30
+ usd: number | null;
31
+ };
32
+ apy: {
33
+ base: number;
34
+ total: number;
35
+ rewards: {
36
+ asset: {
37
+ symbol: string;
38
+ icon: string | null;
39
+ };
40
+ apr: number;
41
+ }[];
42
+ fee: number;
43
+ };
44
+ totalLiquidity: {
45
+ formatted: string;
46
+ usd: number | null;
47
+ };
48
+ v1PerformanceFee: number;
49
+ feeRecipientAddress: `0x${string}` | null;
50
+ ownerAddress: `0x${string}`;
51
+ curatorAddress: `0x${string}`;
52
+ guardianAddress: `0x${string}`;
53
+ metadata: {
54
+ description: string | null;
55
+ image: string | null;
56
+ forumLink: string | null;
57
+ curator: {
58
+ name: string;
59
+ image: string;
60
+ url: string;
61
+ } | null;
62
+ curators: {
63
+ name: string;
64
+ image: string;
65
+ url: string;
66
+ }[];
67
+ } | null;
68
+ marketAllocations: {
69
+ market: {
70
+ marketId: `0x${string}`;
71
+ name: string;
72
+ loanAsset: {
73
+ symbol: string;
74
+ icon: string | null;
75
+ };
76
+ collateralAsset: {
77
+ symbol: string;
78
+ icon: string | null;
79
+ } | null;
80
+ isIdle: boolean;
81
+ };
82
+ enabled: boolean;
83
+ supplyCap: {
84
+ formatted: string;
85
+ usd: number | null;
86
+ };
87
+ vaultSupplyShare: number;
88
+ marketSupplyShare: number;
89
+ position: {
90
+ supplyAmount: {
91
+ formatted: string;
92
+ usd: number | null;
93
+ };
94
+ };
95
+ }[];
96
+ riskAssessment: {
97
+ steakhouse: {
98
+ score: number;
99
+ rating: string;
100
+ } | null;
101
+ };
102
+ } | {
103
+ __typename?: "MorphoVaultV2";
104
+ chain: {
105
+ id: number;
106
+ name: string;
107
+ icon: string;
108
+ };
109
+ vaultAddress: `0x${string}`;
110
+ name: string;
111
+ symbol: string;
112
+ decimals: number;
113
+ asset: {
114
+ address: `0x${string}`;
115
+ symbol: string;
116
+ name: string;
117
+ icon: string | null;
118
+ priceUsd: number | null;
119
+ decimals: number;
120
+ };
121
+ totalAssets: {
122
+ raw: bigint;
123
+ formatted: string;
124
+ usd: number | null;
125
+ };
126
+ apy: {
127
+ base: number;
128
+ total: number;
129
+ rewards: {
130
+ asset: {
131
+ symbol: string;
132
+ icon: string | null;
133
+ };
134
+ apr: number;
135
+ }[];
136
+ fee: number;
137
+ };
138
+ curatorAddress: `0x${string}`;
139
+ ownerAddress: `0x${string}`;
140
+ metadata: {
141
+ description: string | null;
142
+ image: string | null;
143
+ forumLink: string | null;
144
+ curator: {
145
+ name: string;
146
+ image: string;
147
+ url: string;
148
+ } | null;
149
+ curators: {
150
+ name: string;
151
+ image: string;
152
+ url: string;
153
+ }[];
154
+ } | null;
155
+ liquidityAssets: {
156
+ formatted: string;
157
+ usd: number | null;
158
+ };
159
+ idleAssets: {
160
+ formatted: string;
161
+ usd: number | null;
162
+ };
163
+ v2PerformanceFee: {
164
+ formatted: string;
165
+ };
166
+ managementFee: {
167
+ formatted: string;
168
+ };
169
+ adapters: ({
170
+ __typename?: "MarketV1Adapter";
171
+ adapterAddress: `0x${string}`;
172
+ name: string | null;
173
+ } | {
174
+ __typename?: "BoxVaultAdapter";
175
+ } | {
176
+ __typename?: "UnknownAdapter";
177
+ } | {
178
+ __typename?: "VaultV1Adapter";
179
+ })[];
180
+ riskAssessment: {
181
+ steakhouse: {
182
+ score: number;
183
+ rating: string;
184
+ } | null;
185
+ };
186
+ } | {
187
+ __typename?: "BoxVault";
188
+ chain: {
189
+ id: number;
190
+ name: string;
191
+ icon: string;
192
+ };
193
+ vaultAddress: `0x${string}`;
194
+ name: string;
195
+ symbol: string;
196
+ decimals: number;
197
+ asset: {
198
+ address: `0x${string}`;
199
+ symbol: string;
200
+ name: string;
201
+ icon: string | null;
202
+ priceUsd: number | null;
203
+ decimals: number;
204
+ };
205
+ totalAssets: {
206
+ raw: bigint;
207
+ formatted: string;
208
+ usd: number | null;
209
+ };
210
+ apy: {
211
+ base: number;
212
+ total: number;
213
+ rewards: {
214
+ asset: {
215
+ symbol: string;
216
+ icon: string | null;
217
+ };
218
+ apr: number;
219
+ }[];
220
+ fee: number;
221
+ };
222
+ } | {
223
+ __typename?: "GenericErc4626Vault";
224
+ chain: {
225
+ id: number;
226
+ name: string;
227
+ icon: string;
228
+ };
229
+ vaultAddress: `0x${string}`;
230
+ name: string;
231
+ symbol: string;
232
+ decimals: number;
233
+ asset: {
234
+ address: `0x${string}`;
235
+ symbol: string;
236
+ name: string;
237
+ icon: string | null;
238
+ priceUsd: number | null;
239
+ decimals: number;
240
+ };
241
+ totalAssets: {
242
+ raw: bigint;
243
+ formatted: string;
244
+ usd: number | null;
245
+ };
246
+ apy: {
247
+ base: number;
248
+ total: number;
249
+ rewards: {
250
+ asset: {
251
+ symbol: string;
252
+ icon: string | null;
253
+ };
254
+ apr: number;
255
+ }[];
256
+ fee: number;
257
+ };
258
+ }, {}, {
259
+ fragment: "VaultDetailFragment";
260
+ on: "Erc4626Vault";
261
+ masked: false;
262
+ }>;
263
+ type VaultDetail = FragmentOf<typeof vaultDetailFragment>;
264
+
265
+ export { type VaultDetail, vaultDetailFragment };
@@ -0,0 +1,148 @@
1
+ import { graphql } from "@whisk/graphql";
2
+ const vaultDetailFragment = graphql(`
3
+ fragment VaultDetailFragment on Erc4626Vault {
4
+ chain {
5
+ id
6
+ name
7
+ icon
8
+ }
9
+ vaultAddress
10
+ name
11
+ symbol
12
+ decimals
13
+ asset {
14
+ address
15
+ symbol
16
+ name
17
+ icon
18
+ priceUsd
19
+ decimals
20
+ }
21
+ totalAssets {
22
+ raw
23
+ formatted
24
+ usd
25
+ }
26
+ apy(timeframe: seven_days) {
27
+ base
28
+ total
29
+ rewards {
30
+ asset {
31
+ symbol
32
+ icon
33
+ }
34
+ apr
35
+ }
36
+ fee
37
+ }
38
+ ... on MorphoVault {
39
+ totalLiquidity {
40
+ formatted
41
+ usd
42
+ }
43
+ v1PerformanceFee: performanceFee
44
+ feeRecipientAddress
45
+ ownerAddress
46
+ curatorAddress
47
+ guardianAddress
48
+ metadata {
49
+ description
50
+ image
51
+ forumLink
52
+ curator {
53
+ name
54
+ image
55
+ url
56
+ }
57
+ curators {
58
+ name
59
+ image
60
+ url
61
+ }
62
+ }
63
+ marketAllocations {
64
+ market {
65
+ marketId
66
+ name
67
+ loanAsset {
68
+ symbol
69
+ icon
70
+ }
71
+ collateralAsset {
72
+ symbol
73
+ icon
74
+ }
75
+ isIdle
76
+ }
77
+ enabled
78
+ supplyCap {
79
+ formatted
80
+ usd
81
+ }
82
+ vaultSupplyShare
83
+ marketSupplyShare
84
+ position {
85
+ supplyAmount {
86
+ formatted
87
+ usd
88
+ }
89
+ }
90
+ }
91
+ riskAssessment {
92
+ steakhouse {
93
+ score
94
+ rating
95
+ }
96
+ }
97
+ }
98
+ ... on MorphoVaultV2 {
99
+ curatorAddress
100
+ ownerAddress
101
+ metadata {
102
+ description
103
+ image
104
+ forumLink
105
+ curator {
106
+ name
107
+ image
108
+ url
109
+ }
110
+ curators {
111
+ name
112
+ image
113
+ url
114
+ }
115
+ }
116
+ liquidityAssets {
117
+ formatted
118
+ usd
119
+ }
120
+ idleAssets {
121
+ formatted
122
+ usd
123
+ }
124
+ v2PerformanceFee: performanceFee {
125
+ formatted
126
+ }
127
+ managementFee {
128
+ formatted
129
+ }
130
+ adapters {
131
+ ... on MarketV1Adapter {
132
+ adapterAddress
133
+ name
134
+ }
135
+ }
136
+ riskAssessment {
137
+ steakhouse {
138
+ score
139
+ rating
140
+ }
141
+ }
142
+ }
143
+ }
144
+ `);
145
+ export {
146
+ vaultDetailFragment
147
+ };
148
+ //# sourceMappingURL=vaultDetail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/queries/fragments/vaultDetail.ts"],"sourcesContent":["import { type FragmentOf, graphql } from \"@whisk/graphql\"\n\n/**\n * Full fragment for vault detail view.\n * Uses inline fragments to handle both MorphoVault (v1) and MorphoVaultV2.\n */\nexport const vaultDetailFragment = graphql(`\n fragment VaultDetailFragment on Erc4626Vault {\n chain {\n id\n name\n icon\n }\n vaultAddress\n name\n symbol\n decimals\n asset {\n address\n symbol\n name\n icon\n priceUsd\n decimals\n }\n totalAssets {\n raw\n formatted\n usd\n }\n apy(timeframe: seven_days) {\n base\n total\n rewards {\n asset {\n symbol\n icon\n }\n apr\n }\n fee\n }\n ... on MorphoVault {\n totalLiquidity {\n formatted\n usd\n }\n v1PerformanceFee: performanceFee\n feeRecipientAddress\n ownerAddress\n curatorAddress\n guardianAddress\n metadata {\n description\n image\n forumLink\n curator {\n name\n image\n url\n }\n curators {\n name\n image\n url\n }\n }\n marketAllocations {\n market {\n marketId\n name\n loanAsset {\n symbol\n icon\n }\n collateralAsset {\n symbol\n icon\n }\n isIdle\n }\n enabled\n supplyCap {\n formatted\n usd\n }\n vaultSupplyShare\n marketSupplyShare\n position {\n supplyAmount {\n formatted\n usd\n }\n }\n }\n riskAssessment {\n steakhouse {\n score\n rating\n }\n }\n }\n ... on MorphoVaultV2 {\n curatorAddress\n ownerAddress\n metadata {\n description\n image\n forumLink\n curator {\n name\n image\n url\n }\n curators {\n name\n image\n url\n }\n }\n liquidityAssets {\n formatted\n usd\n }\n idleAssets {\n formatted\n usd\n }\n v2PerformanceFee: performanceFee {\n formatted\n }\n managementFee {\n formatted\n }\n adapters {\n ... on MarketV1Adapter {\n adapterAddress\n name\n }\n }\n riskAssessment {\n steakhouse {\n score\n rating\n }\n }\n }\n }\n`)\n\nexport type VaultDetail = FragmentOf<typeof vaultDetailFragment>\n"],"mappings":"AAAA,SAA0B,eAAe;AAMlC,MAAM,sBAAsB,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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CA8I1C;","names":[]}