@whisk/steakhouse 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/client.d.ts +1 -12
  2. package/dist/client.js +1 -10
  3. package/dist/client.js.map +1 -1
  4. package/dist/index.d.ts +6 -5
  5. package/dist/index.js +1 -4
  6. package/dist/index.js.map +1 -1
  7. package/dist/metadata/generated/vaults.d.ts +7 -0
  8. package/dist/metadata/generated/vaults.js +468 -0
  9. package/dist/metadata/generated/vaults.js.map +1 -0
  10. package/dist/metadata/index.d.ts +3 -3
  11. package/dist/metadata/index.js +4 -8
  12. package/dist/metadata/index.js.map +1 -1
  13. package/dist/metadata/types.d.ts +10 -9
  14. package/dist/metadata/types.js +4 -0
  15. package/dist/metadata/types.js.map +1 -1
  16. package/dist/queries/fragments/vaultDetail.d.ts +265 -0
  17. package/dist/queries/fragments/vaultDetail.js +148 -0
  18. package/dist/queries/fragments/vaultDetail.js.map +1 -0
  19. package/dist/queries/getDetailedVault.d.ts +591 -0
  20. package/dist/queries/getDetailedVault.js +92 -0
  21. package/dist/queries/getDetailedVault.js.map +1 -0
  22. package/dist/queries/getVaults.d.ts +274 -13
  23. package/dist/queries/getVaults.js +34 -10
  24. package/dist/queries/getVaults.js.map +1 -1
  25. package/dist/queries/index.d.ts +6 -5
  26. package/dist/queries/index.js +6 -8
  27. package/dist/queries/index.js.map +1 -1
  28. package/dist/queries/steakhouseMetadata.d.ts +14 -0
  29. package/dist/queries/steakhouseMetadata.js +12 -0
  30. package/dist/queries/steakhouseMetadata.js.map +1 -0
  31. package/dist/queries/types.d.ts +2 -4
  32. package/dist/react/hooks/index.d.ts +8 -5
  33. package/dist/react/hooks/index.js +2 -0
  34. package/dist/react/hooks/index.js.map +1 -1
  35. package/dist/react/hooks/useDetailedVault.d.ts +12 -0
  36. package/dist/react/hooks/useDetailedVault.js +16 -0
  37. package/dist/react/hooks/useDetailedVault.js.map +1 -0
  38. package/dist/react/hooks/useSteakhouseQuery.d.ts +2 -4
  39. package/dist/react/hooks/useSteakhouseQuery.js +1 -1
  40. package/dist/react/hooks/useSteakhouseQuery.js.map +1 -1
  41. package/dist/react/hooks/useVaults.d.ts +7 -14
  42. package/dist/react/hooks/useVaults.js +3 -1
  43. package/dist/react/hooks/useVaults.js.map +1 -1
  44. package/dist/react/index.d.ts +8 -5
  45. package/dist/react/index.js +1 -8
  46. package/dist/react/index.js.map +1 -1
  47. package/dist/react/provider.d.ts +3 -5
  48. package/package.json +16 -8
  49. package/src/client.ts +3 -19
  50. package/src/index.ts +1 -2
  51. package/src/metadata/README.md +93 -0
  52. package/src/metadata/generated/vaults.ts +470 -0
  53. package/src/metadata/index.ts +5 -3
  54. package/src/metadata/types.ts +9 -10
  55. package/src/metadata/vaults/arbitrum/high-yield-turbo-usdc.md +6 -0
  56. package/src/metadata/vaults/arbitrum/high-yield-usdc-v1.md +6 -0
  57. package/src/metadata/vaults/arbitrum/high-yield-usdc-v2.md +6 -0
  58. package/src/metadata/vaults/arbitrum/high-yield-usdt-v2.md +6 -0
  59. package/src/metadata/vaults/base/deblock-eurc.md +6 -0
  60. package/src/metadata/vaults/base/eth-v1.md +6 -0
  61. package/src/metadata/vaults/base/eura.md +6 -0
  62. package/src/metadata/vaults/base/eurc-v1.md +6 -0
  63. package/src/metadata/vaults/base/high-yield-instant-usdc.md +6 -0
  64. package/src/metadata/vaults/base/high-yield-turbo-eth.md +6 -0
  65. package/src/metadata/vaults/base/high-yield-usdc-v1-1.md +6 -0
  66. package/src/metadata/vaults/base/high-yield-usdc.md +6 -0
  67. package/src/metadata/vaults/base/prime-instant-usdc.md +6 -0
  68. package/src/metadata/vaults/base/safe-x-eth-2.md +6 -0
  69. package/src/metadata/vaults/base/safe-x-eth.md +6 -0
  70. package/src/metadata/vaults/base/safe-x-usdc.md +6 -0
  71. package/src/metadata/vaults/base/smokehouse-usdc.md +6 -0
  72. package/src/metadata/vaults/base/susds.md +6 -0
  73. package/src/metadata/vaults/base/usda.md +6 -0
  74. package/src/metadata/vaults/base/usdc-rwa.md +6 -0
  75. package/src/metadata/vaults/base/usdc-v1.md +6 -0
  76. package/src/metadata/vaults/katana/high-yield-ausd.md +6 -0
  77. package/src/metadata/vaults/katana/high-yield-usdc.md +6 -0
  78. package/src/metadata/vaults/katana/prime-ausd.md +6 -0
  79. package/src/metadata/vaults/katana/prime-usdc.md +6 -0
  80. package/src/metadata/vaults/mainnet/3f-x-steakhouse.md +6 -0
  81. package/src/metadata/vaults/mainnet/coinshift-usdc.md +6 -0
  82. package/src/metadata/vaults/mainnet/coinshift-usdl.md +6 -0
  83. package/src/metadata/vaults/mainnet/eth-v1.md +6 -0
  84. package/src/metadata/vaults/mainnet/ethena-usdt.md +6 -0
  85. package/src/metadata/vaults/mainnet/ethena-usdtb.md +6 -0
  86. package/src/metadata/vaults/mainnet/eurcv-v1.md +6 -0
  87. package/src/metadata/vaults/mainnet/high-yield-instant-ausd-v2.md +6 -0
  88. package/src/metadata/vaults/mainnet/high-yield-instant-usdc-v2.md +6 -0
  89. package/src/metadata/vaults/mainnet/high-yield-instant-usdt-v2.md +6 -0
  90. package/src/metadata/vaults/mainnet/high-yield-term-usdc.md +6 -0
  91. package/src/metadata/vaults/mainnet/high-yield-turbo-cbbtc-v2.md +6 -0
  92. package/src/metadata/vaults/mainnet/high-yield-turbo-eth-v2.md +6 -0
  93. package/src/metadata/vaults/mainnet/high-yield-turbo-usdt-v2.md +6 -0
  94. package/src/metadata/vaults/mainnet/infinifi-usdc.md +6 -0
  95. package/src/metadata/vaults/mainnet/level-usdc.md +6 -0
  96. package/src/metadata/vaults/mainnet/m-v1.md +6 -0
  97. package/src/metadata/vaults/mainnet/paxg-v1.md +6 -0
  98. package/src/metadata/vaults/mainnet/peaty-usdc.md +6 -0
  99. package/src/metadata/vaults/mainnet/prime-instant-eth-v2.md +6 -0
  100. package/src/metadata/vaults/mainnet/prime-instant-eurcv-v2.md +6 -0
  101. package/src/metadata/vaults/mainnet/prime-instant-pyusd-v2.md +6 -0
  102. package/src/metadata/vaults/mainnet/prime-instant-usdc-v2.md +6 -0
  103. package/src/metadata/vaults/mainnet/prime-instant-usdt-v2.md +6 -0
  104. package/src/metadata/vaults/mainnet/pyusd-high-yield-instant.md +6 -0
  105. package/src/metadata/vaults/mainnet/pyusd-v1.md +6 -0
  106. package/src/metadata/vaults/mainnet/rusd-v1.md +6 -0
  107. package/src/metadata/vaults/mainnet/safe-x-eth.md +6 -0
  108. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdc.md +6 -0
  109. package/src/metadata/vaults/mainnet/safe-x-smokehouse-usdt.md +6 -0
  110. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wbtc.md +6 -0
  111. package/src/metadata/vaults/mainnet/safe-x-smokehouse-wsteth.md +6 -0
  112. package/src/metadata/vaults/mainnet/safe-x-usdc.md +6 -0
  113. package/src/metadata/vaults/mainnet/safe-x-usdt.md +6 -0
  114. package/src/metadata/vaults/mainnet/smokehouse-cbbtc.md +6 -0
  115. package/src/metadata/vaults/mainnet/smokehouse-dai.md +6 -0
  116. package/src/metadata/vaults/mainnet/smokehouse-eth.md +6 -0
  117. package/src/metadata/vaults/mainnet/smokehouse-usdc.md +6 -0
  118. package/src/metadata/vaults/mainnet/smokehouse-usdt.md +6 -0
  119. package/src/metadata/vaults/mainnet/smokehouse-wsteth.md +6 -0
  120. package/src/metadata/vaults/mainnet/usdc-rwa.md +6 -0
  121. package/src/metadata/vaults/mainnet/usdc-v1.md +6 -0
  122. package/src/metadata/vaults/mainnet/usdq.md +6 -0
  123. package/src/metadata/vaults/mainnet/usdr.md +6 -0
  124. package/src/metadata/vaults/mainnet/usdt-lite.md +6 -0
  125. package/src/metadata/vaults/mainnet/usdt-v1.md +6 -0
  126. package/src/metadata/vaults/mainnet/vault-bridge-usdc.md +6 -0
  127. package/src/metadata/vaults/mainnet/wbtc-v1.md +6 -0
  128. package/src/metadata/vaults/monad/ausd-v2.md +6 -0
  129. package/src/metadata/vaults/monad/usdc-v2.md +6 -0
  130. package/src/metadata/vaults/unichain/eth.md +6 -0
  131. package/src/metadata/vaults/unichain/wsteth.md +6 -0
  132. package/src/queries/fragments/vaultDetail.ts +151 -0
  133. package/src/queries/getDetailedVault.test.ts +202 -0
  134. package/src/queries/getDetailedVault.ts +131 -0
  135. package/src/queries/getVaults.test.ts +167 -0
  136. package/src/queries/getVaults.ts +62 -13
  137. package/src/queries/index.ts +9 -7
  138. package/src/queries/steakhouseMetadata.ts +19 -0
  139. package/src/react/hooks/index.ts +1 -0
  140. package/src/react/hooks/useDetailedVault.ts +19 -0
  141. package/src/react/hooks/useSteakhouseQuery.ts +3 -3
  142. package/src/react/hooks/useVaults.ts +7 -2
  143. package/src/react/index.ts +1 -6
  144. package/dist/metadata/chains.d.ts +0 -7
  145. package/dist/metadata/chains.js +0 -15
  146. package/dist/metadata/chains.js.map +0 -1
  147. package/dist/metadata/vaults.d.ts +0 -7
  148. package/dist/metadata/vaults.js +0 -24
  149. package/dist/metadata/vaults.js.map +0 -1
  150. package/dist/queries/fragments/vault.d.ts +0 -19
  151. package/dist/queries/fragments/vault.js +0 -16
  152. package/dist/queries/fragments/vault.js.map +0 -1
  153. package/src/client.test.ts +0 -27
  154. package/src/metadata/chains.ts +0 -13
  155. package/src/metadata/vaults.ts +0 -27
  156. package/src/queries/fragments/vault.ts +0 -15
