@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.
- package/dist/client.d.ts +1 -12
- package/dist/client.js +1 -10
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -4
- package/dist/index.js.map +1 -1
- package/dist/metadata/types.d.ts +3 -1
- package/dist/metadata/vaults.js +17 -15
- package/dist/metadata/vaults.js.map +1 -1
- package/dist/queries/fragments/vaultDetail.d.ts +265 -0
- package/dist/queries/fragments/vaultDetail.js +148 -0
- package/dist/queries/fragments/vaultDetail.js.map +1 -0
- package/dist/queries/getDetailedVault.d.ts +591 -0
- package/dist/queries/getDetailedVault.js +92 -0
- package/dist/queries/getDetailedVault.js.map +1 -0
- package/dist/queries/getVaults.d.ts +274 -13
- package/dist/queries/getVaults.js +36 -10
- package/dist/queries/getVaults.js.map +1 -1
- package/dist/queries/index.d.ts +6 -5
- package/dist/queries/index.js +6 -8
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/steakhouseMetadata.d.ts +13 -0
- package/dist/queries/steakhouseMetadata.js +12 -0
- package/dist/queries/steakhouseMetadata.js.map +1 -0
- package/dist/queries/types.d.ts +2 -4
- package/dist/react/hooks/index.d.ts +8 -5
- package/dist/react/hooks/index.js +2 -0
- package/dist/react/hooks/index.js.map +1 -1
- package/dist/react/hooks/useDetailedVault.d.ts +12 -0
- package/dist/react/hooks/useDetailedVault.js +16 -0
- package/dist/react/hooks/useDetailedVault.js.map +1 -0
- package/dist/react/hooks/useSteakhouseQuery.d.ts +2 -4
- package/dist/react/hooks/useSteakhouseQuery.js +1 -1
- package/dist/react/hooks/useSteakhouseQuery.js.map +1 -1
- package/dist/react/hooks/useVaults.d.ts +7 -14
- package/dist/react/hooks/useVaults.js +3 -1
- package/dist/react/hooks/useVaults.js.map +1 -1
- package/dist/react/index.d.ts +8 -5
- package/dist/react/index.js +1 -8
- package/dist/react/index.js.map +1 -1
- package/dist/react/provider.d.ts +3 -5
- package/package.json +9 -4
- package/src/client.ts +3 -19
- package/src/index.ts +1 -2
- package/src/metadata/types.ts +3 -1
- package/src/metadata/vaults.ts +17 -17
- package/src/queries/fragments/vaultDetail.ts +151 -0
- package/src/queries/getDetailedVault.test.ts +212 -0
- package/src/queries/getDetailedVault.ts +132 -0
- package/src/queries/getVaults.test.ts +186 -0
- package/src/queries/getVaults.ts +62 -13
- package/src/queries/index.ts +9 -7
- package/src/queries/steakhouseMetadata.ts +19 -0
- package/src/react/hooks/index.ts +1 -0
- package/src/react/hooks/useDetailedVault.ts +19 -0
- package/src/react/hooks/useSteakhouseQuery.ts +3 -3
- package/src/react/hooks/useVaults.ts +7 -2
- package/src/react/index.ts +1 -6
- package/dist/queries/fragments/vault.d.ts +0 -19
- package/dist/queries/fragments/vault.js +0 -16
- package/dist/queries/fragments/vault.js.map +0 -1
- package/src/client.test.ts +0 -27
- package/src/queries/fragments/vault.ts +0 -15
|
@@ -1,27 +1,288 @@
|
|
|
1
1
|
import * as gql_tada from 'gql.tada';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import '@
|
|
6
|
-
import '
|
|
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
|
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
24
|
-
|
|
25
|
-
|
|
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,
|
|
288
|
+
export { type GetVaultsResult, type GetVaultsVariables, type VaultWithMetadata, getVaults, vaultsQuery };
|
|
@@ -1,23 +1,49 @@
|
|
|
1
1
|
import { graphql } from "@whisk/graphql";
|
|
2
|
-
import {
|
|
3
|
-
|
|
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
|
-
|
|
7
|
+
query GetVaults($where: Erc4626VaultFilter, $limit: Int) {
|
|
8
|
+
erc4626Vaults(where: $where, limit: $limit) {
|
|
7
9
|
items {
|
|
8
|
-
...
|
|
10
|
+
...VaultDetailFragment
|
|
9
11
|
}
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
`,
|
|
13
|
-
[
|
|
15
|
+
[vaultDetailFragment]
|
|
14
16
|
);
|
|
15
|
-
async function getVaults(client, variables) {
|
|
16
|
-
const
|
|
17
|
-
|
|
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
|
-
|
|
47
|
+
vaultsQuery
|
|
22
48
|
};
|
|
23
49
|
//# sourceMappingURL=getVaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/getVaults.ts"],"sourcesContent":["import { graphql
|
|
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":[]}
|
package/dist/queries/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
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 '
|
|
6
|
+
import '@whisk/client';
|
|
5
7
|
import 'gql.tada';
|
|
6
8
|
import '@whisk/graphql';
|
|
7
|
-
import '
|
|
8
|
-
import '@whisk/client';
|
|
9
|
+
import '../metadata/types.js';
|
package/dist/queries/index.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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":["
|
|
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":[]}
|
package/dist/queries/types.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import '@urql/core';
|
|
3
|
-
import '@whisk/client';
|
|
1
|
+
import { WhiskClient } from '@whisk/client';
|
|
4
2
|
|
|
5
|
-
type SteakhouseQueryFn<TData, TVariables> = (client:
|
|
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/
|
|
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 +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
|
|
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
|
-
}):
|
|
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,
|
|
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
|
|
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):
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/react/hooks/useVaults.ts"],"sourcesContent":["\"use client\"\n\nimport { type GetVaultsVariables
|
|
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":[]}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -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/
|
|
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';
|
package/dist/react/index.js
CHANGED
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/react/index.ts"],"sourcesContent":["export * from \"./hooks/index.js\"\nexport
|
|
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":[]}
|