diff --git a/packages/sushi/src/router/data-fetcher.ts b/packages/sushi/src/router/data-fetcher.ts index 5866e6defc..de32703cd4 100644 --- a/packages/sushi/src/router/data-fetcher.ts +++ b/packages/sushi/src/router/data-fetcher.ts @@ -32,6 +32,7 @@ import { GlyphV4Provider } from './liquidity-providers/GlyphV4.js' import { GravityFinanceProvider } from './liquidity-providers/GravityFinance.js' import { HoneySwapProvider } from './liquidity-providers/HoneySwap.js' import { HorizonProvider } from './liquidity-providers/Horizon.js' +import { HydrexProvider } from './liquidity-providers/Hydrex.js' import { HyperBlastProvider } from './liquidity-providers/HyperBlast.js' import { JetSwapProvider } from './liquidity-providers/JetSwap.js' import { KimV4Provider } from './liquidity-providers/KimV4.js' @@ -218,6 +219,7 @@ export class DataFetcher { HoneySwapProvider, HorizonProvider, HyperBlastProvider, + HydrexProvider, JetSwapProvider, KimV4Provider, KinetixV2Provider, diff --git a/packages/sushi/src/router/liquidity-providers/Hydrex.ts b/packages/sushi/src/router/liquidity-providers/Hydrex.ts new file mode 100644 index 0000000000..47315a06ec --- /dev/null +++ b/packages/sushi/src/router/liquidity-providers/Hydrex.ts @@ -0,0 +1,29 @@ +import { PublicClient } from 'viem' +import { ChainId } from '../../chain/index.js' +import { AlgebraV2BaseProvider } from './AlgebraV2Base.js' +import { LiquidityProviders } from './LiquidityProvider.js' + +export class HydrexProvider extends AlgebraV2BaseProvider { + constructor(chainId: ChainId, web3Client: PublicClient) { + const factory = { + [ChainId.BASE]: '0x36077D39cdC65E1e3FB65810430E5b2c4D5fA29E', + } as const + const initCodeHash = { + [ChainId.BASE]: + '0xa18736c3ee97fe3c96c9428c0cc2a9116facec18e84f95f9da30543f8238a782', + } as const + const poolDeployer = { + [ChainId.BASE]: '0x1595A5D101d69D2a2bAB2976839cC8eeEb13Ab94', + } as const + const tickLens = { + [ChainId.BASE]: '0x0044e9642381607Eee1CCF06bae2378C3cB9B863', + } as const + super(chainId, web3Client, factory, initCodeHash, tickLens, poolDeployer) + } + getType(): LiquidityProviders { + return LiquidityProviders.Hydrex + } + getPoolProviderName(): string { + return 'Hydrex' + } +} diff --git a/packages/sushi/src/router/liquidity-providers/LiquidityProvider.ts b/packages/sushi/src/router/liquidity-providers/LiquidityProvider.ts index 26d4b4927e..f2a5bc6bfd 100644 --- a/packages/sushi/src/router/liquidity-providers/LiquidityProvider.ts +++ b/packages/sushi/src/router/liquidity-providers/LiquidityProvider.ts @@ -84,6 +84,7 @@ export enum LiquidityProviders { MMFinance = 'MMFinance', VVSFlawless = 'VVSFlawless', AerodromeSlipstream = 'AerodromeSlipstream', + Hydrex = 'Hydrex', AerodromeSlipstreamV2 = 'AerodromeSlipstreamV2', VelodromeSlipstream = 'VelodromeSlipstream', NileV2 = 'NileV2', @@ -274,4 +275,5 @@ export const UniV3LiquidityProviders: LiquidityProviders[] = [ LiquidityProviders.VelodromeSlipstream, LiquidityProviders.NileV3, LiquidityProviders.KodiakV3, + LiquidityProviders.Hydrex, ] diff --git a/packages/sushi/src/router/rain/RainDataFetcher.ts b/packages/sushi/src/router/rain/RainDataFetcher.ts index 31f1d5ee93..370e685ff2 100644 --- a/packages/sushi/src/router/rain/RainDataFetcher.ts +++ b/packages/sushi/src/router/rain/RainDataFetcher.ts @@ -31,6 +31,7 @@ import { GlyphV4Provider } from '../liquidity-providers/GlyphV4.js' import { GravityFinanceProvider } from '../liquidity-providers/GravityFinance.js' import { HoneySwapProvider } from '../liquidity-providers/HoneySwap.js' import { HorizonProvider } from '../liquidity-providers/Horizon.js' +import { HydrexProvider } from '../liquidity-providers/Hydrex.js' import { HyperBlastProvider } from '../liquidity-providers/HyperBlast.js' import { JetSwapProvider } from '../liquidity-providers/JetSwap.js' import { KimV4Provider } from '../liquidity-providers/KimV4.js' @@ -174,6 +175,7 @@ export class RainDataFetcher extends DataFetcher { GravityFinanceProvider, HoneySwapProvider, HorizonProvider, + HydrexProvider, HyperBlastProvider, JetSwapProvider, KimV4Provider,