/ src / ui-config / marketsConfig.tsx
marketsConfig.tsx
  1  import { ChainId } from '@aave/contract-helpers';
  2  import {
  3    AaveV2Avalanche,
  4    AaveV2Ethereum,
  5    AaveV2Fuji,
  6    AaveV2Polygon,
  7    AaveV3Arbitrum,
  8    AaveV3ArbitrumSepolia,
  9    AaveV3Avalanche,
 10    AaveV3Base,
 11    AaveV3BNB,
 12    AaveV3Celo,
 13    AaveV3Ethereum,
 14    AaveV3EthereumEtherFi,
 15    AaveV3EthereumLido,
 16    AaveV3Gnosis,
 17    AaveV3Linea,
 18    AaveV3Metis,
 19    AaveV3Optimism,
 20    AaveV3OptimismSepolia,
 21    AaveV3Polygon,
 22    AaveV3Scroll,
 23    AaveV3ScrollSepolia,
 24    AaveV3Sepolia,
 25    AaveV3Sonic,
 26    AaveV3ZkSync,
 27  } from '@bgd-labs/aave-address-book';
 28  import { ReactNode } from 'react';
 29  
 30  // Enable for premissioned market
 31  // import { PermissionView } from 'src/components/transactions/FlowCommons/PermissionView';
 32  export type MarketDataType = {
 33    v3?: boolean;
 34    marketTitle: string;
 35    market: CustomMarket;
 36    // the network the market operates on
 37    chainId: ChainId;
 38    enabledFeatures?: {
 39      liquiditySwap?: boolean;
 40      staking?: boolean;
 41      governance?: boolean;
 42      faucet?: boolean;
 43      collateralRepay?: boolean;
 44      incentives?: boolean;
 45      permissions?: boolean;
 46      debtSwitch?: boolean;
 47      withdrawAndSwitch?: boolean;
 48      switch?: boolean;
 49    };
 50    permitDisabled?: boolean; // intended to be used for testnets
 51    isFork?: boolean;
 52    permissionComponent?: ReactNode;
 53    disableCharts?: boolean;
 54    subgraphUrl?: string;
 55    logo?: string;
 56    addresses: {
 57      LENDING_POOL_ADDRESS_PROVIDER: string;
 58      LENDING_POOL: string;
 59      WETH_GATEWAY?: string;
 60      SWAP_COLLATERAL_ADAPTER?: string;
 61      REPAY_WITH_COLLATERAL_ADAPTER?: string;
 62      DEBT_SWITCH_ADAPTER?: string;
 63      WITHDRAW_SWITCH_ADAPTER?: string;
 64      FAUCET?: string;
 65      PERMISSION_MANAGER?: string;
 66      WALLET_BALANCE_PROVIDER: string;
 67      L2_ENCODER?: string;
 68      UI_POOL_DATA_PROVIDER: string;
 69      UI_INCENTIVE_DATA_PROVIDER?: string;
 70      COLLECTOR?: string;
 71      V3_MIGRATOR?: string;
 72      GHO_TOKEN_ADDRESS?: string;
 73      GHO_UI_DATA_PROVIDER?: string;
 74    };
 75  };
 76  export enum CustomMarket {
 77    // v3 test networks, all v3.0.1
 78    proto_arbitrum_sepolia_v3 = 'proto_arbitrum_sepolia_v3',
 79    proto_fuji_v3 = 'proto_fuji_v3',
 80    proto_optimism_sepolia_v3 = 'proto_optimism_sepolia_v3',
 81    proto_scroll_sepolia_v3 = 'proto_scroll_sepolia_v3',
 82    proto_sepolia_v3 = 'proto_sepolia_v3',
 83    proto_base_sepolia_v3 = 'proto_base_sepolia_v3',
 84    // v3 mainnets
 85    proto_mainnet_v3 = 'proto_mainnet_v3',
 86    proto_optimism_v3 = 'proto_optimism_v3',
 87    proto_avalanche_v3 = 'proto_avalanche_v3',
 88    proto_polygon_v3 = 'proto_polygon_v3',
 89    proto_arbitrum_v3 = 'proto_arbitrum_v3',
 90    proto_metis_v3 = 'proto_metis_v3',
 91    proto_base_v3 = 'proto_base_v3',
 92    proto_gnosis_v3 = 'proto_gnosis_v3',
 93    proto_bnb_v3 = 'proto_bnb_v3',
 94    proto_scroll_v3 = 'proto_scroll_v3',
 95    proto_lido_v3 = 'proto_lido_v3',
 96    proto_zksync_v3 = 'proto_zksync_v3',
 97    proto_etherfi_v3 = 'proto_etherfi_v3',
 98    proto_linea_v3 = 'proto_linea_v3',
 99    proto_sonic_v3 = 'proto_sonic_v3',
100    proto_celo_v3 = 'proto_celo_v3',
101    // v2
102    proto_mainnet = 'proto_mainnet',
103    proto_avalanche = 'proto_avalanche',
104    proto_fuji = 'proto_fuji',
105    proto_polygon = 'proto_polygon',
106    // external
107    // permissioned_market = 'permissioned_market',
108  }
109  
110  const apiKey = process.env.NEXT_PUBLIC_SUBGRAPH_API_KEY;
111  
112  export const marketsData: {
113    [key in keyof typeof CustomMarket]: MarketDataType;
114  } = {
115    [CustomMarket.proto_mainnet_v3]: {
116      marketTitle: 'Core',
117      market: CustomMarket.proto_mainnet_v3,
118      chainId: ChainId.mainnet,
119      v3: true,
120      enabledFeatures: {
121        governance: true,
122        staking: true,
123        liquiditySwap: true,
124        collateralRepay: true,
125        incentives: true,
126        withdrawAndSwitch: true,
127        debtSwitch: true,
128        switch: true,
129      },
130      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/Cd2gEDVeqnjBn1hSeqFMitw8Q1iiyV9FYUZkLNRcL87g`,
131      addresses: {
132        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Ethereum.POOL_ADDRESSES_PROVIDER,
133        LENDING_POOL: AaveV3Ethereum.POOL,
134        WETH_GATEWAY: AaveV3Ethereum.WETH_GATEWAY,
135        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Ethereum.REPAY_WITH_COLLATERAL_ADAPTER,
136        SWAP_COLLATERAL_ADAPTER: AaveV3Ethereum.SWAP_COLLATERAL_ADAPTER,
137        WALLET_BALANCE_PROVIDER: AaveV3Ethereum.WALLET_BALANCE_PROVIDER,
138        UI_POOL_DATA_PROVIDER: AaveV3Ethereum.UI_POOL_DATA_PROVIDER,
139        UI_INCENTIVE_DATA_PROVIDER: AaveV3Ethereum.UI_INCENTIVE_DATA_PROVIDER,
140        COLLECTOR: AaveV3Ethereum.COLLECTOR,
141        GHO_TOKEN_ADDRESS: AaveV3Ethereum.ASSETS.GHO.UNDERLYING,
142        GHO_UI_DATA_PROVIDER: AaveV3Ethereum.UI_GHO_DATA_PROVIDER,
143        WITHDRAW_SWITCH_ADAPTER: AaveV3Ethereum.WITHDRAW_SWAP_ADAPTER,
144        DEBT_SWITCH_ADAPTER: AaveV3Ethereum.DEBT_SWAP_ADAPTER,
145      },
146    },
147    [CustomMarket.proto_lido_v3]: {
148      marketTitle: 'Prime',
149      market: CustomMarket.proto_lido_v3,
150      chainId: ChainId.mainnet,
151      v3: true,
152      logo: '/icons/markets/lido.svg',
153      enabledFeatures: {
154        governance: true,
155        staking: true,
156        liquiditySwap: true,
157        collateralRepay: true,
158        incentives: true,
159        withdrawAndSwitch: true,
160        debtSwitch: true,
161        switch: true,
162      },
163      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/5vxMbXRhG1oQr55MWC5j6qg78waWujx1wjeuEWDA6j3`,
164      addresses: {
165        LENDING_POOL_ADDRESS_PROVIDER: AaveV3EthereumLido.POOL_ADDRESSES_PROVIDER,
166        LENDING_POOL: AaveV3EthereumLido.POOL,
167        WETH_GATEWAY: AaveV3EthereumLido.WETH_GATEWAY,
168        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3EthereumLido.REPAY_WITH_COLLATERAL_ADAPTER,
169        SWAP_COLLATERAL_ADAPTER: AaveV3EthereumLido.SWAP_COLLATERAL_ADAPTER,
170        WALLET_BALANCE_PROVIDER: AaveV3EthereumLido.WALLET_BALANCE_PROVIDER,
171        UI_POOL_DATA_PROVIDER: AaveV3EthereumLido.UI_POOL_DATA_PROVIDER,
172        UI_INCENTIVE_DATA_PROVIDER: AaveV3EthereumLido.UI_INCENTIVE_DATA_PROVIDER,
173        COLLECTOR: AaveV3Ethereum.COLLECTOR,
174        WITHDRAW_SWITCH_ADAPTER: AaveV3EthereumLido.WITHDRAW_SWAP_ADAPTER,
175        DEBT_SWITCH_ADAPTER: AaveV3EthereumLido.DEBT_SWAP_ADAPTER,
176      },
177    },
178    [CustomMarket.proto_mainnet]: {
179      marketTitle: 'Ethereum',
180      market: CustomMarket.proto_mainnet,
181      chainId: ChainId.mainnet,
182      enabledFeatures: {
183        governance: true,
184        staking: true,
185        liquiditySwap: true,
186        collateralRepay: false,
187        incentives: true,
188        debtSwitch: true,
189        switch: true,
190      },
191      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/8wR23o1zkS4gpLqLNU4kG3JHYVucqGyopL5utGxP2q1N`,
192      addresses: {
193        LENDING_POOL_ADDRESS_PROVIDER: AaveV2Ethereum.POOL_ADDRESSES_PROVIDER,
194        LENDING_POOL: AaveV2Ethereum.POOL,
195        WETH_GATEWAY: AaveV2Ethereum.WETH_GATEWAY,
196        REPAY_WITH_COLLATERAL_ADAPTER: AaveV2Ethereum.REPAY_WITH_COLLATERAL_ADAPTER,
197        SWAP_COLLATERAL_ADAPTER: AaveV2Ethereum.SWAP_COLLATERAL_ADAPTER,
198        WALLET_BALANCE_PROVIDER: AaveV2Ethereum.WALLET_BALANCE_PROVIDER,
199        UI_POOL_DATA_PROVIDER: AaveV2Ethereum.UI_POOL_DATA_PROVIDER,
200        UI_INCENTIVE_DATA_PROVIDER: AaveV2Ethereum.UI_INCENTIVE_DATA_PROVIDER,
201        COLLECTOR: AaveV2Ethereum.COLLECTOR,
202        V3_MIGRATOR: AaveV2Ethereum.MIGRATION_HELPER,
203        DEBT_SWITCH_ADAPTER: AaveV2Ethereum.DEBT_SWAP_ADAPTER,
204      },
205    },
206    // [CustomMarket.permissioned_market]: {
207    //   marketTitle: 'Ethereum Permissioned Market example',
208    //   chainId: ChainId.mainnet,
209    //   enabledFeatures: {
210    //     // liquiditySwap: true,
211    //     // collateralRepay: false,
212    //     // incentives: true,
213    //     permissions: true,
214    //   },
215    //   permissionComponent: <PermissionView />,
216    //   addresses: {
217    //     LENDING_POOL_ADDRESS_PROVIDER: markets..POOL_ADDRESSES_PROVIDER,
218    //     LENDING_POOL: markets..POOL,
219    //     WETH_GATEWAY: markets..WETH_GATEWAY,
220    //     // REPAY_WITH_COLLATERAL_ADAPTER: markets..REPAY_WITH_COLLATERAL_ADAPTER,
221    //     // SWAP_COLLATERAL_ADAPTER: markets..SWAP_COLLATERAL_ADAPTER,
222    //     WALLET_BALANCE_PROVIDER: markets..WALLET_BALANCE_PROVIDER,
223    //     UI_POOL_DATA_PROVIDER: markets..UI_POOL_DATA_PROVIDER,
224    //     // UI_INCENTIVE_DATA_PROVIDER: markets..UI_INCENTIVE_DATA_PROVIDER,
225    //     PERMISSION_MANAGER: '<address here>',
226    //   },
227    // },
228  
229    [CustomMarket.proto_polygon]: {
230      marketTitle: 'Polygon',
231      market: CustomMarket.proto_polygon,
232      chainId: ChainId.polygon,
233      enabledFeatures: {
234        liquiditySwap: true,
235        incentives: true,
236        collateralRepay: false,
237        debtSwitch: true,
238      },
239      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/H1Et77RZh3XEf27vkAmJyzgCME2RSFLtDS2f4PPW6CGp`,
240      addresses: {
241        LENDING_POOL_ADDRESS_PROVIDER: AaveV2Polygon.POOL_ADDRESSES_PROVIDER,
242        LENDING_POOL: AaveV2Polygon.POOL,
243        WETH_GATEWAY: AaveV2Polygon.WETH_GATEWAY,
244        SWAP_COLLATERAL_ADAPTER: AaveV2Polygon.SWAP_COLLATERAL_ADAPTER,
245        REPAY_WITH_COLLATERAL_ADAPTER: AaveV2Polygon.REPAY_WITH_COLLATERAL_ADAPTER,
246        WALLET_BALANCE_PROVIDER: AaveV2Polygon.WALLET_BALANCE_PROVIDER,
247        UI_POOL_DATA_PROVIDER: AaveV2Polygon.UI_POOL_DATA_PROVIDER,
248        UI_INCENTIVE_DATA_PROVIDER: AaveV2Polygon.UI_INCENTIVE_DATA_PROVIDER,
249        COLLECTOR: AaveV2Polygon.COLLECTOR,
250        V3_MIGRATOR: AaveV2Polygon.MIGRATION_HELPER,
251        DEBT_SWITCH_ADAPTER: AaveV2Polygon.DEBT_SWAP_ADAPTER,
252      },
253    },
254    [CustomMarket.proto_avalanche]: {
255      marketTitle: 'Avalanche',
256      market: CustomMarket.proto_avalanche,
257      chainId: ChainId.avalanche,
258      enabledFeatures: {
259        liquiditySwap: true,
260        incentives: true,
261        collateralRepay: false,
262        debtSwitch: true,
263        switch: true,
264      },
265      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/EZvK18pMhwiCjxwesRLTg81fP33WnR6BnZe5Cvma3H1C`,
266      addresses: {
267        LENDING_POOL_ADDRESS_PROVIDER: AaveV2Avalanche.POOL_ADDRESSES_PROVIDER,
268        LENDING_POOL: AaveV2Avalanche.POOL,
269        WETH_GATEWAY: AaveV2Avalanche.WETH_GATEWAY,
270        SWAP_COLLATERAL_ADAPTER: AaveV2Avalanche.SWAP_COLLATERAL_ADAPTER,
271        REPAY_WITH_COLLATERAL_ADAPTER: AaveV2Avalanche.REPAY_WITH_COLLATERAL_ADAPTER,
272        WALLET_BALANCE_PROVIDER: AaveV2Avalanche.WALLET_BALANCE_PROVIDER,
273        UI_POOL_DATA_PROVIDER: AaveV2Avalanche.UI_POOL_DATA_PROVIDER,
274        UI_INCENTIVE_DATA_PROVIDER: AaveV2Avalanche.UI_INCENTIVE_DATA_PROVIDER,
275        COLLECTOR: AaveV2Avalanche.COLLECTOR,
276        V3_MIGRATOR: AaveV2Avalanche.MIGRATION_HELPER,
277        DEBT_SWITCH_ADAPTER: AaveV2Avalanche.DEBT_SWAP_ADAPTER,
278      },
279    },
280    // v3
281    [CustomMarket.proto_sepolia_v3]: {
282      marketTitle: 'Ethereum Sepolia',
283      market: CustomMarket.proto_sepolia_v3,
284      v3: true,
285      chainId: ChainId.sepolia,
286      enabledFeatures: {
287        faucet: true,
288      },
289      addresses: {
290        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Sepolia.POOL_ADDRESSES_PROVIDER,
291        LENDING_POOL: AaveV3Sepolia.POOL,
292        WETH_GATEWAY: AaveV3Sepolia.WETH_GATEWAY,
293        FAUCET: AaveV3Sepolia.FAUCET,
294        WALLET_BALANCE_PROVIDER: AaveV3Sepolia.WALLET_BALANCE_PROVIDER,
295        UI_POOL_DATA_PROVIDER: AaveV3Sepolia.UI_POOL_DATA_PROVIDER,
296        UI_INCENTIVE_DATA_PROVIDER: AaveV3Sepolia.UI_INCENTIVE_DATA_PROVIDER,
297        GHO_TOKEN_ADDRESS: '0xc4bF5CbDaBE595361438F8c6a187bDc330539c60',
298        GHO_UI_DATA_PROVIDER: '0x69B9843A16a6E9933125EBD97659BA3CCbE2Ef8A',
299      },
300    },
301    [CustomMarket.proto_base_v3]: {
302      marketTitle: 'Base',
303      market: CustomMarket.proto_base_v3,
304      v3: true,
305      chainId: ChainId.base,
306      enabledFeatures: {
307        incentives: true,
308        liquiditySwap: true,
309        withdrawAndSwitch: true,
310        collateralRepay: true,
311        debtSwitch: true,
312        switch: true,
313      },
314      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/GQFbb95cE6d8mV989mL5figjaGaKCQB3xqYrr1bRyXqF`,
315      addresses: {
316        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Base.POOL_ADDRESSES_PROVIDER,
317        LENDING_POOL: AaveV3Base.POOL,
318        WETH_GATEWAY: AaveV3Base.WETH_GATEWAY,
319        WALLET_BALANCE_PROVIDER: AaveV3Base.WALLET_BALANCE_PROVIDER,
320        UI_POOL_DATA_PROVIDER: AaveV3Base.UI_POOL_DATA_PROVIDER,
321        UI_INCENTIVE_DATA_PROVIDER: AaveV3Base.UI_INCENTIVE_DATA_PROVIDER,
322        L2_ENCODER: AaveV3Base.L2_ENCODER,
323        COLLECTOR: AaveV3Base.COLLECTOR,
324        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Base.REPAY_WITH_COLLATERAL_ADAPTER,
325        SWAP_COLLATERAL_ADAPTER: AaveV3Base.SWAP_COLLATERAL_ADAPTER,
326        WITHDRAW_SWITCH_ADAPTER: AaveV3Base.WITHDRAW_SWAP_ADAPTER,
327        DEBT_SWITCH_ADAPTER: AaveV3Base.DEBT_SWAP_ADAPTER,
328        GHO_TOKEN_ADDRESS: '0x6bb7a212910682dcfdbd5bcbb3e28fb4e8da10ee',
329      },
330    },
331    [CustomMarket.proto_arbitrum_sepolia_v3]: {
332      marketTitle: 'Arbitrum Sepolia',
333      market: CustomMarket.proto_arbitrum_sepolia_v3,
334      v3: true,
335      permitDisabled: true,
336      chainId: ChainId.arbitrum_sepolia,
337      addresses: {
338        LENDING_POOL_ADDRESS_PROVIDER: AaveV3ArbitrumSepolia.POOL_ADDRESSES_PROVIDER,
339        LENDING_POOL: AaveV3ArbitrumSepolia.POOL,
340        WETH_GATEWAY: AaveV3ArbitrumSepolia.WETH_GATEWAY,
341        // FAUCET: AaveV3ArbitrumSepolia.FAUCET,
342        WALLET_BALANCE_PROVIDER: AaveV3ArbitrumSepolia.WALLET_BALANCE_PROVIDER,
343        UI_POOL_DATA_PROVIDER: AaveV3ArbitrumSepolia.UI_POOL_DATA_PROVIDER,
344        UI_INCENTIVE_DATA_PROVIDER: AaveV3ArbitrumSepolia.UI_INCENTIVE_DATA_PROVIDER,
345        L2_ENCODER: AaveV3ArbitrumSepolia.L2_ENCODER,
346        GHO_TOKEN_ADDRESS: '0xb13Cfa6f8B2Eed2C37fB00fF0c1A59807C585810',
347      },
348    },
349    [CustomMarket.proto_arbitrum_v3]: {
350      marketTitle: 'Arbitrum',
351      market: CustomMarket.proto_arbitrum_v3,
352      v3: true,
353      chainId: ChainId.arbitrum_one,
354      enabledFeatures: {
355        incentives: true,
356        liquiditySwap: true,
357        collateralRepay: true,
358        debtSwitch: true,
359        withdrawAndSwitch: true,
360        switch: true,
361      },
362      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/DLuE98kEb5pQNXAcKFQGQgfSQ57Xdou4jnVbAEqMfy3B`,
363      addresses: {
364        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Arbitrum.POOL_ADDRESSES_PROVIDER,
365        LENDING_POOL: AaveV3Arbitrum.POOL,
366        WETH_GATEWAY: AaveV3Arbitrum.WETH_GATEWAY,
367        WALLET_BALANCE_PROVIDER: AaveV3Arbitrum.WALLET_BALANCE_PROVIDER,
368        UI_POOL_DATA_PROVIDER: AaveV3Arbitrum.UI_POOL_DATA_PROVIDER,
369        UI_INCENTIVE_DATA_PROVIDER: AaveV3Arbitrum.UI_INCENTIVE_DATA_PROVIDER,
370        L2_ENCODER: AaveV3Arbitrum.L2_ENCODER,
371        COLLECTOR: AaveV3Arbitrum.COLLECTOR,
372        SWAP_COLLATERAL_ADAPTER: AaveV3Arbitrum.SWAP_COLLATERAL_ADAPTER,
373        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Arbitrum.REPAY_WITH_COLLATERAL_ADAPTER,
374        DEBT_SWITCH_ADAPTER: AaveV3Arbitrum.DEBT_SWAP_ADAPTER,
375        WITHDRAW_SWITCH_ADAPTER: AaveV3Arbitrum.WITHDRAW_SWAP_ADAPTER,
376        GHO_TOKEN_ADDRESS: AaveV3Arbitrum.ASSETS.GHO.UNDERLYING,
377      },
378    },
379    [CustomMarket.proto_base_sepolia_v3]: {
380      marketTitle: 'Base Sepolia',
381      market: CustomMarket.proto_base_sepolia_v3,
382      v3: true,
383      permitDisabled: true,
384      chainId: ChainId.base_sepolia,
385      addresses: {
386        LENDING_POOL_ADDRESS_PROVIDER: '0xd449FeD49d9C443688d6816fE6872F21402e41de', // AaveV3BaseSepolia.POOL_ADDRESSES_PROVIDER,
387        LENDING_POOL: '0x07eA79F68B2B3df564D0A34F8e19D9B1e339814b', // AaveV3BaseSepolia.POOL,
388        WETH_GATEWAY: '0xF6Dac650dA5616Bc3206e969D7868e7c25805171', // AaveV3BaseSepolia.WETH_GATEWAY,
389        WALLET_BALANCE_PROVIDER: '0xdeB02056E277174566A1c425a8e60550142B70A2', // AaveV3BaseSepolia.WALLET_BALANCE_PROVIDER,
390        UI_POOL_DATA_PROVIDER: '0x884702E4b1d0a2900369E83d5765d537F469cAC9', // AaveV3BaseSepolia.UI_POOL_DATA_PROVIDER,
391        UI_INCENTIVE_DATA_PROVIDER: '0x52Cb5CDf732889be3fd5d5E3A5D589446e060C0D', // AaveV3BaseSepolia.UI_INCENTIVE_DATA_PROVIDER,
392        L2_ENCODER: '0x458d281bFFCE958E34571B33F1F26Bd42Aa27c44', // AaveV3BaseSepolia.L2_ENCODER,
393      },
394    },
395    [CustomMarket.proto_avalanche_v3]: {
396      marketTitle: 'Avalanche',
397      market: CustomMarket.proto_avalanche_v3,
398      v3: true,
399      chainId: ChainId.avalanche,
400      enabledFeatures: {
401        liquiditySwap: true,
402        incentives: true,
403        collateralRepay: true,
404        debtSwitch: true,
405        withdrawAndSwitch: true,
406        switch: true,
407      },
408      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/2h9woxy8RTjHu1HJsCEnmzpPHFArU33avmUh4f71JpVn`,
409      addresses: {
410        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Avalanche.POOL_ADDRESSES_PROVIDER,
411        LENDING_POOL: AaveV3Avalanche.POOL,
412        WETH_GATEWAY: AaveV3Avalanche.WETH_GATEWAY,
413        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Avalanche.REPAY_WITH_COLLATERAL_ADAPTER,
414        SWAP_COLLATERAL_ADAPTER: AaveV3Avalanche.SWAP_COLLATERAL_ADAPTER,
415        WALLET_BALANCE_PROVIDER: AaveV3Avalanche.WALLET_BALANCE_PROVIDER,
416        UI_POOL_DATA_PROVIDER: AaveV3Avalanche.UI_POOL_DATA_PROVIDER,
417        UI_INCENTIVE_DATA_PROVIDER: AaveV3Avalanche.UI_INCENTIVE_DATA_PROVIDER,
418        COLLECTOR: AaveV3Avalanche.COLLECTOR,
419        DEBT_SWITCH_ADAPTER: AaveV3Avalanche.DEBT_SWAP_ADAPTER,
420        WITHDRAW_SWITCH_ADAPTER: AaveV3Avalanche.WITHDRAW_SWAP_ADAPTER,
421      },
422    },
423    [CustomMarket.proto_fuji_v3]: {
424      marketTitle: 'Avalanche Fuji',
425      market: CustomMarket.proto_fuji_v3,
426      v3: true,
427      chainId: ChainId.fuji,
428      enabledFeatures: {
429        faucet: true,
430        incentives: true,
431      },
432      addresses: {
433        LENDING_POOL_ADDRESS_PROVIDER: '0xfb87056c0587923f15EB0aABc7d0572450Cc8003', // AaveV3Fuji.POOL_ADDRESSES_PROVIDER,
434        LENDING_POOL: '0xccEa5C65f6d4F465B71501418b88FBe4e7071283', // AaveV3Fuji.POOL,
435        WETH_GATEWAY: '0x8A007E495449ffeda4C2d65f14eE31f8Bcb022CF', // AaveV3Fuji.WETH_GATEWAY,
436        FAUCET: '0xBCcD21ae43139bEF545e72e20E78f039A3Ac1b96', // AaveV3Fuji.FAUCET,
437        WALLET_BALANCE_PROVIDER: '0xfFE3778c51e93EBf68f5d0a83c794E7f623024dd', // AaveV3Fuji.WALLET_BALANCE_PROVIDER,
438        UI_POOL_DATA_PROVIDER: '0x279c790Afcd547e2f20d896c5DDEe3846b9790B5', // AaveV3Fuji.UI_POOL_DATA_PROVIDER,
439        UI_INCENTIVE_DATA_PROVIDER: '0x1EFf285a4E34217495b5531151bffa222A94A4F9', // AaveV3Fuji.UI_INCENTIVE_DATA_PROVIDER,
440      },
441    },
442    [CustomMarket.proto_optimism_sepolia_v3]: {
443      marketTitle: 'Optimism Sepolia',
444      market: CustomMarket.proto_optimism_sepolia_v3,
445      v3: true,
446      permitDisabled: true,
447      chainId: ChainId.optimism_sepolia,
448      addresses: {
449        LENDING_POOL_ADDRESS_PROVIDER: AaveV3OptimismSepolia.POOL_ADDRESSES_PROVIDER,
450        LENDING_POOL: AaveV3OptimismSepolia.POOL,
451        WETH_GATEWAY: AaveV3OptimismSepolia.WETH_GATEWAY,
452        // FAUCET: AaveV3OptimismSepolia.FAUCET,
453        WALLET_BALANCE_PROVIDER: AaveV3OptimismSepolia.WALLET_BALANCE_PROVIDER,
454        UI_POOL_DATA_PROVIDER: AaveV3OptimismSepolia.UI_POOL_DATA_PROVIDER,
455        UI_INCENTIVE_DATA_PROVIDER: AaveV3OptimismSepolia.UI_INCENTIVE_DATA_PROVIDER,
456        L2_ENCODER: AaveV3OptimismSepolia.L2_ENCODER,
457      },
458    },
459    [CustomMarket.proto_scroll_sepolia_v3]: {
460      marketTitle: 'Scroll Sepolia',
461      market: CustomMarket.proto_scroll_sepolia_v3,
462      v3: true,
463      chainId: ChainId.scroll_sepolia,
464      enabledFeatures: {
465        faucet: true,
466        incentives: true,
467      },
468      addresses: {
469        LENDING_POOL_ADDRESS_PROVIDER: AaveV3ScrollSepolia.POOL_ADDRESSES_PROVIDER,
470        LENDING_POOL: AaveV3ScrollSepolia.POOL,
471        WETH_GATEWAY: AaveV3ScrollSepolia.WETH_GATEWAY,
472        FAUCET: AaveV3ScrollSepolia.FAUCET,
473        WALLET_BALANCE_PROVIDER: AaveV3ScrollSepolia.WALLET_BALANCE_PROVIDER,
474        UI_POOL_DATA_PROVIDER: AaveV3ScrollSepolia.UI_POOL_DATA_PROVIDER,
475        UI_INCENTIVE_DATA_PROVIDER: AaveV3ScrollSepolia.UI_INCENTIVE_DATA_PROVIDER,
476        L2_ENCODER: AaveV3ScrollSepolia.L2_ENCODER,
477      },
478    },
479    [CustomMarket.proto_sonic_v3]: {
480      marketTitle: 'Sonic',
481      market: CustomMarket.proto_sonic_v3,
482      chainId: ChainId.sonic,
483      v3: true,
484      subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/FQcacc4ZJaQVS9euWb76nvpSq2GxavBnUM6DU6tmspbi`,
485      addresses: {
486        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Sonic.POOL_ADDRESSES_PROVIDER,
487        LENDING_POOL: AaveV3Sonic.POOL,
488        WETH_GATEWAY: AaveV3Sonic.WETH_GATEWAY,
489        WALLET_BALANCE_PROVIDER: AaveV3Sonic.WALLET_BALANCE_PROVIDER,
490        UI_POOL_DATA_PROVIDER: AaveV3Sonic.UI_POOL_DATA_PROVIDER,
491        UI_INCENTIVE_DATA_PROVIDER: AaveV3Sonic.UI_INCENTIVE_DATA_PROVIDER,
492        COLLECTOR: AaveV3Sonic.COLLECTOR,
493      },
494    },
495    [CustomMarket.proto_optimism_v3]: {
496      marketTitle: 'OP',
497      market: CustomMarket.proto_optimism_v3,
498      v3: true,
499      chainId: ChainId.optimism,
500      enabledFeatures: {
501        incentives: true,
502        collateralRepay: true,
503        liquiditySwap: true,
504        debtSwitch: true,
505        withdrawAndSwitch: true,
506        switch: true,
507      },
508      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/DSfLz8oQBUeU5atALgUFQKMTSYV9mZAVYp4noLSXAfvb`,
509      addresses: {
510        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Optimism.POOL_ADDRESSES_PROVIDER,
511        LENDING_POOL: AaveV3Optimism.POOL,
512        WETH_GATEWAY: AaveV3Optimism.WETH_GATEWAY,
513        WALLET_BALANCE_PROVIDER: AaveV3Optimism.WALLET_BALANCE_PROVIDER,
514        UI_POOL_DATA_PROVIDER: AaveV3Optimism.UI_POOL_DATA_PROVIDER,
515        UI_INCENTIVE_DATA_PROVIDER: AaveV3Optimism.UI_INCENTIVE_DATA_PROVIDER,
516        L2_ENCODER: AaveV3Optimism.L2_ENCODER,
517        COLLECTOR: AaveV3Optimism.COLLECTOR,
518        SWAP_COLLATERAL_ADAPTER: AaveV3Optimism.SWAP_COLLATERAL_ADAPTER,
519        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Optimism.REPAY_WITH_COLLATERAL_ADAPTER,
520        DEBT_SWITCH_ADAPTER: AaveV3Optimism.DEBT_SWAP_ADAPTER,
521        WITHDRAW_SWITCH_ADAPTER: AaveV3Optimism.WITHDRAW_SWAP_ADAPTER,
522      },
523    },
524    [CustomMarket.proto_polygon_v3]: {
525      marketTitle: 'Polygon',
526      market: CustomMarket.proto_polygon_v3,
527      chainId: ChainId.polygon,
528      v3: true,
529      enabledFeatures: {
530        liquiditySwap: true,
531        incentives: true,
532        collateralRepay: true,
533        debtSwitch: true,
534        withdrawAndSwitch: true,
535        switch: true,
536      },
537      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/Co2URyXjnxaw8WqxKyVHdirq9Ahhm5vcTs4dMedAq211`,
538      addresses: {
539        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Polygon.POOL_ADDRESSES_PROVIDER,
540        LENDING_POOL: AaveV3Polygon.POOL,
541        WETH_GATEWAY: AaveV3Polygon.WETH_GATEWAY,
542        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Polygon.REPAY_WITH_COLLATERAL_ADAPTER,
543        SWAP_COLLATERAL_ADAPTER: AaveV3Polygon.SWAP_COLLATERAL_ADAPTER,
544        WALLET_BALANCE_PROVIDER: AaveV3Polygon.WALLET_BALANCE_PROVIDER,
545        UI_POOL_DATA_PROVIDER: AaveV3Polygon.UI_POOL_DATA_PROVIDER,
546        UI_INCENTIVE_DATA_PROVIDER: AaveV3Polygon.UI_INCENTIVE_DATA_PROVIDER,
547        COLLECTOR: AaveV3Polygon.COLLECTOR,
548        DEBT_SWITCH_ADAPTER: AaveV3Polygon.DEBT_SWAP_ADAPTER,
549        WITHDRAW_SWITCH_ADAPTER: AaveV3Polygon.WITHDRAW_SWAP_ADAPTER,
550      },
551    },
552  
553    [CustomMarket.proto_fuji]: {
554      marketTitle: 'Avalanche Fuji',
555      market: CustomMarket.proto_fuji,
556      chainId: ChainId.fuji,
557      enabledFeatures: {
558        faucet: true,
559        incentives: true,
560      },
561      addresses: {
562        LENDING_POOL_ADDRESS_PROVIDER: AaveV2Fuji.POOL_ADDRESSES_PROVIDER,
563        LENDING_POOL: AaveV2Fuji.POOL,
564        WETH_GATEWAY: AaveV2Fuji.WETH_GATEWAY,
565        FAUCET: AaveV2Fuji.FAUCET,
566        WALLET_BALANCE_PROVIDER: AaveV2Fuji.WALLET_BALANCE_PROVIDER,
567        UI_POOL_DATA_PROVIDER: AaveV2Fuji.UI_POOL_DATA_PROVIDER,
568        UI_INCENTIVE_DATA_PROVIDER: AaveV2Fuji.UI_INCENTIVE_DATA_PROVIDER,
569      },
570    },
571    [CustomMarket.proto_metis_v3]: {
572      marketTitle: 'Metis',
573      market: CustomMarket.proto_metis_v3,
574      chainId: ChainId.metis_andromeda,
575      v3: true,
576      enabledFeatures: {
577        incentives: true,
578      },
579      subgraphUrl: 'https://metisapi.0xgraph.xyz/subgraphs/name/aave/protocol-v3-metis',
580      addresses: {
581        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Metis.POOL_ADDRESSES_PROVIDER,
582        LENDING_POOL: AaveV3Metis.POOL,
583        WETH_GATEWAY: '0x0', // not applicable for Metis
584        WALLET_BALANCE_PROVIDER: AaveV3Metis.WALLET_BALANCE_PROVIDER,
585        UI_POOL_DATA_PROVIDER: AaveV3Metis.UI_POOL_DATA_PROVIDER,
586        UI_INCENTIVE_DATA_PROVIDER: AaveV3Metis.UI_INCENTIVE_DATA_PROVIDER,
587        COLLECTOR: AaveV3Metis.COLLECTOR,
588      },
589    },
590    [CustomMarket.proto_gnosis_v3]: {
591      marketTitle: 'Gnosis',
592      market: CustomMarket.proto_gnosis_v3,
593      chainId: ChainId.xdai,
594      v3: true,
595      enabledFeatures: {
596        liquiditySwap: true,
597        collateralRepay: true,
598        debtSwitch: true,
599        withdrawAndSwitch: true,
600        switch: false,
601      },
602      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/HtcDaL8L8iZ2KQNNS44EBVmLruzxuNAz1RkBYdui1QUT`,
603      addresses: {
604        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Gnosis.POOL_ADDRESSES_PROVIDER,
605        LENDING_POOL: AaveV3Gnosis.POOL,
606        WETH_GATEWAY: AaveV3Gnosis.WETH_GATEWAY,
607        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3Gnosis.REPAY_WITH_COLLATERAL_ADAPTER,
608        SWAP_COLLATERAL_ADAPTER: AaveV3Gnosis.SWAP_COLLATERAL_ADAPTER,
609        WALLET_BALANCE_PROVIDER: AaveV3Gnosis.WALLET_BALANCE_PROVIDER,
610        UI_POOL_DATA_PROVIDER: AaveV3Gnosis.UI_POOL_DATA_PROVIDER,
611        UI_INCENTIVE_DATA_PROVIDER: AaveV3Gnosis.UI_INCENTIVE_DATA_PROVIDER,
612        COLLECTOR: AaveV3Gnosis.COLLECTOR,
613        DEBT_SWITCH_ADAPTER: AaveV3Gnosis.DEBT_SWAP_ADAPTER,
614        WITHDRAW_SWITCH_ADAPTER: AaveV3Gnosis.WITHDRAW_SWAP_ADAPTER,
615      },
616    },
617    [CustomMarket.proto_bnb_v3]: {
618      marketTitle: 'BNB Chain',
619      market: CustomMarket.proto_bnb_v3,
620      chainId: ChainId.bnb,
621      v3: true,
622      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/7Jk85XgkV1MQ7u56hD8rr65rfASbayJXopugWkUoBMnZ`,
623      enabledFeatures: {
624        liquiditySwap: true,
625        collateralRepay: true,
626        debtSwitch: true,
627        withdrawAndSwitch: true,
628        switch: true,
629      },
630      addresses: {
631        LENDING_POOL_ADDRESS_PROVIDER: AaveV3BNB.POOL_ADDRESSES_PROVIDER,
632        LENDING_POOL: AaveV3BNB.POOL,
633        WETH_GATEWAY: AaveV3BNB.WETH_GATEWAY,
634        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3BNB.REPAY_WITH_COLLATERAL_ADAPTER,
635        SWAP_COLLATERAL_ADAPTER: AaveV3BNB.SWAP_COLLATERAL_ADAPTER,
636        WALLET_BALANCE_PROVIDER: AaveV3BNB.WALLET_BALANCE_PROVIDER,
637        UI_POOL_DATA_PROVIDER: AaveV3BNB.UI_POOL_DATA_PROVIDER,
638        UI_INCENTIVE_DATA_PROVIDER: AaveV3BNB.UI_INCENTIVE_DATA_PROVIDER,
639        COLLECTOR: AaveV3BNB.COLLECTOR,
640        DEBT_SWITCH_ADAPTER: AaveV3BNB.DEBT_SWAP_ADAPTER,
641        WITHDRAW_SWITCH_ADAPTER: AaveV3BNB.WITHDRAW_SWAP_ADAPTER,
642      },
643    },
644    [CustomMarket.proto_scroll_v3]: {
645      marketTitle: 'Scroll',
646      market: CustomMarket.proto_scroll_v3,
647      chainId: ChainId.scroll,
648      v3: true,
649      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/74JwenoHZb2aAYVGCCSdPWzi9mm745dyHyQQVoZ7Sbub`,
650      addresses: {
651        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Scroll.POOL_ADDRESSES_PROVIDER,
652        LENDING_POOL: AaveV3Scroll.POOL,
653        WETH_GATEWAY: AaveV3Scroll.WETH_GATEWAY,
654        WALLET_BALANCE_PROVIDER: AaveV3Scroll.WALLET_BALANCE_PROVIDER,
655        UI_POOL_DATA_PROVIDER: AaveV3Scroll.UI_POOL_DATA_PROVIDER,
656        UI_INCENTIVE_DATA_PROVIDER: AaveV3Scroll.UI_INCENTIVE_DATA_PROVIDER,
657        COLLECTOR: AaveV3Scroll.COLLECTOR,
658      },
659    },
660    [CustomMarket.proto_zksync_v3]: {
661      marketTitle: 'ZKsync',
662      market: CustomMarket.proto_zksync_v3,
663      chainId: ChainId.zksync,
664      v3: true,
665      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/ENYSc8G3WvrbhWH8UZHrqPWYRcuyCaNmaTmoVp7uzabM`,
666      addresses: {
667        LENDING_POOL_ADDRESS_PROVIDER: AaveV3ZkSync.POOL_ADDRESSES_PROVIDER,
668        LENDING_POOL: AaveV3ZkSync.POOL,
669        WETH_GATEWAY: AaveV3ZkSync.WETH_GATEWAY,
670        WALLET_BALANCE_PROVIDER: AaveV3ZkSync.WALLET_BALANCE_PROVIDER,
671        UI_POOL_DATA_PROVIDER: AaveV3ZkSync.UI_POOL_DATA_PROVIDER,
672        UI_INCENTIVE_DATA_PROVIDER: AaveV3ZkSync.UI_INCENTIVE_DATA_PROVIDER,
673        COLLECTOR: AaveV3ZkSync.COLLECTOR,
674      },
675    },
676    [CustomMarket.proto_linea_v3]: {
677      marketTitle: 'Linea',
678      market: CustomMarket.proto_linea_v3,
679      chainId: ChainId.linea,
680      v3: true,
681      subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/Gz2kjnmRV1fQj3R8cssoZa5y9VTanhrDo4Mh7nWW1wHa`,
682      addresses: {
683        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Linea.POOL_ADDRESSES_PROVIDER,
684        LENDING_POOL: AaveV3Linea.POOL,
685        WETH_GATEWAY: AaveV3Linea.WETH_GATEWAY,
686        WALLET_BALANCE_PROVIDER: AaveV3Linea.WALLET_BALANCE_PROVIDER,
687        UI_POOL_DATA_PROVIDER: AaveV3Linea.UI_POOL_DATA_PROVIDER,
688        UI_INCENTIVE_DATA_PROVIDER: AaveV3Linea.UI_INCENTIVE_DATA_PROVIDER,
689        COLLECTOR: AaveV3Linea.COLLECTOR,
690      },
691    },
692  
693    [CustomMarket.proto_celo_v3]: {
694      marketTitle: 'Celo',
695      market: CustomMarket.proto_celo_v3,
696      chainId: ChainId.celo,
697      v3: true,
698      subgraphUrl: `https://gateway.thegraph.com/api/${apiKey}/subgraphs/id/GAVWZzGwQ6d6QbFojyFWxpZ2GB9Rf5hZgGyJHCEry8kn`,
699      addresses: {
700        LENDING_POOL_ADDRESS_PROVIDER: AaveV3Celo.POOL_ADDRESSES_PROVIDER,
701        LENDING_POOL: AaveV3Celo.POOL,
702        WALLET_BALANCE_PROVIDER: AaveV3Celo.WALLET_BALANCE_PROVIDER,
703        UI_POOL_DATA_PROVIDER: AaveV3Celo.UI_POOL_DATA_PROVIDER,
704        UI_INCENTIVE_DATA_PROVIDER: AaveV3Celo.UI_INCENTIVE_DATA_PROVIDER,
705        COLLECTOR: AaveV3Celo.COLLECTOR,
706      },
707    },
708    [CustomMarket.proto_etherfi_v3]: {
709      marketTitle: 'EtherFi',
710      market: CustomMarket.proto_etherfi_v3,
711      chainId: ChainId.mainnet,
712      v3: true,
713      logo: '/icons/markets/etherfi.svg',
714      enabledFeatures: {
715        governance: true,
716        staking: true,
717        liquiditySwap: true,
718        collateralRepay: true,
719        incentives: true,
720        withdrawAndSwitch: true,
721        debtSwitch: true,
722        switch: false,
723      },
724      subgraphUrl: `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/8o4HGApJkAqnvxAHShG4w5xiXihHyL7HkeDdQdRUYmqZ`,
725      addresses: {
726        LENDING_POOL_ADDRESS_PROVIDER: AaveV3EthereumEtherFi.POOL_ADDRESSES_PROVIDER,
727        LENDING_POOL: AaveV3EthereumEtherFi.POOL,
728        WETH_GATEWAY: AaveV3EthereumEtherFi.WETH_GATEWAY,
729        REPAY_WITH_COLLATERAL_ADAPTER: AaveV3EthereumEtherFi.REPAY_WITH_COLLATERAL_ADAPTER,
730        SWAP_COLLATERAL_ADAPTER: AaveV3EthereumEtherFi.SWAP_COLLATERAL_ADAPTER,
731        WALLET_BALANCE_PROVIDER: AaveV3EthereumEtherFi.WALLET_BALANCE_PROVIDER,
732        UI_POOL_DATA_PROVIDER: AaveV3EthereumEtherFi.UI_POOL_DATA_PROVIDER,
733        UI_INCENTIVE_DATA_PROVIDER: AaveV3EthereumEtherFi.UI_INCENTIVE_DATA_PROVIDER,
734        COLLECTOR: AaveV3EthereumEtherFi.COLLECTOR,
735        WITHDRAW_SWITCH_ADAPTER: AaveV3EthereumEtherFi.WITHDRAW_SWAP_ADAPTER,
736        DEBT_SWITCH_ADAPTER: AaveV3EthereumEtherFi.DEBT_SWAP_ADAPTER,
737      },
738    },
739  } as const;