stakeConfig.ts
1 import { ChainId, Stake } from '@aave/contract-helpers'; 2 import { AaveSafetyModule, AaveV3Ethereum } from '@bgd-labs/aave-address-book'; 3 4 export interface StakeConfig { 5 chainId: ChainId; 6 stakeDataProvider: string; 7 tokens: { 8 [token: string]: { 9 TOKEN_STAKING: string; 10 STAKING_REWARD_TOKEN: string; 11 TOKEN_ORACLE: string; 12 }; 13 }; 14 } 15 16 export const stakeConfig: StakeConfig = { 17 chainId: ChainId.mainnet, 18 stakeDataProvider: '0xb12e82DF057BF16ecFa89D7D089dc7E5C1Dc057B', 19 tokens: { 20 [Stake.aave]: { 21 TOKEN_STAKING: AaveSafetyModule.STK_AAVE, 22 STAKING_REWARD_TOKEN: AaveV3Ethereum.ASSETS.AAVE.UNDERLYING, 23 TOKEN_ORACLE: AaveV3Ethereum.ASSETS.AAVE.ORACLE, 24 }, 25 [Stake.bpt]: { 26 TOKEN_STAKING: AaveSafetyModule.STK_ABPT, 27 STAKING_REWARD_TOKEN: AaveV3Ethereum.ASSETS.AAVE.UNDERLYING, 28 TOKEN_ORACLE: AaveSafetyModule.STK_ABPT_ORACLE, 29 }, 30 [Stake.gho]: { 31 TOKEN_STAKING: AaveSafetyModule.STK_GHO, 32 STAKING_REWARD_TOKEN: AaveV3Ethereum.ASSETS.AAVE.UNDERLYING, 33 TOKEN_ORACLE: '0x3f12643d3f6f874d39c2a4c9f2cd6f2dbac877fc', // CL Feed 34 }, 35 [Stake.bptv2]: { 36 TOKEN_STAKING: AaveSafetyModule.STK_AAVE_WSTETH_BPTV2, 37 STAKING_REWARD_TOKEN: AaveV3Ethereum.ASSETS.AAVE.UNDERLYING, 38 TOKEN_ORACLE: AaveSafetyModule.STK_AAVE_WSTETH_BPTV2_ORACLE, 39 }, 40 }, 41 }; 42 43 export const stakeAssetNameFormatted = (stakeAssetName: Stake) => { 44 switch (stakeAssetName) { 45 case Stake.aave: 46 return 'AAVE'; 47 case Stake.bpt: 48 return 'ABPT'; 49 case Stake.gho: 50 return 'GHO'; 51 case Stake.bptv2: 52 return 'ABPT V2'; 53 } 54 };