@@ -1,14 +1,12 @@
1
1
  import React, { PropsWithChildren } from 'react';
2
- import { SteakhouseClient } from '../client.js';
3
- import '@urql/core';
4
- import '@whisk/client';
2
+ import { WhiskClient } from '@whisk/client';
5
3
 
6
4
  interface SteakhouseContextValue {
7
- client: SteakhouseClient;
5
+ client: WhiskClient;
8
6
  }
9
7
  declare function useSteakhouse(): SteakhouseContextValue;
10
8
  interface SteakhouseProviderProps extends PropsWithChildren {
11
- client: SteakhouseClient;
9
+ client: WhiskClient;
12
10
  }
13
11
  declare function SteakhouseProvider({ children, client, }: SteakhouseProviderProps): React.JSX.Element;
14
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whisk/steakhouse",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
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.9",
40
- "@whisk/graphql": "0.0.9"
39
+ "@whisk/client": "0.0.10",
40
+ "@whisk/graphql": "0.0.10"
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
- "@tanstack/react-query": "5.90.10"
68
+ "tsx": "^4.20.6",
69
+ "viem": "^2.0.0",
70
+ "zod": "^3.24.0"
65
71
  },
66
72
  "scripts": {
67
- "build": "tsup",
68
- "dev": "tsup --watch"
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
  }
