@whisk/steakhouse 0.0.6 → 0.0.8
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.
- package/dist/index.d.ts +1 -6
- package/dist/queries/getTvl.d.ts +34 -0
- package/dist/queries/getTvl.js +34 -0
- package/dist/queries/getTvl.js.map +1 -0
- package/dist/queries/index.d.ts +1 -6
- package/dist/queries/index.js +1 -8
- package/dist/queries/index.js.map +1 -1
- package/dist/react/hooks/index.d.ts +3 -10
- package/dist/react/hooks/index.js +2 -6
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/useTvl.d.ts +9 -0
- package/dist/react/hooks/useTvl.js +15 -0
- package/dist/react/hooks/useTvl.js.map +1 -0
- package/dist/react/index.d.ts +3 -10
- package/package.json +3 -3
- package/src/queries/getTvl.ts +38 -0
- package/src/queries/index.ts +1 -10
- package/src/react/hooks/index.ts +1 -3
- package/src/react/hooks/useTvl.ts +14 -0
- package/dist/queries/fragments/vaultDetail.d.ts +0 -265
- package/dist/queries/fragments/vaultDetail.js +0 -148
- package/dist/queries/fragments/vaultDetail.js.map +0 -1
- package/dist/queries/getDetailedVault.d.ts +0 -591
- package/dist/queries/getDetailedVault.js +0 -92
- package/dist/queries/getDetailedVault.js.map +0 -1
- package/dist/queries/getVaults.d.ts +0 -288
- package/dist/queries/getVaults.js +0 -47
- package/dist/queries/getVaults.js.map +0 -1
- package/dist/queries/steakhouseMetadata.d.ts +0 -14
- package/dist/queries/steakhouseMetadata.js +0 -12
- package/dist/queries/steakhouseMetadata.js.map +0 -1
- package/dist/queries/types.d.ts +0 -5
- package/dist/queries/types.js +0 -1
- package/dist/queries/types.js.map +0 -1
- package/dist/react/hooks/useDetailedVault.d.ts +0 -12
- package/dist/react/hooks/useDetailedVault.js +0 -16
- package/dist/react/hooks/useDetailedVault.js.map +0 -1
- package/dist/react/hooks/useSteakhouseQuery.d.ts +0 -11
- package/dist/react/hooks/useSteakhouseQuery.js +0 -14
- package/dist/react/hooks/useSteakhouseQuery.js.map +0 -1
- package/dist/react/hooks/useVaults.d.ts +0 -12
- package/dist/react/hooks/useVaults.js +0 -16
- package/dist/react/hooks/useVaults.js.map +0 -1
- package/src/queries/fragments/vaultDetail.ts +0 -151
- package/src/queries/getDetailedVault.test.ts +0 -202
- package/src/queries/getDetailedVault.ts +0 -131
- package/src/queries/getVaults.test.ts +0 -167
- package/src/queries/getVaults.ts +0 -77
- package/src/queries/steakhouseMetadata.ts +0 -19
- package/src/queries/types.ts +0 -6
- package/src/react/hooks/useDetailedVault.ts +0 -19
- package/src/react/hooks/useSteakhouseQuery.ts +0 -17
- package/src/react/hooks/useVaults.ts +0 -17
|
@@ -1,288 +0,0 @@
|
|
|
1
|
-
import * as gql_tada from 'gql.tada';
|
|
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
|
-
|
|
8
|
-
/** GraphQL query for fetching Steakhouse vaults */
|
|
9
|
-
declare const vaultsQuery: gql_tada.TadaDocumentNode<{
|
|
10
|
-
erc4626Vaults: {
|
|
11
|
-
items: ({
|
|
12
|
-
__typename?: "MorphoVault";
|
|
13
|
-
chain: {
|
|
14
|
-
id: number;
|
|
15
|
-
name: string;
|
|
16
|
-
icon: string;
|
|
17
|
-
};
|
|
18
|
-
vaultAddress: `0x${string}`;
|
|
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: {
|
|
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;
|
|
260
|
-
};
|
|
261
|
-
} | null)[];
|
|
262
|
-
};
|
|
263
|
-
}, {
|
|
264
|
-
limit?: number | null;
|
|
265
|
-
where?: {
|
|
266
|
-
keys?: {
|
|
267
|
-
protocol: "generic" | "morpho_v1" | "morpho_v2" | "box";
|
|
268
|
-
vaultAddress: `0x${string}`;
|
|
269
|
-
chainId: number;
|
|
270
|
-
}[] | null;
|
|
271
|
-
} | null;
|
|
272
|
-
}, void>;
|
|
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>;
|
|
287
|
-
|
|
288
|
-
export { type GetVaultsResult, type GetVaultsVariables, type VaultWithMetadata, getVaults, vaultsQuery };
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { graphql } from "@whisk/graphql";
|
|
2
|
-
import { STEAKHOUSE_VAULTS } from "../metadata/generated/vaults.js";
|
|
3
|
-
import { vaultDetailFragment } from "./fragments/vaultDetail.js";
|
|
4
|
-
import { buildSteakhouseMetadata } from "./steakhouseMetadata.js";
|
|
5
|
-
const vaultsQuery = graphql(
|
|
6
|
-
`
|
|
7
|
-
query GetVaults($where: Erc4626VaultFilter, $limit: Int) {
|
|
8
|
-
erc4626Vaults(where: $where, limit: $limit) {
|
|
9
|
-
items {
|
|
10
|
-
...VaultDetailFragment
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
`,
|
|
15
|
-
[vaultDetailFragment]
|
|
16
|
-
);
|
|
17
|
-
async function getVaults(client, variables = {}) {
|
|
18
|
-
const { chainId } = variables;
|
|
19
|
-
const filteredVaults = chainId ? STEAKHOUSE_VAULTS.filter((v) => v.chainId === chainId) : STEAKHOUSE_VAULTS;
|
|
20
|
-
if (filteredVaults.length === 0) {
|
|
21
|
-
return [];
|
|
22
|
-
}
|
|
23
|
-
const keys = filteredVaults.map((v) => ({
|
|
24
|
-
chainId: v.chainId,
|
|
25
|
-
vaultAddress: v.address,
|
|
26
|
-
protocol: v.protocol
|
|
27
|
-
}));
|
|
28
|
-
const result = await client.query(vaultsQuery, {
|
|
29
|
-
where: { keys },
|
|
30
|
-
limit: keys.length
|
|
31
|
-
});
|
|
32
|
-
const metadataMap = new Map(
|
|
33
|
-
filteredVaults.map((v) => [v.address.toLowerCase(), v])
|
|
34
|
-
);
|
|
35
|
-
return result.erc4626Vaults.items.filter((vault) => vault !== null).map((vault) => {
|
|
36
|
-
const config = metadataMap.get(vault.vaultAddress.toLowerCase());
|
|
37
|
-
if (config) {
|
|
38
|
-
return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(config) };
|
|
39
|
-
}
|
|
40
|
-
return vault;
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
export {
|
|
44
|
-
getVaults,
|
|
45
|
-
vaultsQuery
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=getVaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/getVaults.ts"],"sourcesContent":["import { graphql } from \"@whisk/graphql\"\nimport type { SteakhouseClient } from \"../client.js\"\nimport { STEAKHOUSE_VAULTS } from \"../metadata/generated/vaults.js\"\nimport type { Address, VaultConfig } from \"../metadata/types.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 = chainId\n ? STEAKHOUSE_VAULTS.filter((v) => v.chainId === chainId)\n : STEAKHOUSE_VAULTS\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;AAExB,SAAS,yBAAyB;AAElC,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,UACnB,kBAAkB,OAAO,CAAC,MAAM,EAAE,YAAY,OAAO,IACrD;AAEJ,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,14 +0,0 @@
|
|
|
1
|
-
import { VaultConfig } from '../metadata/types.js';
|
|
2
|
-
import '@whisk/graphql';
|
|
3
|
-
|
|
4
|
-
/** Steakhouse-specific metadata augmented onto vault data */
|
|
5
|
-
type SteakhouseMetadata = {
|
|
6
|
-
name?: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
type?: VaultConfig["type"];
|
|
9
|
-
protocol: VaultConfig["protocol"];
|
|
10
|
-
};
|
|
11
|
-
/** Build metadata object from vault config */
|
|
12
|
-
declare function buildSteakhouseMetadata(config: VaultConfig): SteakhouseMetadata;
|
|
13
|
-
|
|
14
|
-
export { type SteakhouseMetadata, buildSteakhouseMetadata };
|
|
@@ -1,12 +0,0 @@
|
|
|
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.type !== void 0 && { type: config.type }
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
buildSteakhouseMetadata
|
|
11
|
-
};
|
|
12
|
-
//# sourceMappingURL=steakhouseMetadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 type?: VaultConfig[\"type\"]\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.type !== undefined && { type: config.type }),\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,SAAS,UAAa,EAAE,MAAM,OAAO,KAAK;AAAA,EACvD;AACF;","names":[]}
|
package/dist/queries/types.d.ts
DELETED
package/dist/queries/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,12 +0,0 @@
|
|
|
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 '@whisk/graphql';
|
|
7
|
-
import '../../queries/fragments/vaultDetail.js';
|
|
8
|
-
import '../../queries/steakhouseMetadata.js';
|
|
9
|
-
|
|
10
|
-
declare function useDetailedVault(variables: GetDetailedVaultVariables): UseQueryResult<GetDetailedVaultResult, Error>;
|
|
11
|
-
|
|
12
|
-
export { useDetailedVault };
|
|
@@ -1,16 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,11 +0,0 @@
|
|
|
1
|
-
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
|
-
import { SteakhouseQueryFn } from '../../queries/types.js';
|
|
3
|
-
import '@whisk/client';
|
|
4
|
-
|
|
5
|
-
declare function useSteakhouseQuery<TData, TVariables>(options: {
|
|
6
|
-
queryName: string;
|
|
7
|
-
queryFn: SteakhouseQueryFn<TData, TVariables>;
|
|
8
|
-
variables: TVariables;
|
|
9
|
-
}): UseQueryResult<TData, Error>;
|
|
10
|
-
|
|
11
|
-
export { useSteakhouseQuery };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useQuery } from "@tanstack/react-query";
|
|
3
|
-
import { useSteakhouse } from "../provider.js";
|
|
4
|
-
function useSteakhouseQuery(options) {
|
|
5
|
-
const { client } = useSteakhouse();
|
|
6
|
-
return useQuery({
|
|
7
|
-
queryKey: ["steakhouse", options.queryName, options.variables],
|
|
8
|
-
queryFn: () => options.queryFn(client, options.variables)
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
export {
|
|
12
|
-
useSteakhouseQuery
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=useSteakhouseQuery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,12 +0,0 @@
|
|
|
1
|
-
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
|
-
import { GetVaultsVariables, GetVaultsResult } from '../../queries/getVaults.js';
|
|
3
|
-
import 'gql.tada';
|
|
4
|
-
import '@whisk/client';
|
|
5
|
-
import '../../queries/fragments/vaultDetail.js';
|
|
6
|
-
import '@whisk/graphql';
|
|
7
|
-
import '../../queries/steakhouseMetadata.js';
|
|
8
|
-
import '../../metadata/types.js';
|
|
9
|
-
|
|
10
|
-
declare function useVaults(variables: GetVaultsVariables): UseQueryResult<GetVaultsResult, Error>;
|
|
11
|
-
|
|
12
|
-
export { useVaults };
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import {
|
|
3
|
-
getVaults
|
|
4
|
-
} from "../../queries/getVaults.js";
|
|
5
|
-
import { useSteakhouseQuery } from "./useSteakhouseQuery.js";
|
|
6
|
-
function useVaults(variables) {
|
|
7
|
-
return useSteakhouseQuery({
|
|
8
|
-
queryName: "vaults",
|
|
9
|
-
queryFn: getVaults,
|
|
10
|
-
variables
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
export {
|
|
14
|
-
useVaults
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=useVaults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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,151 +0,0 @@
|
|
|
1
|
-
import { type FragmentOf, graphql } from "@whisk/graphql"
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Full fragment for vault detail view.
|
|
5
|
-
* Uses inline fragments to handle both MorphoVault (v1) and MorphoVaultV2.
|
|
6
|
-
*/
|
|
7
|
-
export const vaultDetailFragment = graphql(`
|
|
8
|
-
fragment VaultDetailFragment on Erc4626Vault {
|
|
9
|
-
chain {
|
|
10
|
-
id
|
|
11
|
-
name
|
|
12
|
-
icon
|
|
13
|
-
}
|
|
14
|
-
vaultAddress
|
|
15
|
-
name
|
|
16
|
-
symbol
|
|
17
|
-
decimals
|
|
18
|
-
asset {
|
|
19
|
-
address
|
|
20
|
-
symbol
|
|
21
|
-
name
|
|
22
|
-
icon
|
|
23
|
-
priceUsd
|
|
24
|
-
decimals
|
|
25
|
-
}
|
|
26
|
-
totalAssets {
|
|
27
|
-
raw
|
|
28
|
-
formatted
|
|
29
|
-
usd
|
|
30
|
-
}
|
|
31
|
-
apy(timeframe: seven_days) {
|
|
32
|
-
base
|
|
33
|
-
total
|
|
34
|
-
rewards {
|
|
35
|
-
asset {
|
|
36
|
-
symbol
|
|
37
|
-
icon
|
|
38
|
-
}
|
|
39
|
-
apr
|
|
40
|
-
}
|
|
41
|
-
fee
|
|
42
|
-
}
|
|
43
|
-
... on MorphoVault {
|
|
44
|
-
totalLiquidity {
|
|
45
|
-
formatted
|
|
46
|
-
usd
|
|
47
|
-
}
|
|
48
|
-
v1PerformanceFee: performanceFee
|
|
49
|
-
feeRecipientAddress
|
|
50
|
-
ownerAddress
|
|
51
|
-
curatorAddress
|
|
52
|
-
guardianAddress
|
|
53
|
-
metadata {
|
|
54
|
-
description
|
|
55
|
-
image
|
|
56
|
-
forumLink
|
|
57
|
-
curator {
|
|
58
|
-
name
|
|
59
|
-
image
|
|
60
|
-
url
|
|
61
|
-
}
|
|
62
|
-
curators {
|
|
63
|
-
name
|
|
64
|
-
image
|
|
65
|
-
url
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
marketAllocations {
|
|
69
|
-
market {
|
|
70
|
-
marketId
|
|
71
|
-
name
|
|
72
|
-
loanAsset {
|
|
73
|
-
symbol
|
|
74
|
-
icon
|
|
75
|
-
}
|
|
76
|
-
collateralAsset {
|
|
77
|
-
symbol
|
|
78
|
-
icon
|
|
79
|
-
}
|
|
80
|
-
isIdle
|
|
81
|
-
}
|
|
82
|
-
enabled
|
|
83
|
-
supplyCap {
|
|
84
|
-
formatted
|
|
85
|
-
usd
|
|
86
|
-
}
|
|
87
|
-
vaultSupplyShare
|
|
88
|
-
marketSupplyShare
|
|
89
|
-
position {
|
|
90
|
-
supplyAmount {
|
|
91
|
-
formatted
|
|
92
|
-
usd
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
riskAssessment {
|
|
97
|
-
steakhouse {
|
|
98
|
-
score
|
|
99
|
-
rating
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
... on MorphoVaultV2 {
|
|
104
|
-
curatorAddress
|
|
105
|
-
ownerAddress
|
|
106
|
-
metadata {
|
|
107
|
-
description
|
|
108
|
-
image
|
|
109
|
-
forumLink
|
|
110
|
-
curator {
|
|
111
|
-
name
|
|
112
|
-
image
|
|
113
|
-
url
|
|
114
|
-
}
|
|
115
|
-
curators {
|
|
116
|
-
name
|
|
117
|
-
image
|
|
118
|
-
url
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
liquidityAssets {
|
|
122
|
-
formatted
|
|
123
|
-
usd
|
|
124
|
-
}
|
|
125
|
-
idleAssets {
|
|
126
|
-
formatted
|
|
127
|
-
usd
|
|
128
|
-
}
|
|
129
|
-
v2PerformanceFee: performanceFee {
|
|
130
|
-
formatted
|
|
131
|
-
}
|
|
132
|
-
managementFee {
|
|
133
|
-
formatted
|
|
134
|
-
}
|
|
135
|
-
adapters {
|
|
136
|
-
... on MarketV1Adapter {
|
|
137
|
-
adapterAddress
|
|
138
|
-
name
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
riskAssessment {
|
|
142
|
-
steakhouse {
|
|
143
|
-
score
|
|
144
|
-
rating
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
`)
|
|
150
|
-
|
|
151
|
-
export type VaultDetail = FragmentOf<typeof vaultDetailFragment>
|