diff --git a/packages/asset-swapper/CHANGELOG.json b/packages/asset-swapper/CHANGELOG.json index e7a0e1119a..19ac22d5e8 100644 --- a/packages/asset-swapper/CHANGELOG.json +++ b/packages/asset-swapper/CHANGELOG.json @@ -1,4 +1,13 @@ [ + { + "version": "16.46.0", + "changes": [ + { + "note": "Enable `Curve` ETH/CVX pool", + "pr": 394 + } + ] + }, { "version": "16.45.2", "changes": [ diff --git a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts index 3cd0e0c3e5..f48cc7e77e 100644 --- a/packages/asset-swapper/src/utils/market_operation_utils/constants.ts +++ b/packages/asset-swapper/src/utils/market_operation_utils/constants.ts @@ -462,6 +462,7 @@ export const MAINNET_TOKENS = { CRV: '0xd533a949740bb3306d119cc777fa900ba034cd52', MIM: '0x99d8a9c45b2eca8864373a26d1459e3dff1e17f3', EURT: '0xc581b735a1688071a1746c968e0798d642ede491', + CVX: '0x4e3fbd56cd56c3e72c1403e103b45db9da5b9d2b', }; export const BSC_TOKENS = { @@ -592,6 +593,7 @@ export const CURVE_POOLS = { mim: '0x5a6a4d54456819380173272a5e8e9b9904bdf41b', eurt: '0xfd5db7463a3ab53fd211b4af195c5bccc1a03890', ethcrv: '0x8301ae4fc9c624d1d396cbdaa1ed877821d7c511', + ethcvx: '0xb576491f1e6e5e62f1d8f26062ee822b40b0e0d4', }; export const CURVE_V2_POOLS = { @@ -1073,6 +1075,17 @@ export const CURVE_MAINNET_INFOS: { [name: string]: CurveInfo } = { sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_uint256, exchangeFunctionSelector: CurveFunctionSelectors.exchange_underlying_uint256, }, + [CURVE_POOLS.ethcvx]: { + ...createCurveExchangePool({ + // This pool uses ETH + tokens: [MAINNET_TOKENS.WETH, MAINNET_TOKENS.CVX], + pool: CURVE_POOLS.ethcvx, + gasSchedule: 350e3, + }), + // This pool has a custom get_dy and exchange selector with uint256 + sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_uint256, + exchangeFunctionSelector: CurveFunctionSelectors.exchange_underlying_uint256, + }, }; export const CURVE_V2_MAINNET_INFOS: { [name: string]: CurveInfo } = {