package/src/client.ts CHANGED
@@ -1,19 +1,3 @@
1
- import type { AnyVariables, TypedDocumentNode } from "@urql/core"
2
- import { WhiskClient, type WhiskClientConfig } from "@whisk/client"
3
-
4
- export interface SteakhouseClientConfig extends WhiskClientConfig {}
5
-
6
- export class SteakhouseClient {
7
- private readonly client: WhiskClient
8
-
9
- constructor(config: SteakhouseClientConfig) {
10
- this.client = new WhiskClient(config)
11
- }
12
-
13
- public async query<TValue, TVariables extends AnyVariables>(
14
- document: TypedDocumentNode<TValue, TVariables>,
15
- variables: TVariables,
16
- ): Promise<TValue> {
17
- return this.client.query(document, variables)
18
- }
19
- }
1
+ // Re-export from @whisk/client
2
+ export type { WhiskClientConfig as SteakhouseClientConfig } from "@whisk/client"
3
+ export { WhiskClient as SteakhouseClient } from "@whisk/client"
package/src/index.ts CHANGED
@@ -1,3 +1,2 @@
1
- export { SteakhouseClient, type SteakhouseClientConfig } from "./client.js"
1
+ export * from "./client.js"
2
2
  export * from "./queries/index.js"
3
- export type { SteakhouseQueryFn } from "./queries/types.js"
@@ -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.
@@ -0,0 +1,470 @@
1
+ // THIS FILE IS AUTO-GENERATED. DO NOT EDIT DIRECTLY.
2
+ // Run `pnpm generate:vaults` to regenerate.
3
+
4
+ import type { VaultConfig } from "../types.js"
5
+
6
+ /** All Steakhouse vault configurations */
7
+ export const STEAKHOUSE_VAULTS: readonly VaultConfig[] = [
8
+ {
9
+ chainId: 42161,
10
+ address: "0xBEEFFF13dD098De415e07F033daE65205B31A894",
11
+ protocol: "morpho_v2",
12
+ type: "Turbo",
13
+ },
14
+ {
15
+ chainId: 42161,
16
+ address: "0x5c0C306Aaa9F877de636f4d5822cA9F2E81563BA",
17
+ protocol: "morpho_v1",
18
+ type: "High Yield",
19
+ },
20
+ {
21
+ chainId: 42161,
22
+ address: "0xbeeff1D5dE8F79ff37a151681100B039661da518",
23
+ protocol: "morpho_v2",
24
+ type: "High Yield",
25
+ },
26
+ {
27
+ chainId: 42161,
28
+ address: "0xbeeff77CE5C059445714E6A3490E273fE7F2492F",
29
+ protocol: "morpho_v2",
30
+ type: "High Yield",
31
+ },
32
+ {
33
+ chainId: 8453,
34
+ address: "0xBeEFDebfaea8350Ce8C4b3a6B7E5FE629c9e27A8",
35
+ protocol: "morpho_v2",
36
+ type: "Prime",
37
+ },
38
+ {
39
+ chainId: 8453,
40
+ address: "0xbEEf050a7485865A7a8d8Ca0CC5f7536b7a3443e",
41
+ protocol: "morpho_v1",
42
+ type: "Prime",
43
+ },
44
+ {
45
+ chainId: 8453,
46
+ address: "0xBEeFA28D5e56d41D35df760AB53B94D9FfD7051F",
47
+ protocol: "morpho_v1",
48
+ type: "High Yield",
49
+ },
50
+ {
51
+ chainId: 8453,
52
+ address: "0xBeEF086b8807Dc5E5A1740C5E3a7C4c366eA6ab5",
53
+ protocol: "morpho_v1",
54
+ type: "Prime",
55
+ },
56
+ {
57
+ chainId: 8453,
58
+ address: "0xbeeff7aE5E00Aae3Db302e4B0d8C883810a58100",
59
+ protocol: "morpho_v2",
60
+ type: "High Yield",
61
+ },
62
+ {
63
+ chainId: 8453,
64
+ address: "0xBEEFFFdeADc2c172130Ac4C5Ae48c8D4708BFb40",
65
+ protocol: "morpho_v2",
66
+ type: "Turbo",
67
+ },
68
+ {
69
+ chainId: 8453,
70
+ address: "0xBEEFA7B88064FeEF0cEe02AAeBBd95D30df3878F",
71
+ protocol: "morpho_v1",
72
+ type: "High Yield",
73
+ },
74
+ {
75
+ chainId: 8453,
76
+ address: "0xCBeeF01994E24a60f7DCB8De98e75AD8BD4Ad60d",
77
+ protocol: "morpho_v1",
78
+ type: "High Yield",
79
+ },
80
+ {
81
+ chainId: 8453,
82
+ address: "0xbeef0e0834849aCC03f0089F01f4F1Eeb06873C9",
83
+ protocol: "morpho_v2",
84
+ type: "Prime",
85
+ },
86
+ {
87
+ chainId: 8453,
88
+ address: "0xBEEFE94c8aD530842bfE7d8B397938fFc1cb83b2",
89
+ protocol: "morpho_v1",
90
+ type: "Prime",
91
+ },
92
+ {
93
+ chainId: 8453,
94
+ address: "0xBeef2dc30633221Fa51A1C3e5299BFf8C69fc0A8",
95
+ protocol: "morpho_v1",
96
+ type: "Prime",
97
+ },
98
+ {
99
+ chainId: 8453,
100
+ address: "0xbeEFe1372c0A384aCEcBe8a0Adf3c94c389F6704",
101
+ protocol: "morpho_v1",
102
+ type: "Prime",
103
+ },
104
+ {
105
+ chainId: 8453,
106
+ address: "0xBeeFa74640a5f7c28966cbA82466EED5609444E0",
107
+ protocol: "morpho_v1",
108
+ type: "High Yield",
109
+ },
110
+ {
111
+ chainId: 8453,
112
+ address: "0xB17B070A56043e1a5a1AB7443AfAFDEbcc1168D7",
113
+ protocol: "morpho_v1",
114
+ type: "High Yield",
115
+ },
116
+ {
117
+ chainId: 8453,
118
+ address: "0xbEEfa1aBfEbE621DF50ceaEF9f54FdB73648c92C",
119
+ protocol: "morpho_v1",
120
+ type: "High Yield",
121
+ },
122
+ {
123
+ chainId: 8453,
124
+ address: "0xbEefc4aDBE58173FCa2C042097Fe33095E68C3D6",
125
+ protocol: "morpho_v1",
126
+ type: "High Yield",
127
+ },
128
+ {
129
+ chainId: 8453,
130
+ address: "0xbeeF010f9cb27031ad51e3333f9aF9C6B1228183",
131
+ protocol: "morpho_v1",
132
+ type: "Prime",
133
+ },
134
+ {
135
+ chainId: 747474,
136
+ address: "0xdE6a4F28Acfe431DD1CfA2D9c7A3d8301624a841",
137
+ protocol: "morpho_v1",
138
+ type: "High Yield",
139
+ },
140
+ {
141
+ chainId: 747474,
142
+ address: "0x1445A01a57D7B7663CfD7B4EE0a8Ec03B379aabD",
143
+ protocol: "morpho_v1",
144
+ type: "High Yield",
145
+ },
146
+ {
147
+ chainId: 747474,
148
+ address: "0x82c4C641CCc38719ae1f0FBd16A64808d838fDfD",
149
+ protocol: "morpho_v1",
150
+ type: "Prime",
151
+ },
152
+ {
153
+ chainId: 747474,
154
+ address: "0x61D4F9D3797BA4dA152238c53a6f93Fb665C3c1d",
155
+ protocol: "morpho_v1",
156
+ type: "Prime",
157
+ },
158
+ {
159
+ chainId: 1,
160
+ address: "0xBEEf3f3A04e28895f3D5163d910474901981183D",
161
+ protocol: "morpho_v2",
162
+ type: "High Yield",
163
+ },
164
+ {
165
+ chainId: 1,
166
+ address: "0x7204B7Dbf9412567835633B6F00C3Edc3a8D6330",
167
+ protocol: "morpho_v1",
168
+ type: "Prime",
169
+ },
170
+ {
171
+ chainId: 1,
172
+ address: "0xbEeFc011e94f43b8B7b455eBaB290C7Ab4E216f1",
173
+ protocol: "morpho_v1",
174
+ type: "Prime",
175
+ },
176
+ {
177
+ chainId: 1,
178
+ address: "0xBEEf050ecd6a16c4e7bfFbB52Ebba7846C4b8cD4",
179
+ protocol: "morpho_v1",
180
+ type: "Prime",
181
+ },
182
+ {
183
+ chainId: 1,
184
+ address: "0xbeEfdDbd3bef4726bCF9627a9BA3B901D4958745",
185
+ protocol: "morpho_v1",
186
+ type: "High Yield",
187
+ },
188
+ {
189
+ chainId: 1,
190
+ address: "0xBeEFC1CDAfc5b4a649b54D07AFc6bF0f75C6F4E2",
191
+ protocol: "morpho_v1",
192
+ type: "Prime",
193
+ },
194
+ {
195
+ chainId: 1,
196
+ address: "0x75741A12B36D181f44F389E0c6B1E0210311e3Ff",
197
+ protocol: "morpho_v1",
198
+ type: "Prime",
199
+ },
200
+ {
201
+ chainId: 1,
202
+ address: "0xbEeFf89ABb7815cCD5182BD1FF82C4a4F8FCb13D",
203
+ protocol: "morpho_v2",
204
+ type: "High Yield",
205
+ },
206
+ {
207
+ chainId: 1,
208
+ address: "0xbeeff2C5bF38f90e3482a8b19F12E5a6D2FCa757",
209
+ protocol: "morpho_v2",
210
+ type: "High Yield",
211
+ },
212
+ {
213
+ chainId: 1,
214
+ address: "0xbeeff07d991C04CD640DE9F15C08ba59c4FEDEb7",
215
+ protocol: "morpho_v2",
216
+ type: "High Yield",
217
+ },
218
+ {
219
+ chainId: 1,
220
+ address: "0xBEEFFFC57A26fD8D3b693Ba025ead597DbECEBfe",
221
+ protocol: "morpho_v2",
222
+ type: "Term",
223
+ },
224
+ {
225
+ chainId: 1,
226
+ address: "0xBEEFFF506B52B3323c48aFE0Cb405A284F0f9cF2",
227
+ protocol: "morpho_v2",
228
+ type: "Turbo",
229
+ },
230
+ {
231
+ chainId: 1,
232
+ address: "0xBEEFFFcbA46C49A24cfBfFc19166e8f089B59300",
233
+ protocol: "morpho_v2",
234
+ type: "Turbo",
235
+ },
236
+ {
237
+ chainId: 1,
238
+ address: "0xBEEFFF4716a49418D69c251cab8759bB107e57C8",
239
+ protocol: "morpho_v2",
240
+ type: "Turbo",
241
+ },
242
+ {
243
+ chainId: 1,
244
+ address: "0xBEeF1f5Bd88285E5B239B6AAcb991d38ccA23Ac9",
245
+ protocol: "morpho_v1",
246
+ type: "High Yield",
247
+ },
248
+ {
249
+ chainId: 1,
250
+ address: "0xbEEf11C63d7173BdCC2037e7220eE9Bd0cCDA862",
251
+ protocol: "morpho_v1",
252
+ type: "High Yield",
253
+ },
254
+ {
255
+ chainId: 1,
256
+ address: "0xa5aA40F27DAeDE9748822ef836170f202e196B5A",
257
+ protocol: "morpho_v1",
258
+ type: "Prime",
259
+ },
260
+ {
261
+ chainId: 1,
262
+ address: "0xBeeF7959aE71D4e45e1863dae0B94C35244AF816",
263
+ protocol: "morpho_v1",
264
+ type: "Prime",
265
+ },
266
+ {
267
+ chainId: 1,
268
+ address: "0xdcdCEa96147672Fe3B56dCb1AA5608332B67Ff84",
269
+ protocol: "morpho_v2",
270
+ type: "Term",
271
+ },
272
+ {
273
+ chainId: 1,
274
+ address: "0xbeef0046fcab1dE47E41fB75BB3dC4Dfc94108E3",
275
+ protocol: "morpho_v2",
276
+ type: "Prime",
277
+ },
278
+ {
279
+ chainId: 1,
280
+ address: "0xbeef0C075Da5D01112AE5cF34d257074fB5DDB2f",
281
+ protocol: "morpho_v2",
282
+ type: "Prime",
283
+ },
284
+ {
285
+ chainId: 1,
286
+ address: "0xbeef00B5d83C1188F07A5184230a805639c39f04",
287
+ protocol: "morpho_v2",
288
+ type: "Prime",
289
+ },
290
+ {
291
+ chainId: 1,
292
+ address: "0xbeef088055857739C12CD3765F20b7679Def0f51",
293
+ protocol: "morpho_v2",
294
+ type: "Prime",
295
+ },
296
+ {
297
+ chainId: 1,
298
+ address: "0xbeef003C68896c7D2c3c60d363e8d71a49Ab2bf9",
299
+ protocol: "morpho_v2",
300
+ type: "Prime",
301
+ },
302
+ {
303
+ chainId: 1,
304
+ address: "0xd8A6511979D9C5D387c819E9F8ED9F3a5C6c5379",
305
+ protocol: "morpho_v2",
306
+ type: "High Yield",
307
+ },
308
+ {
309
+ chainId: 1,
310
+ address: "0xbEEF02e5E13584ab96848af90261f0C8Ee04722a",
311
+ protocol: "morpho_v1",
312
+ type: "Prime",
313
+ },
314
+ {
315
+ chainId: 1,
316
+ address: "0xBeEf11eCb698f4B5378685C05A210bdF71093521",
317
+ protocol: "morpho_v1",
318
+ type: "Prime",
319
+ },
320
+ {
321
+ chainId: 1,
322
+ address: "0xBeEFB45B6F9acB175e70acF16dC20D6120044c70",
323
+ protocol: "morpho_v1",
324
+ type: "Prime",
325
+ },
326
+ {
327
+ chainId: 1,
328
+ address: "0xbEEf390D2e65d6E43A67875106d4A48f700F2832",
329
+ protocol: "morpho_v1",
330
+ type: "High Yield",
331
+ },
332
+ {
333
+ chainId: 1,
334
+ address: "0xbEEf0c18715ACDdC14a3123a608F491319F1C28C",
335
+ protocol: "morpho_v1",
336
+ type: "High Yield",
337
+ },
338
+ {
339
+ chainId: 1,
340
+ address: "0xBEEFF900ec6faB1465252D2fBe731db8d1Ad5FD9",
341
+ protocol: "morpho_v1",
342
+ type: "High Yield",
343
+ },
344
+ {
345
+ chainId: 1,
346
+ address: "0xbEEffF79FFA3EE2D1bfcC32dE9cFd8129528D0E4",
347
+ protocol: "morpho_v1",
348
+ type: "High Yield",
349
+ },
350
+ {
351
+ chainId: 1,
352
+ address: "0xbEeFCe6c76C7D7A8066562Fe9FF0e343a52dD92F",
353
+ protocol: "morpho_v1",
354
+ type: "Prime",
355
+ },
356
+ {
357
+ chainId: 1,
358
+ address: "0xBEeF47b9F76C9672B967A7b88d0afFf245Be13ad",
359
+ protocol: "morpho_v1",
360
+ type: "Prime",
361
+ },
362
+ {
363
+ chainId: 1,
364
+ address: "0xbEEF8DF2Ce4BaB5420123F9BF80dea4c65673257",
365
+ protocol: "morpho_v1",
366
+ type: "High Yield",
367
+ },
368
+ {
369
+ chainId: 1,
370
+ address: "0xbeeFfF68CC520D68f82641EFF84330C631E2490E",
371
+ protocol: "morpho_v1",
372
+ type: "High Yield",
373
+ },
374
+ {
375
+ chainId: 1,
376
+ address: "0xbEEF36A5C1372F8D7d211527FCE9f83FE02d8A73",
377
+ protocol: "morpho_v1",
378
+ type: "High Yield",
379
+ },
380
+ {
381
+ chainId: 1,
382
+ address: "0xBEeFFF209270748ddd194831b3fa287a5386f5bC",
383
+ protocol: "morpho_v1",
384
+ type: "High Yield",
385
+ },
386
+ {
387
+ chainId: 1,
388
+ address: "0xA0804346780b4c2e3bE118ac957D1DB82F9d7484",
389
+ protocol: "morpho_v1",
390
+ type: "High Yield",
391
+ },
392
+ {
393
+ chainId: 1,
394
+ address: "0x833AdaeF212c5cD3f78906B44bBfb18258F238F0",
395
+ protocol: "morpho_v1",
396
+ type: "High Yield",
397
+ },
398
+ {
399
+ chainId: 1,
400
+ address: "0x6D4e530B8431a52FFDA4516BA4Aadc0951897F8C",
401
+ protocol: "morpho_v1",
402
+ type: "High Yield",
403
+ },
404
+ {
405
+ chainId: 1,
406
+ address: "0xBEEF01735c132Ada46AA9aA4c54623cAA92A64CB",
407
+ protocol: "morpho_v1",
408
+ type: "Prime",
409
+ },
410
+ {
411
+ chainId: 1,
412
+ address: "0xA1b60d96e5C50dA627095B9381dc5a46AF1a9a42",
413
+ protocol: "morpho_v1",
414
+ type: "Prime",
415
+ },
416
+ {
417
+ chainId: 1,
418
+ address: "0x30881Baa943777f92DC934d53D3bFdF33382cab3",
419
+ protocol: "morpho_v1",
420
+ type: "Prime",
421
+ },
422
+ {
423
+ chainId: 1,
424
+ address: "0x097FFEDb80d4b2Ca6105a07a4D90eB739C45A666",
425
+ protocol: "morpho_v1",
426
+ type: "Prime",
427
+ },
428
+ {
429
+ chainId: 1,
430
+ address: "0xbEef047a543E45807105E51A8BBEFCc5950fcfBa",
431
+ protocol: "morpho_v1",
432
+ type: "Prime",
433
+ },
434
+ {
435
+ chainId: 1,
436
+ address: "0xBEefb9f61CC44895d8AEc381373555a64191A9c4",
437
+ protocol: "morpho_v1",
438
+ type: "Prime",
439
+ },
440
+ {
441
+ chainId: 1,
442
+ address: "0xbeEf094333AEdD535c130958c204E84f681FD9FA",
443
+ protocol: "morpho_v1",
444
+ type: "Prime",
445
+ },
446
+ {
447
+ chainId: 143,
448
+ address: "0xbeeffeA75cFC4128ebe10C8D7aE22016D215060D",
449
+ protocol: "morpho_v2",
450
+ type: "High Yield",
451
+ },
452
+ {
453
+ chainId: 143,
454
+ address: "0xbeEFf443C3CbA3E369DA795002243BeaC311aB83",
455
+ protocol: "morpho_v2",
456
+ type: "High Yield",
457
+ },
458
+ {
459
+ chainId: 130,
460
+ address: "0x0993Ae24a988c6925d80aD61344a76B81aA0D34c",
461
+ protocol: "morpho_v1",
462
+ type: "Prime",
463
+ },
464
+ {
465
+ chainId: 130,
466
+ address: "0x9E111aCef0CF3bd8C38715B88e78BE31C1109F8a",
467
+ protocol: "morpho_v1",
468
+ type: "Prime",
469
+ },
470
+ ] as const
@@ -1,3 +1,5 @@
1
- export { BASE, MAINNET, SUPPORTED_CHAINS } from "./chains.js"
2
- export type { Address, ChainConfig, VaultConfig, VaultProtocol, VaultTag } from "./types.js"
3
- export { ALL_VAULTS, BASE_VAULTS, MAINNET_VAULTS } from "./vaults.js"
1
+ export { STEAKHOUSE_VAULTS } from "./generated/vaults.js"
2
+
3
+ export type { Address, VaultConfig, VaultProtocol, VaultType } from "./types.js"
4
+
5
+ export { VAULT_TYPES } from "./types.js"
@@ -1,19 +1,18 @@
1
- export type Address = `0x${string}`
1
+ import type { VaultProtocol } from "@whisk/graphql"
2
2
 
3
- export type VaultProtocol = "morpho" | "steakhouse"
3
+ export type { VaultProtocol }
4
+ export type Address = `0x${string}`
4
5
 
5
- export type VaultTag = "featured" | "new" | "deprecated"
6
+ /** Valid vault types for categorization */
7
+ export const VAULT_TYPES = ["Prime", "High Yield", "Turbo", "Term"] as const
8
+ export type VaultType = (typeof VAULT_TYPES)[number]
6
9
 
10
+ /** Vault configuration with metadata */
7
11
  export interface VaultConfig {
12
+ readonly chainId: number
8
13
  readonly address: Address
9
14
  readonly protocol: VaultProtocol
10
15
  readonly name?: string
11
16
  readonly description?: string
12
- readonly tag?: VaultTag
13
- readonly isHidden?: boolean
14
- }
15
-
16
- export interface ChainConfig {
17
- readonly id: number
18
- readonly name: string
17
+ readonly type?: VaultType
19
18
  }