From bbdeecc4024aa20c020db206a194ca32be386b47 Mon Sep 17 00:00:00 2001 From: yrjkqq Date: Wed, 15 Jan 2025 14:50:35 +0800 Subject: [PATCH] feat: update contract configurations and addresses for Taiko support in AMM V3 --- .../src/chainConfig/contractConfig.ts | 3 ++- .../PoolWidget/AMMV3/sdks/sdk-core/addresses.ts | 17 +++++++++++++++-- .../PoolWidget/AMMV3/sdks/v3-sdk/constants.ts | 15 +++++++++++++-- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/dodoex-api/src/chainConfig/contractConfig.ts b/packages/dodoex-api/src/chainConfig/contractConfig.ts index c1f12020..94d1aaa3 100644 --- a/packages/dodoex-api/src/chainConfig/contractConfig.ts +++ b/packages/dodoex-api/src/chainConfig/contractConfig.ts @@ -8,6 +8,7 @@ import { ChainId } from './chain'; const contractMap: { [key in ChainId]: { + /** MulticallWithValid */ MULTI_CALL: string; DODO_APPROVE: string; /** ERC20Helper */ @@ -19,7 +20,7 @@ const contractMap: { ROUTE_V1_DATA_FETCH: string; /** DODOCalleeHelper */ CALLEE_HELPER: string; - + /** DODOV2Proxy02 */ DODO_PROXY: string; /** DODODspProxy */ DODO_DSP_PROXY: string; diff --git a/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/sdk-core/addresses.ts b/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/sdk-core/addresses.ts index aabc2e56..b2e122e7 100644 --- a/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/sdk-core/addresses.ts +++ b/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/sdk-core/addresses.ts @@ -3,7 +3,15 @@ import { ChainId, SUPPORTED_CHAINS, SupportedChainsType } from './chains'; type AddressMap = { [chainId: number]: string }; type ChainAddresses = { + /** + * UniswapV3Factory + * @see https://taikoscan.io/address/0x78172691DD3B8ADa7aEbd9bFfB487FB11D735DB2?tab=contract#code + */ v3CoreFactoryAddress: string; + /** + * NonfungiblePositionManager + * @see https://taikoscan.io/address/0x2623281DdcC34A73a9e8898f2c57A32A860903f1?tab=contract#code + */ nonfungiblePositionManagerAddress?: string; }; @@ -28,6 +36,12 @@ const SEPOLIA_ADDRESSES: ChainAddresses = { '0x483E5c0f309577f79b0a19cE65E332DD388aD7A8', }; +const TAIKO_ADDRESSES: ChainAddresses = { + v3CoreFactoryAddress: '0x78172691DD3B8ADa7aEbd9bFfB487FB11D735DB2', + nonfungiblePositionManagerAddress: + '0x2623281DdcC34A73a9e8898f2c57A32A860903f1', +}; + export const CHAIN_TO_ADDRESSES_MAP: Record< SupportedChainsType, ChainAddresses @@ -35,8 +49,7 @@ export const CHAIN_TO_ADDRESSES_MAP: Record< [ChainId.MAINNET]: MAINNET_ADDRESSES, [ChainId.ARBITRUM_ONE]: ARBITRUM_ONE_ADDRESSES, [ChainId.SEPOLIA]: SEPOLIA_ADDRESSES, - // TODO - [ChainId.TAIKO]: SEPOLIA_ADDRESSES, + [ChainId.TAIKO]: TAIKO_ADDRESSES, }; /* V3 Contract Addresses */ diff --git a/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/v3-sdk/constants.ts b/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/v3-sdk/constants.ts index 969d627c..08e17db2 100644 --- a/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/v3-sdk/constants.ts +++ b/packages/dodoex-widgets/src/widgets/PoolWidget/AMMV3/sdks/v3-sdk/constants.ts @@ -1,15 +1,26 @@ import { ChainId } from '../sdk-core'; -export const FACTORY_ADDRESS = '0x1F98431c8aD98523631AE4a59f267346ea31F984'; +/** + * Taiko UniswapV3Factory + * @see https://taikoscan.io/address/0x78172691DD3B8ADa7aEbd9bFfB487FB11D735DB2?tab=contract#code + */ +export const FACTORY_ADDRESS = '0x78172691DD3B8ADa7aEbd9bFfB487FB11D735DB2'; export const ADDRESS_ZERO = '0x0000000000000000000000000000000000000000'; // @deprecated please use poolInitCodeHash(chainId: ChainId) export const POOL_INIT_CODE_HASH = - '0x4509fa1e2d1989ac1632a56fe87c53e8d1e9d05847694e00f62b23e28cec98c4'; + '0x5ccd5621c1bb9e44ce98cef8b90d31eb2423dec3793b6239232cefae976936ea'; +/** + * Taiko POOL_INIT_CODE_HASH + * @see PoolAddress.sol + * @see https://taikoscan.io/address/0x202bEE65B164aEcBb6A2318438bf46bEF14E1072?tab=contract#code#F12#L6 + */ export function poolInitCodeHash(chainId?: ChainId): string { switch (chainId) { + case ChainId.TAIKO: + return '0x5ccd5621c1bb9e44ce98cef8b90d31eb2423dec3793b6239232cefae976936ea'; default: return POOL_INIT_CODE_HASH; }