@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
package/dist/queries/index.d.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
export {
|
|
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';
|
|
5
|
-
export { SteakhouseQueryFn } from './types.js';
|
|
1
|
+
export { GetTvlResult, getTvl, tvlQuery } from './getTvl.js';
|
|
6
2
|
import '@whisk/client';
|
|
7
3
|
import 'gql.tada';
|
|
8
4
|
import '@whisk/graphql';
|
|
9
|
-
import '../metadata/types.js';
|
package/dist/queries/index.js
CHANGED
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export * from "./getDetailedVault.js";
|
|
3
|
-
export * from "./getVaults.js";
|
|
4
|
-
import { buildSteakhouseMetadata } from "./steakhouseMetadata.js";
|
|
5
|
-
export {
|
|
6
|
-
buildSteakhouseMetadata,
|
|
7
|
-
vaultDetailFragment
|
|
8
|
-
};
|
|
1
|
+
export * from "./getTvl.js";
|
|
9
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/queries/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../src/queries/index.ts"],"sourcesContent":["export * from \"./getTvl.js\"\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { useSteakhouseQuery } from './useSteakhouseQuery.js';
|
|
3
|
-
export { useVaults } from './useVaults.js';
|
|
1
|
+
export { useTvl } from './useTvl.js';
|
|
4
2
|
import '@tanstack/react-query';
|
|
5
|
-
import '../../queries/
|
|
6
|
-
import 'gql.tada';
|
|
3
|
+
import '../../queries/getTvl.js';
|
|
7
4
|
import '@whisk/client';
|
|
8
|
-
import '
|
|
9
|
-
import '../../queries/fragments/vaultDetail.js';
|
|
5
|
+
import 'gql.tada';
|
|
10
6
|
import '@whisk/graphql';
|
|
11
|
-
import '../../queries/steakhouseMetadata.js';
|
|
12
|
-
import '../../queries/types.js';
|
|
13
|
-
import '../../queries/getVaults.js';
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useSteakhouseQuery } from "./useSteakhouseQuery.js";
|
|
3
|
-
import { useVaults } from "./useVaults.js";
|
|
1
|
+
import { useTvl } from "./useTvl.js";
|
|
4
2
|
export {
|
|
5
|
-
|
|
6
|
-
useSteakhouseQuery,
|
|
7
|
-
useVaults
|
|
3
|
+
useTvl
|
|
8
4
|
};
|
|
9
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/react/hooks/index.ts"],"sourcesContent":["export {
|
|
1
|
+
{"version":3,"sources":["../../../src/react/hooks/index.ts"],"sourcesContent":["export { useTvl } from \"./useTvl.js\"\n"],"mappings":"AAAA,SAAS,cAAc;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { UseQueryResult } from '@tanstack/react-query';
|
|
2
|
+
import { GetTvlResult } from '../../queries/getTvl.js';
|
|
3
|
+
import '@whisk/client';
|
|
4
|
+
import 'gql.tada';
|
|
5
|
+
import '@whisk/graphql';
|
|
6
|
+
|
|
7
|
+
declare function useTvl(): UseQueryResult<GetTvlResult, Error>;
|
|
8
|
+
|
|
9
|
+
export { useTvl };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useQuery } from "@tanstack/react-query";
|
|
3
|
+
import { getTvl } from "../../queries/getTvl.js";
|
|
4
|
+
import { useSteakhouse } from "../provider.js";
|
|
5
|
+
function useTvl() {
|
|
6
|
+
const { client } = useSteakhouse();
|
|
7
|
+
return useQuery({
|
|
8
|
+
queryKey: ["steakhouse", "tvl"],
|
|
9
|
+
queryFn: () => getTvl(client)
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
useTvl
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=useTvl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/react/hooks/useTvl.ts"],"sourcesContent":["\"use client\"\n\nimport type { UseQueryResult } from \"@tanstack/react-query\"\nimport { useQuery } from \"@tanstack/react-query\"\nimport { type GetTvlResult, getTvl } from \"../../queries/getTvl.js\"\nimport { useSteakhouse } from \"../provider.js\"\n\nexport function useTvl(): UseQueryResult<GetTvlResult, Error> {\n const { client } = useSteakhouse()\n return useQuery({\n queryKey: [\"steakhouse\", \"tvl\"],\n queryFn: () => getTvl(client),\n })\n}\n"],"mappings":";AAGA,SAAS,gBAAgB;AACzB,SAA4B,cAAc;AAC1C,SAAS,qBAAqB;AAEvB,SAAS,SAA8C;AAC5D,QAAM,EAAE,OAAO,IAAI,cAAc;AACjC,SAAO,SAAS;AAAA,IACd,UAAU,CAAC,cAAc,KAAK;AAAA,IAC9B,SAAS,MAAM,OAAO,MAAM;AAAA,EAC9B,CAAC;AACH;","names":[]}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,15 +1,8 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { useSteakhouseQuery } from './hooks/useSteakhouseQuery.js';
|
|
3
|
-
export { useVaults } from './hooks/useVaults.js';
|
|
1
|
+
export { useTvl } from './hooks/useTvl.js';
|
|
4
2
|
export { SteakhouseContextValue, SteakhouseProvider, SteakhouseProviderProps, useSteakhouse } from './provider.js';
|
|
5
3
|
import '@tanstack/react-query';
|
|
6
|
-
import '../queries/
|
|
7
|
-
import 'gql.tada';
|
|
4
|
+
import '../queries/getTvl.js';
|
|
8
5
|
import '@whisk/client';
|
|
9
|
-
import '
|
|
10
|
-
import '../queries/fragments/vaultDetail.js';
|
|
6
|
+
import 'gql.tada';
|
|
11
7
|
import '@whisk/graphql';
|
|
12
|
-
import '../queries/steakhouseMetadata.js';
|
|
13
|
-
import '../queries/types.js';
|
|
14
|
-
import '../queries/getVaults.js';
|
|
15
8
|
import 'react';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whisk/steakhouse",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/office-supply-ventures/whisk-sdk.git",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@urql/core": "6.0.1",
|
|
38
38
|
"gql.tada": "1.9.0",
|
|
39
|
-
"@whisk/client": "0.0.
|
|
40
|
-
"@whisk/graphql": "0.0.
|
|
39
|
+
"@whisk/client": "0.0.11",
|
|
40
|
+
"@whisk/graphql": "0.0.11"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
|
+
"@tanstack/react-query": ">=5",
|
|
43
44
|
"graphql": ">=16",
|
|
44
45
|
"react": ">=18",
|
|
45
|
-
"react-dom": ">=18"
|
|
46
|
-
"@tanstack/react-query": ">=5"
|
|
46
|
+
"react-dom": ">=18"
|
|
47
47
|
},
|
|
48
48
|
"peerDependenciesMeta": {
|
|
49
49
|
"react": {
|
|
@@ -57,14 +57,22 @@
|
|
|
57
57
|
}
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
+
"@tanstack/react-query": "5.90.10",
|
|
60
61
|
"@types/react": "^19.2.0",
|
|
61
62
|
"@types/react-dom": "^19.2.0",
|
|
63
|
+
"chokidar-cli": "^3.0.0",
|
|
64
|
+
"concurrently": "^9.2.1",
|
|
65
|
+
"gray-matter": "^4.0.3",
|
|
62
66
|
"react": "19.2.0",
|
|
63
67
|
"react-dom": "19.2.0",
|
|
64
|
-
"
|
|
68
|
+
"tsx": "^4.20.6",
|
|
69
|
+
"viem": "^2.0.0",
|
|
70
|
+
"zod": "^3.24.0"
|
|
65
71
|
},
|
|
66
72
|
"scripts": {
|
|
67
|
-
"
|
|
68
|
-
"
|
|
73
|
+
"generate:vaults": "tsx scripts/generate-vaults.ts",
|
|
74
|
+
"generate:vaults:watch": "chokidar \"src/metadata/vaults/**/*.md\" --initial -c \"pnpm generate:vaults\"",
|
|
75
|
+
"build": "pnpm generate:vaults && tsup",
|
|
76
|
+
"dev": "concurrently -n vaults,tsup -c blue,green \"pnpm generate:vaults:watch\" \"tsup --watch\""
|
|
69
77
|
}
|
|
70
78
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Vault Metadata
|
|
2
|
+
|
|
3
|
+
Steakhouse vault metadata is defined in markdown files with YAML frontmatter, which are compiled into TypeScript at build time.
|
|
4
|
+
|
|
5
|
+
## Adding a New Vault
|
|
6
|
+
|
|
7
|
+
1. Create a `.md` file in `vaults/{chain}/`:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
vaults/mainnet/my-vault.md
|
|
11
|
+
vaults/base/my-vault.md
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
2. Add YAML frontmatter:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
---
|
|
18
|
+
chainId: 1
|
|
19
|
+
vaultAddress: 0x...
|
|
20
|
+
protocol: morpho_v2
|
|
21
|
+
type: Prime
|
|
22
|
+
---
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Optionally override the on-chain name or add a description:
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
---
|
|
29
|
+
chainId: 1
|
|
30
|
+
vaultAddress: 0x...
|
|
31
|
+
protocol: morpho_v2
|
|
32
|
+
type: Prime
|
|
33
|
+
name: Custom Display Name
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
Custom description in markdown. Supports **formatting**, links, etc.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
3. Regenerate and commit:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
pnpm generate:vaults
|
|
43
|
+
git add src/metadata/generated/vaults.ts
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
4. Verify the vault appears in `generated/vaults.ts` and commit the changes
|
|
47
|
+
|
|
48
|
+
## Frontmatter Fields
|
|
49
|
+
|
|
50
|
+
| Field | Required | Description |
|
|
51
|
+
| -------------- | -------- | ------------------------------------------------- |
|
|
52
|
+
| `chainId` | Yes | Chain ID (1 for mainnet, 8453 for Base, etc.) |
|
|
53
|
+
| `vaultAddress` | Yes | Ethereum address, no quotes needed (checksummed automatically) |
|
|
54
|
+
| `protocol` | Yes | `morpho_v1`, `morpho_v2`, `generic`, or `box` |
|
|
55
|
+
| `type` | No | `Prime`, `High Yield`, `Turbo`, or `Term` |
|
|
56
|
+
| `name` | No | Override display name (defaults to on-chain name) |
|
|
57
|
+
|
|
58
|
+
The markdown body after the frontmatter becomes the `description` field (optional, defaults to morpho metadata).
|
|
59
|
+
|
|
60
|
+
## Validation
|
|
61
|
+
|
|
62
|
+
The build script validates:
|
|
63
|
+
|
|
64
|
+
- Required fields are present
|
|
65
|
+
- Valid Ethereum address format (checksummed automatically via viem)
|
|
66
|
+
- Valid protocol enum value (from `@whisk/graphql`)
|
|
67
|
+
- Valid type enum value (if provided)
|
|
68
|
+
- No duplicate chainId + vaultAddress combinations
|
|
69
|
+
|
|
70
|
+
If validation fails, the build will error with details about which file and field failed.
|
|
71
|
+
|
|
72
|
+
## File Naming
|
|
73
|
+
|
|
74
|
+
Use descriptive slugs that identify the vault:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
vaults/
|
|
78
|
+
mainnet/
|
|
79
|
+
steakhouse-usdc.md
|
|
80
|
+
steakhouse-eth.md
|
|
81
|
+
base/
|
|
82
|
+
steakhouse-usdc.md
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The filename doesn't affect the generated code - it's just for organization.
|
|
86
|
+
|
|
87
|
+
## Generated Output
|
|
88
|
+
|
|
89
|
+
The generator creates `src/metadata/generated/vaults.ts` with:
|
|
90
|
+
|
|
91
|
+
- `STEAKHOUSE_VAULTS` - array of all vault configurations
|
|
92
|
+
|
|
93
|
+
This file is committed to git for security auditability. CI verifies the committed file matches regenerated output.
|