@whisk/steakhouse 0.0.5 → 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.
- 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/getDetailedVault.d.ts +2 -2
- package/dist/queries/getDetailedVault.js +3 -3
- package/dist/queries/getDetailedVault.js.map +1 -1
- package/dist/queries/getVaults.d.ts +1 -1
- package/dist/queries/getVaults.js +2 -4
- package/dist/queries/getVaults.js.map +1 -1
- package/dist/queries/steakhouseMetadata.d.ts +2 -1
- package/dist/queries/steakhouseMetadata.js +1 -1
- package/dist/queries/steakhouseMetadata.js.map +1 -1
- package/dist/react/hooks/index.d.ts +1 -1
- package/dist/react/hooks/useDetailedVault.d.ts +1 -1
- package/dist/react/index.d.ts +1 -1
- package/package.json +14 -6
- 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/getDetailedVault.test.ts +9 -19
- package/src/queries/getDetailedVault.ts +3 -4
- package/src/queries/getVaults.test.ts +15 -34
- package/src/queries/getVaults.ts +4 -4
- package/src/queries/steakhouseMetadata.ts +2 -2
- 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/src/metadata/chains.ts +0 -13
- package/src/metadata/vaults.ts +0 -27
|
@@ -2,22 +2,23 @@ import { beforeEach, describe, expect, it, vi } from "vitest"
|
|
|
2
2
|
import { createMockClient } from "../../test/mocks.js"
|
|
3
3
|
import { getDetailedVault } from "./getDetailedVault.js"
|
|
4
4
|
|
|
5
|
-
// Mock the
|
|
6
|
-
vi.mock("../metadata/vaults.js", () => ({
|
|
7
|
-
|
|
5
|
+
// Mock the generated vaults module
|
|
6
|
+
vi.mock("../metadata/generated/vaults.js", () => ({
|
|
7
|
+
STEAKHOUSE_VAULTS: [
|
|
8
8
|
{
|
|
9
9
|
chainId: 1,
|
|
10
10
|
address: "0x1111111111111111111111111111111111111111",
|
|
11
11
|
protocol: "morpho_v1",
|
|
12
12
|
name: "Steakhouse USDC",
|
|
13
13
|
description: "A USDC vault",
|
|
14
|
-
|
|
14
|
+
type: "Prime",
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
chainId: 1,
|
|
18
18
|
address: "0x2222222222222222222222222222222222222222",
|
|
19
19
|
protocol: "morpho_v1",
|
|
20
|
-
|
|
20
|
+
name: "Steakhouse ETH",
|
|
21
|
+
description: "An ETH vault",
|
|
21
22
|
},
|
|
22
23
|
],
|
|
23
24
|
}))
|
|
@@ -103,18 +104,6 @@ describe("getDetailedVault", () => {
|
|
|
103
104
|
expect(client.query).not.toHaveBeenCalled()
|
|
104
105
|
})
|
|
105
106
|
|
|
106
|
-
it("returns null for hidden vault", async () => {
|
|
107
|
-
const client = createMockClient({})
|
|
108
|
-
|
|
109
|
-
const result = await getDetailedVault(client, {
|
|
110
|
-
chainId: 1,
|
|
111
|
-
address: "0x2222222222222222222222222222222222222222",
|
|
112
|
-
})
|
|
113
|
-
|
|
114
|
-
expect(result).toBeNull()
|
|
115
|
-
expect(client.query).not.toHaveBeenCalled()
|
|
116
|
-
})
|
|
117
|
-
|
|
118
107
|
it("returns null for vault on wrong chain", async () => {
|
|
119
108
|
const client = createMockClient({})
|
|
120
109
|
|
|
@@ -148,7 +137,8 @@ describe("getDetailedVault", () => {
|
|
|
148
137
|
vaultAddress: "0x1111111111111111111111111111111111111111",
|
|
149
138
|
})
|
|
150
139
|
// Remove historical from response
|
|
151
|
-
|
|
140
|
+
// biome-ignore lint/complexity/useLiteralKeys: Needed for index signature access
|
|
141
|
+
delete (mockResponse.erc4626Vaults.items[0] as Record<string, unknown>)["historical"]
|
|
152
142
|
|
|
153
143
|
const client = createMockClient(mockResponse)
|
|
154
144
|
|
|
@@ -178,7 +168,7 @@ describe("getDetailedVault", () => {
|
|
|
178
168
|
expect(result?.steakhouseMetadata).toEqual({
|
|
179
169
|
name: "Steakhouse USDC",
|
|
180
170
|
description: "A USDC vault",
|
|
181
|
-
|
|
171
|
+
type: "Prime",
|
|
182
172
|
protocol: "morpho_v1",
|
|
183
173
|
})
|
|
184
174
|
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { graphql } from "@whisk/graphql"
|
|
2
2
|
import type { SteakhouseClient } from "../client.js"
|
|
3
|
+
import { STEAKHOUSE_VAULTS } from "../metadata/generated/vaults.js"
|
|
3
4
|
import type { Address } from "../metadata/types.js"
|
|
4
|
-
import { ALL_VAULTS } from "../metadata/vaults.js"
|
|
5
5
|
import { type VaultDetail, vaultDetailFragment } from "./fragments/vaultDetail.js"
|
|
6
6
|
import { buildSteakhouseMetadata, type SteakhouseMetadata } from "./steakhouseMetadata.js"
|
|
7
7
|
|
|
@@ -102,9 +102,8 @@ export async function getDetailedVault(
|
|
|
102
102
|
): Promise<GetDetailedVaultResult> {
|
|
103
103
|
const { chainId, address, historical = true } = variables
|
|
104
104
|
|
|
105
|
-
const vaultConfig =
|
|
106
|
-
(v) =>
|
|
107
|
-
v.chainId === chainId && v.address.toLowerCase() === address.toLowerCase() && !v.isHidden,
|
|
105
|
+
const vaultConfig = STEAKHOUSE_VAULTS.find(
|
|
106
|
+
(v) => v.chainId === chainId && v.address.toLowerCase() === address.toLowerCase(),
|
|
108
107
|
)
|
|
109
108
|
|
|
110
109
|
if (!vaultConfig) {
|
|
@@ -2,33 +2,30 @@ import { beforeEach, describe, expect, it, vi } from "vitest"
|
|
|
2
2
|
import { createMockClient } from "../../test/mocks.js"
|
|
3
3
|
import { getVaults } from "./getVaults.js"
|
|
4
4
|
|
|
5
|
-
// Mock the
|
|
6
|
-
vi.mock("../metadata/vaults.js", () => ({
|
|
7
|
-
|
|
5
|
+
// Mock the generated vaults module
|
|
6
|
+
vi.mock("../metadata/generated/vaults.js", () => ({
|
|
7
|
+
STEAKHOUSE_VAULTS: [
|
|
8
8
|
{
|
|
9
9
|
chainId: 1,
|
|
10
10
|
address: "0x1111111111111111111111111111111111111111",
|
|
11
11
|
protocol: "morpho_v1",
|
|
12
12
|
name: "Steakhouse USDC",
|
|
13
13
|
description: "A USDC vault",
|
|
14
|
-
|
|
14
|
+
type: "Prime",
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
chainId: 1,
|
|
18
18
|
address: "0x2222222222222222222222222222222222222222",
|
|
19
19
|
protocol: "morpho_v1",
|
|
20
20
|
name: "Steakhouse ETH",
|
|
21
|
+
description: "An ETH vault",
|
|
21
22
|
},
|
|
22
23
|
{
|
|
23
24
|
chainId: 8453,
|
|
24
25
|
address: "0x3333333333333333333333333333333333333333",
|
|
25
26
|
protocol: "morpho_v2",
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
chainId: 1,
|
|
29
|
-
address: "0x4444444444444444444444444444444444444444",
|
|
30
|
-
protocol: "morpho_v1",
|
|
31
|
-
isHidden: true, // Should be excluded
|
|
27
|
+
name: "Base Vault",
|
|
28
|
+
description: "A Base vault",
|
|
32
29
|
},
|
|
33
30
|
],
|
|
34
31
|
}))
|
|
@@ -120,24 +117,6 @@ describe("getVaults", () => {
|
|
|
120
117
|
)
|
|
121
118
|
})
|
|
122
119
|
|
|
123
|
-
it("excludes hidden vaults from whitelist", async () => {
|
|
124
|
-
const client = createMockClient(
|
|
125
|
-
createMockVaultResponse([
|
|
126
|
-
{ vaultAddress: "0x1111111111111111111111111111111111111111" },
|
|
127
|
-
{ vaultAddress: "0x2222222222222222222222222222222222222222" },
|
|
128
|
-
]),
|
|
129
|
-
)
|
|
130
|
-
|
|
131
|
-
await getVaults(client, { chainId: 1 })
|
|
132
|
-
|
|
133
|
-
// Should not include the hidden vault (0x4444...)
|
|
134
|
-
const call = vi.mocked(client.query).mock.calls[0]
|
|
135
|
-
const keys = call[1].where.keys as Array<{ vaultAddress: string }>
|
|
136
|
-
expect(keys.map((k) => k.vaultAddress)).not.toContain(
|
|
137
|
-
"0x4444444444444444444444444444444444444444",
|
|
138
|
-
)
|
|
139
|
-
})
|
|
140
|
-
|
|
141
120
|
it("augments results with steakhouse metadata", async () => {
|
|
142
121
|
const client = createMockClient(
|
|
143
122
|
createMockVaultResponse([{ vaultAddress: "0x1111111111111111111111111111111111111111" }]),
|
|
@@ -145,27 +124,29 @@ describe("getVaults", () => {
|
|
|
145
124
|
|
|
146
125
|
const result = await getVaults(client, { chainId: 1 })
|
|
147
126
|
|
|
148
|
-
expect(result[0]
|
|
127
|
+
expect(result[0]?.steakhouseMetadata).toEqual({
|
|
149
128
|
name: "Steakhouse USDC",
|
|
150
129
|
description: "A USDC vault",
|
|
151
|
-
|
|
130
|
+
type: "Prime",
|
|
152
131
|
protocol: "morpho_v1",
|
|
153
132
|
})
|
|
154
133
|
})
|
|
155
134
|
|
|
156
|
-
it("handles vaults without
|
|
135
|
+
it("handles vaults without type", async () => {
|
|
157
136
|
const client = createMockClient(
|
|
158
137
|
createMockVaultResponse([{ vaultAddress: "0x3333333333333333333333333333333333333333" }]),
|
|
159
138
|
)
|
|
160
139
|
|
|
161
140
|
const result = await getVaults(client, { chainId: 8453 })
|
|
162
141
|
|
|
163
|
-
expect(result[0]
|
|
142
|
+
expect(result[0]?.steakhouseMetadata).toEqual({
|
|
143
|
+
name: "Base Vault",
|
|
144
|
+
description: "A Base vault",
|
|
164
145
|
protocol: "morpho_v2",
|
|
165
146
|
})
|
|
166
147
|
})
|
|
167
148
|
|
|
168
|
-
it("returns all
|
|
149
|
+
it("returns all vaults when no chainId filter", async () => {
|
|
169
150
|
const client = createMockClient(
|
|
170
151
|
createMockVaultResponse([
|
|
171
152
|
{ vaultAddress: "0x1111111111111111111111111111111111111111" },
|
|
@@ -179,7 +160,7 @@ describe("getVaults", () => {
|
|
|
179
160
|
expect(client.query).toHaveBeenCalledWith(
|
|
180
161
|
expect.anything(),
|
|
181
162
|
expect.objectContaining({
|
|
182
|
-
limit: 3,
|
|
163
|
+
limit: 3,
|
|
183
164
|
}),
|
|
184
165
|
)
|
|
185
166
|
})
|
package/src/queries/getVaults.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { graphql } from "@whisk/graphql"
|
|
2
2
|
import type { SteakhouseClient } from "../client.js"
|
|
3
|
+
import { STEAKHOUSE_VAULTS } from "../metadata/generated/vaults.js"
|
|
3
4
|
import type { Address, VaultConfig } from "../metadata/types.js"
|
|
4
|
-
import { ALL_VAULTS } from "../metadata/vaults.js"
|
|
5
5
|
import { type VaultDetail, vaultDetailFragment } from "./fragments/vaultDetail.js"
|
|
6
6
|
import { buildSteakhouseMetadata, type SteakhouseMetadata } from "./steakhouseMetadata.js"
|
|
7
7
|
|
|
@@ -41,9 +41,9 @@ export async function getVaults(
|
|
|
41
41
|
): Promise<GetVaultsResult> {
|
|
42
42
|
const { chainId } = variables
|
|
43
43
|
|
|
44
|
-
const filteredVaults =
|
|
45
|
-
(v) =>
|
|
46
|
-
|
|
44
|
+
const filteredVaults = chainId
|
|
45
|
+
? STEAKHOUSE_VAULTS.filter((v) => v.chainId === chainId)
|
|
46
|
+
: STEAKHOUSE_VAULTS
|
|
47
47
|
|
|
48
48
|
if (filteredVaults.length === 0) {
|
|
49
49
|
return []
|