Skip to content

Commit c611a59

Browse files
authored
Add rewards field to HyperdriveConfig (#1695)
* Add rewards to HyperdriveConfig * Fix type * Remove stray
1 parent edb8933 commit c611a59

File tree

14 files changed

+401
-245
lines changed

14 files changed

+401
-245
lines changed

apps/hyperdrive-trading/src/ui/hyperdrive/hooks/useUnpausedPools.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ export function useUnpausedPools(): {
3939
params: { chainId: connectedChainId },
4040
}),
4141
queryFn: async () => {
42-
const unpausedPools: (HyperdriveConfig & { rewards: AnyReward[] })[] = (
42+
const unpausedPools: (HyperdriveConfig & {
43+
rewardsAmount: AnyReward[];
44+
})[] = (
4345
await Promise.all(
4446
appConfigForConnectedChain.hyperdrives
4547
.filter((hyperdrive) => !HIDDEN_POOLS.includes(hyperdrive.address))
@@ -70,7 +72,7 @@ export function useUnpausedPools(): {
7072
? []
7173
: await rewardsFn(publicClient).catch(() => []);
7274

73-
return { ...hyperdrive, rewards };
75+
return { ...hyperdrive, rewardsAmount: rewards };
7476
}),
7577
)
7678
).filter((pool) => !!pool);

apps/hyperdrive-trading/src/ui/markets/PointsMarkets/PointsMarkets.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function PointsMarkets(): ReactElement | null {
4141
// Only show pools that have a points reward type
4242
const poolsWithPoints = pools
4343
? pools.filter((pool) =>
44-
pool.rewards?.find(({ type }) => type === "pointMultiplier"),
44+
pool.rewardsAmount?.find(({ type }) => type === "pointMultiplier"),
4545
)
4646
: [];
4747

apps/hyperdrive-trading/src/ui/markets/hooks/usePoolsList.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export function usePoolsList({
5050
selectedAssets: string[] | undefined;
5151
selectedChains: number[] | undefined;
5252
}): {
53-
pools: (HyperdriveConfig & { rewards?: AnyReward[] })[] | undefined;
53+
pools: (HyperdriveConfig & { rewardsAmount?: AnyReward[] })[] | undefined;
5454
filters: PoolListFilters | undefined;
5555
status: QueryStatus;
5656
isSortingEnabled: boolean;

packages/hyperdrive-appconfig/src/appconfig/getAppConfig.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ const hyperdriveKindResolvers: Record<
7777
isBaseTokenWithdrawalEnabled: false,
7878
isShareTokenWithdrawalEnabled: true,
7979
},
80+
rewards: {
81+
short: ["fetchLineaRewards"],
82+
lp: ["fetchLineaRewards"],
83+
},
8084
earliestBlock,
8185
});
8286
},
@@ -93,6 +97,10 @@ const hyperdriveKindResolvers: Record<
9397
isBaseTokenDepositEnabled: false,
9498
isShareTokenDepositsEnabled: true,
9599
},
100+
rewards: {
101+
short: ["fetchLineaRewards"],
102+
lp: ["fetchLineaRewards"],
103+
},
96104
withdrawalOptions: {
97105
isBaseTokenWithdrawalEnabled: false,
98106
isShareTokenWithdrawalEnabled: true,
@@ -139,6 +147,10 @@ const hyperdriveKindResolvers: Record<
139147
isBaseTokenDepositEnabled: true,
140148
isShareTokenDepositsEnabled: true,
141149
},
150+
rewards: {
151+
short: ["fetchEtherfiRewards"],
152+
lp: ["fetchEtherfiRewards"],
153+
},
142154
withdrawalOptions: {
143155
isBaseTokenWithdrawalEnabled: false,
144156
isShareTokenWithdrawalEnabled: true,
@@ -218,6 +230,10 @@ const hyperdriveKindResolvers: Record<
218230
isBaseTokenWithdrawalEnabled: true,
219231
isShareTokenWithdrawalEnabled: true,
220232
},
233+
rewards: {
234+
short: ["fetchGyroscopeRewards"],
235+
lp: ["fetchGyroscopeRewards"],
236+
},
221237
earliestBlock,
222238
});
223239
}
@@ -354,6 +370,10 @@ const hyperdriveKindResolvers: Record<
354370
isShareTokenWithdrawalEnabled: true,
355371
},
356372
tokenPlaces: 4,
373+
rewards: {
374+
short: ["fetchMorphoMwethRewards"],
375+
lp: ["fetchMorphoMwethRewards"],
376+
},
357377
});
358378
}
359379

@@ -373,6 +393,10 @@ const hyperdriveKindResolvers: Record<
373393
isShareTokenWithdrawalEnabled: true,
374394
},
375395
tokenPlaces: 2,
396+
rewards: {
397+
short: ["fetchMorphoMwusdcRewards"],
398+
lp: ["fetchMorphoMwusdcRewards"],
399+
},
376400
});
377401
}
378402

