@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.
- package/dist/index.d.ts +1 -6
- package/dist/metadata/generated/vaults.d.ts +7 -0
- package/dist/metadata/generated/vaults.js +468 -0
- package/dist/metadata/generated/vaults.js.map +1 -0
- package/dist/metadata/index.d.ts +3 -3
- package/dist/metadata/index.js +4 -8
- package/dist/metadata/index.js.map +1 -1
- package/dist/metadata/types.d.ts +9 -10
- package/dist/metadata/types.js +4 -0
- package/dist/metadata/types.js.map +1 -1
- package/dist/queries/getTvl.d.ts +33 -0
- package/dist/queries/getTvl.js +33 -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 +16 -8
- package/src/metadata/README.md +93 -0
- package/src/metadata/generated/vaults.ts +470 -0
- package/src/metadata/index.ts +5 -3
- package/src/metadata/types.ts +8 -11
- package/src/metadata/vaults/arbitrum/high-yield-turbo-usdc.md +6 -0
- package/src/metadata/vaults/arbitrum/high-yield-usdc-v1.md +6 -0
- package/src/metadata/vaults/arbitrum/high-yield-usdc-v2.md +6 -0
- package/src/metadata/vaults/arbitrum/high-yield-usdt-v2.md +6 -0
- package/src/metadata/vaults/base/deblock-eurc.md +6 -0
- package/src/metadata/vaults/base/eth-v1.md +6 -0
- package/src/metadata/vaults/base/eura.md +6 -0
- package/src/metadata/vaults/base/eurc-v1.md +6 -0
- package/src/metadata/vaults/base/high-yield-instant-usdc.md +6 -0
- package/src/metadata/vaults/base/high-yield-turbo-eth.md +6 -0
- package/src/metadata/vaults/base/high-yield-usdc-v1-1.md +6 -0
- package/src/metadata/vaults/base/high-yield-usdc.md +6 -0
- package/src/metadata/vaults/base/prime-instant-usdc.md +6 -0
- package/src/metadata/vaults/base/safe-x-eth-2.md +6 -0
- package/src/metadata/vaults/base/safe-x-eth.md +6 -0
- package/src/metadata/vaults/base/safe-x-usdc.md +6 -0
- package/src/metadata/vaults/base/smokehouse-usdc.md +6 -0
- package/src/metadata/vaults/base/susds.md +6 -0
- package/src/metadata/vaults/base/usda.md +6 -0
- package/src/metadata/vaults/base/usdc-rwa.md +6 -0
- package/src/metadata/vaults/base/usdc-v1.md +6 -0
- package/src/metadata/vaults/katana/high-yield-ausd.md +6 -0
- package/src/metadata/vaults/katana/high-yield-usdc.md +6 -0
- package/src/metadata/vaults/katana/prime-ausd.md +6 -0
- package/src/metadata/vaults/katana/prime-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/3f-x-steakhouse.md +6 -0
- package/src/metadata/vaults/mainnet/coinshift-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/coinshift-usdl.md +6 -0
- package/src/metadata/vaults/mainnet/eth-v1.md +6 -0
- package/src/metadata/vaults/mainnet/ethena-usdt.md +6 -0
- package/src/metadata/vaults/mainnet/ethena-usdtb.md +6 -0
- package/src/metadata/vaults/mainnet/eurcv-v1.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-instant-ausd-v2.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-instant-usdc-v2.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-instant-usdt-v2.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-term-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-turbo-cbbtc-v2.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-turbo-eth-v2.md +6 -0
- package/src/metadata/vaults/mainnet/high-yield-turbo-usdt-v2.md +6 -0
- package/src/metadata/vaults/mainnet/infinifi-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/level-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/m-v1.md +6 -0
- package/src/metadata/vaults/mainnet/paxg-v1.md +6 -0
- package/src/metadata/vaults/mainnet/peaty-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/prime-instant-eth-v2.md +6 -0
- package/src/metadata/vaults/mainnet/prime-instant-eurcv-v2.md +6 -0
- package/src/metadata/vaults/mainnet/prime-instant-pyusd-v2.md +6 -0
- package/src/metadata/vaults/mainnet/prime-instant-usdc-v2.md +6 -0
- package/src/metadata/vaults/mainnet/prime-instant-usdt-v2.md +6 -0
- package/src/metadata/vaults/mainnet/pyusd-high-yield-instant.md +6 -0
- package/src/metadata/vaults/mainnet/pyusd-v1.md +6 -0
- package/src/metadata/vaults/mainnet/rusd-v1.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-eth.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdt.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-smokehouse-wbtc.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-smokehouse-wsteth.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/safe-x-usdt.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-cbbtc.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-dai.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-eth.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-usdt.md +6 -0
- package/src/metadata/vaults/mainnet/smokehouse-wsteth.md +6 -0
- package/src/metadata/vaults/mainnet/usdc-rwa.md +6 -0
- package/src/metadata/vaults/mainnet/usdc-v1.md +6 -0
- package/src/metadata/vaults/mainnet/usdq.md +6 -0
- package/src/metadata/vaults/mainnet/usdr.md +6 -0
- package/src/metadata/vaults/mainnet/usdt-lite.md +6 -0
- package/src/metadata/vaults/mainnet/usdt-v1.md +6 -0
- package/src/metadata/vaults/mainnet/vault-bridge-usdc.md +6 -0
- package/src/metadata/vaults/mainnet/wbtc-v1.md +6 -0
- package/src/metadata/vaults/monad/ausd-v2.md +6 -0
- package/src/metadata/vaults/monad/usdc-v2.md +6 -0
- package/src/metadata/vaults/unichain/eth.md +6 -0
- package/src/metadata/vaults/unichain/wsteth.md +6 -0
- package/src/queries/getTvl.ts +37 -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/metadata/chains.d.ts +0 -7
- package/dist/metadata/chains.js +0 -15
- package/dist/metadata/chains.js.map +0 -1
- package/dist/metadata/vaults.d.ts +0 -7
- package/dist/metadata/vaults.js +0 -26
- package/dist/metadata/vaults.js.map +0 -1
- 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 -49
- package/dist/queries/getVaults.js.map +0 -1
- package/dist/queries/steakhouseMetadata.d.ts +0 -13
- 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/metadata/chains.ts +0 -13
- package/src/metadata/vaults.ts +0 -27
- package/src/queries/fragments/vaultDetail.ts +0 -151
- package/src/queries/getDetailedVault.test.ts +0 -212
- package/src/queries/getDetailedVault.ts +0 -132
- package/src/queries/getVaults.test.ts +0 -186
- 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: "morpho_v1" | "morpho_v2" | "generic" | "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,49 +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 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 = 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
|
-
});
|
|
44
|
-
}
|
|
45
|
-
export {
|
|
46
|
-
getVaults,
|
|
47
|
-
vaultsQuery
|
|
48
|
-
};
|
|
49
|
-
//# 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 type { Address, VaultConfig } from \"../metadata/types.js\"\nimport { ALL_VAULTS } from \"../metadata/vaults.js\"\nimport { type VaultDetail, vaultDetailFragment } from \"./fragments/vaultDetail.js\"\nimport { buildSteakhouseMetadata, type SteakhouseMetadata } from \"./steakhouseMetadata.js\"\n\n/** GraphQL query for fetching Steakhouse vaults */\nexport const vaultsQuery = graphql(\n `\n query GetVaults($where: Erc4626VaultFilter, $limit: Int) {\n erc4626Vaults(where: $where, limit: $limit) {\n items {\n ...VaultDetailFragment\n }\n }\n }\n `,\n [vaultDetailFragment],\n)\n\nexport type GetVaultsVariables = {\n /** Filter by chain ID */\n chainId?: number\n}\n\n/** Vault with Steakhouse metadata */\nexport type VaultWithMetadata = VaultDetail & {\n steakhouseMetadata?: SteakhouseMetadata\n}\n\nexport type GetVaultsResult = VaultWithMetadata[]\n\n/**\n * Get all Steakhouse-curated vaults.\n * Results are filtered to the SDK whitelist and augmented with Steakhouse metadata.\n */\nexport async function getVaults(\n client: SteakhouseClient,\n variables: GetVaultsVariables = {},\n): Promise<GetVaultsResult> {\n const { chainId } = variables\n\n const filteredVaults = ALL_VAULTS.filter(\n (v) => !v.isHidden && (!chainId || v.chainId === chainId),\n )\n\n if (filteredVaults.length === 0) {\n return []\n }\n\n // Build keys array for erc4626Vaults filter\n const keys = filteredVaults.map((v) => ({\n chainId: v.chainId,\n vaultAddress: v.address,\n protocol: v.protocol,\n }))\n\n const result = await client.query(vaultsQuery, {\n where: { keys },\n limit: keys.length,\n })\n\n const metadataMap = new Map<Address, VaultConfig>(\n filteredVaults.map((v) => [v.address.toLowerCase() as Address, v]),\n )\n\n return result.erc4626Vaults.items\n .filter((vault): vault is NonNullable<typeof vault> => vault !== null)\n .map((vault) => {\n const config = metadataMap.get(vault.vaultAddress.toLowerCase() as Address)\n if (config) {\n return { ...vault, steakhouseMetadata: buildSteakhouseMetadata(config) }\n }\n return vault\n })\n}\n"],"mappings":"AAAA,SAAS,eAAe;AAGxB,SAAS,kBAAkB;AAC3B,SAA2B,2BAA2B;AACtD,SAAS,+BAAwD;AAG1D,MAAM,cAAc;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,CAAC,mBAAmB;AACtB;AAkBA,eAAsB,UACpB,QACA,YAAgC,CAAC,GACP;AAC1B,QAAM,EAAE,QAAQ,IAAI;AAEpB,QAAM,iBAAiB,WAAW;AAAA,IAChC,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,WAAW,EAAE,YAAY;AAAA,EACnD;AAEA,MAAI,eAAe,WAAW,GAAG;AAC/B,WAAO,CAAC;AAAA,EACV;AAGA,QAAM,OAAO,eAAe,IAAI,CAAC,OAAO;AAAA,IACtC,SAAS,EAAE;AAAA,IACX,cAAc,EAAE;AAAA,IAChB,UAAU,EAAE;AAAA,EACd,EAAE;AAEF,QAAM,SAAS,MAAM,OAAO,MAAM,aAAa;AAAA,IAC7C,OAAO,EAAE,KAAK;AAAA,IACd,OAAO,KAAK;AAAA,EACd,CAAC;AAED,QAAM,cAAc,IAAI;AAAA,IACtB,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,YAAY,GAAc,CAAC,CAAC;AAAA,EACnE;AAEA,SAAO,OAAO,cAAc,MACzB,OAAO,CAAC,UAA8C,UAAU,IAAI,EACpE,IAAI,CAAC,UAAU;AACd,UAAM,SAAS,YAAY,IAAI,MAAM,aAAa,YAAY,CAAY;AAC1E,QAAI,QAAQ;AACV,aAAO,EAAE,GAAG,OAAO,oBAAoB,wBAAwB,MAAM,EAAE;AAAA,IACzE;AACA,WAAO;AAAA,EACT,CAAC;AACL;","names":[]}
|
|
@@ -1,13 +0,0 @@
|
|
|
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 };
|
|
@@ -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.tag !== void 0 && { tag: config.tag }
|
|
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 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
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 '../../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 };
|
|
@@ -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":[]}
|
package/src/metadata/chains.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { ChainConfig } from "./types.js"
|
|
2
|
-
|
|
3
|
-
export const MAINNET: ChainConfig = {
|
|
4
|
-
id: 1,
|
|
5
|
-
name: "Ethereum Mainnet",
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export const BASE: ChainConfig = {
|
|
9
|
-
id: 8453,
|
|
10
|
-
name: "Base",
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export const SUPPORTED_CHAINS = [MAINNET, BASE] as const
|
package/src/metadata/vaults.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { VaultConfig } from "./types.js"
|
|
2
|
-
|
|
3
|
-
// Mainnet vault configurations
|
|
4
|
-
export const MAINNET_VAULTS: readonly VaultConfig[] = [
|
|
5
|
-
{
|
|
6
|
-
chainId: 1,
|
|
7
|
-
address: "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB",
|
|
8
|
-
protocol: "morpho_v1",
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
chainId: 1,
|
|
12
|
-
address: "0xbeef0046fcab1dE47E41fB75BB3dC4Dfc94108E3",
|
|
13
|
-
protocol: "morpho_v2",
|
|
14
|
-
tag: "featured",
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
chainId: 1,
|
|
18
|
-
address: "0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757",
|
|
19
|
-
protocol: "morpho_v2",
|
|
20
|
-
},
|
|
21
|
-
] as const
|
|
22
|
-
|
|
23
|
-
// Base vault configurations
|
|
24
|
-
export const BASE_VAULTS: readonly VaultConfig[] = [] as const
|
|
25
|
-
|
|
26
|
-
// All vaults across all chains
|
|
27
|
-
export const ALL_VAULTS = [...MAINNET_VAULTS, ...BASE_VAULTS] as const
|
|
@@ -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>
|