@@ -392,6 +416,10 @@ const hyperdriveKindResolvers: Record<
392416
isShareTokenWithdrawalEnabled: true,
393417
},
394418
tokenPlaces: 2,
419+
rewards: {
420+
short: ["fetchMorphoMweurcRewards"],
421+
lp: ["fetchMorphoMweurcRewards"],
422+
},
395423
});
396424
}
397425

@@ -465,6 +493,10 @@ const hyperdriveKindResolvers: Record<
465493
yieldSourceId: "aeroUsdcAero",
466494
baseTokenPlaces: 9, // aero lp tokens are super small
467495
baseTokenTags: [],
496+
rewards: {
497+
short: ["fetchAeroRewards"],
498+
lp: ["fetchAeroRewards"],
499+
},
468500
});
469501
}
470502
throw new Error(
@@ -536,6 +568,10 @@ const hyperdriveKindResolvers: Record<
536568
baseTokenIconUrl: USDC_ICON_URL,
537569
baseTokenPlaces: 2,
538570
yieldSourceId: "morphoCbethUsdc",
571+
rewards: {
572+
short: ["fetchMorphoCbethUsdcRewards"],
573+
lp: ["fetchMorphoCbethUsdcRewards"],
574+
},
539575
});
540576
}
541577

packages/hyperdrive-appconfig/src/generated/all.appconfig.ts

Lines changed: 160 additions & 120 deletions
Large diffs are not rendered by default.

packages/hyperdrive-appconfig/src/generated/mainnet.appconfig.ts

Lines changed: 139 additions & 99 deletions
Large diffs are not rendered by default.

packages/hyperdrive-appconfig/src/generated/testnet.appconfig.ts

Lines changed: 21 additions & 21 deletions
Large diffs are not rendered by default.

packages/hyperdrive-appconfig/src/hyperdrives/HyperdriveConfig.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { PoolConfig } from "@delvtech/hyperdrive-viem";
2+
import { rewardFunctions } from "src/rewards/rewards";
23
import { YieldSourceId } from "src/yieldSources/types";
34
import { Address } from "viem";
45

@@ -40,6 +41,12 @@ export interface HyperdriveConfig {
4041
isShareTokenWithdrawalEnabled?: boolean;
4142
};
4243

44+
rewards?: {
45+
long?: (keyof typeof rewardFunctions)[];
46+
short?: (keyof typeof rewardFunctions)[];
47+
lp?: (keyof typeof rewardFunctions)[];
48+
};
49+
4350
poolConfig: PoolConfig;
4451

4552
/**

packages/hyperdrive-appconfig/src/hyperdrives/aero/getAeroHyperdrive.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@ export async function getAeroLpHyperdrive({
1212
baseTokenTags,
1313
baseTokenIconUrl,
1414
baseTokenPlaces,
15+
rewards,
1516
}: {
1617
hyperdrive: ReadHyperdrive;
1718
yieldSourceId: YieldSourceId;
1819
baseTokenTags: string[];
1920
baseTokenIconUrl: string;
2021
baseTokenPlaces: number;
22+
rewards?: HyperdriveConfig["rewards"];
2123
}): Promise<{
2224
baseTokenConfig: TokenConfig;
2325
hyperdriveConfig: HyperdriveConfig;
@@ -63,6 +65,10 @@ export async function getAeroLpHyperdrive({
6365
poolConfig,
6466
};
6567

68+
if (rewards) {
69+
hyperdriveConfig.rewards = rewards;
70+
}
71+
6672
return {
6773
baseTokenConfig,
6874
hyperdriveConfig,

packages/hyperdrive-appconfig/src/hyperdrives/custom/getCustomHyperdrive.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ interface GetHyperdriveConfigParams {
1919
tokenPlaces: number;
2020
sharesTokenTags?: string[];
2121
baseTokenTags?: string[];
22+
rewards?: HyperdriveConfig["rewards"];
2223
}
2324

2425
export async function getCustomHyperdrive({
@@ -32,6 +33,7 @@ export async function getCustomHyperdrive({
3233
tokenPlaces,
3334
sharesTokenTags = [],
3435
baseTokenTags = [],
36+
rewards,
3537
}: GetHyperdriveConfigParams): Promise<{
3638
sharesTokenConfig: TokenConfig;
3739
baseTokenConfig: TokenConfig;
@@ -82,6 +84,10 @@ export async function getCustomHyperdrive({
8284
poolConfig,
8385
};
8486

87+
if (rewards) {
88+
hyperdriveConfig.rewards = rewards;
89+
}
90+
8591
return {
8692
sharesTokenConfig,
8793
baseTokenConfig,

0 commit comments

Comments
 (0)