Add DODO-only EnhancedSwapRouterV2 routing helpers
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
// SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.19;
|
||||
|
||||
import {Script, console} from "forge-std/Script.sol";
|
||||
import "../../../contracts/bridge/trustless/EnhancedSwapRouterV2.sol";
|
||||
import "../../../contracts/bridge/trustless/RouteTypesV2.sol";
|
||||
|
||||
contract ConfigureEnhancedSwapRouterV2DodoOnly is Script {
|
||||
address constant LIVE_ROUTER_V2 = 0xF1c93F54A5C2fc0d7766Ccb0Ad8f157DFB4C99Ce;
|
||||
|
||||
function run() external {
|
||||
require(block.chainid == 138, "ConfigureEnhancedSwapRouterV2DodoOnly: Chain 138 only");
|
||||
|
||||
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||||
address routerAddress = vm.envOr("ENHANCED_SWAP_ROUTER_V2_ADDRESS", LIVE_ROUTER_V2);
|
||||
|
||||
EnhancedSwapRouterV2 router = EnhancedSwapRouterV2(payable(routerAddress));
|
||||
RouteTypesV2.Provider[] memory providers = new RouteTypesV2.Provider[](1);
|
||||
providers[0] = RouteTypesV2.Provider.Dodo;
|
||||
|
||||
vm.startBroadcast(deployerPrivateKey);
|
||||
router.setRoutingConfig(0, providers);
|
||||
router.setRoutingConfig(1, providers);
|
||||
router.setRoutingConfig(2, providers);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.UniswapV3, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Balancer, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Curve, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.OneInch, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Partner, false);
|
||||
vm.stopBroadcast();
|
||||
|
||||
console.log("EnhancedSwapRouterV2 DODO-only routing configured:", routerAddress);
|
||||
console.log("sizeCategory 0 provider:", uint8(providers[0]));
|
||||
console.log("sizeCategory 1 provider:", uint8(providers[0]));
|
||||
console.log("sizeCategory 2 provider:", uint8(providers[0]));
|
||||
console.log("disabled provider:", uint8(RouteTypesV2.Provider.UniswapV3));
|
||||
console.log("disabled provider:", uint8(RouteTypesV2.Provider.Balancer));
|
||||
console.log("disabled provider:", uint8(RouteTypesV2.Provider.Curve));
|
||||
console.log("disabled provider:", uint8(RouteTypesV2.Provider.OneInch));
|
||||
console.log("disabled provider:", uint8(RouteTypesV2.Provider.Partner));
|
||||
}
|
||||
}
|
||||
@@ -80,12 +80,8 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
CurveRouteExecutorAdapter curveAdapter = new CurveRouteExecutorAdapter();
|
||||
OneInchRouteExecutorAdapter oneInchAdapter = new OneInchRouteExecutorAdapter();
|
||||
|
||||
EnhancedSwapRouterV2 router = new EnhancedSwapRouterV2(
|
||||
CHAIN138_WETH,
|
||||
CHAIN138_USDT,
|
||||
CHAIN138_USDC,
|
||||
CHAIN138_DAI_PLACEHOLDER
|
||||
);
|
||||
EnhancedSwapRouterV2 router =
|
||||
new EnhancedSwapRouterV2(CHAIN138_WETH, CHAIN138_USDT, CHAIN138_USDC, CHAIN138_DAI_PLACEHOLDER);
|
||||
IntentBridgeCoordinatorV2 coordinator = new IntentBridgeCoordinatorV2(address(router));
|
||||
|
||||
router.setProviderAdapter(RouteTypesV2.Provider.Dodo, address(dodoAdapter));
|
||||
@@ -94,6 +90,7 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
router.setProviderAdapter(RouteTypesV2.Provider.Balancer, address(balancerAdapter));
|
||||
router.setProviderAdapter(RouteTypesV2.Provider.Curve, address(curveAdapter));
|
||||
router.setProviderAdapter(RouteTypesV2.Provider.OneInch, address(oneInchAdapter));
|
||||
_setDodoOnlyRouting(router);
|
||||
|
||||
_setDodoPair(router, CHAIN138_cUSDT, CHAIN138_cUSDC, dodoProvider, CHAIN138_POOL_CUSDTCUSDC);
|
||||
_setDodoPair(router, CHAIN138_cUSDT, CHAIN138_USDT, dodoProvider, CHAIN138_POOL_CUSDTUSDT);
|
||||
@@ -128,7 +125,10 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
if (balancerVault != address(0) && balancerWethUsdcPoolId != bytes32(0)) {
|
||||
_setBalancerPair(router, CHAIN138_WETH, CHAIN138_USDC, balancerVault, balancerWethUsdcPoolId);
|
||||
}
|
||||
if (balancerVault == address(0) || (balancerWethUsdtPoolId == bytes32(0) && balancerWethUsdcPoolId == bytes32(0))) {
|
||||
if (
|
||||
balancerVault == address(0)
|
||||
|| (balancerWethUsdtPoolId == bytes32(0) && balancerWethUsdcPoolId == bytes32(0))
|
||||
) {
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Balancer, false);
|
||||
}
|
||||
|
||||
@@ -141,6 +141,7 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
if (oneInchRouter == address(0)) {
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.OneInch, false);
|
||||
}
|
||||
_disableNonDodoProviders(router);
|
||||
|
||||
vm.stopBroadcast();
|
||||
|
||||
@@ -154,13 +155,25 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
console.log("OneInchRouteExecutorAdapter:", address(oneInchAdapter));
|
||||
}
|
||||
|
||||
function _setDodoPair(
|
||||
EnhancedSwapRouterV2 router,
|
||||
address tokenA,
|
||||
address tokenB,
|
||||
address target,
|
||||
address pool
|
||||
) internal {
|
||||
function _setDodoOnlyRouting(EnhancedSwapRouterV2 router) internal {
|
||||
RouteTypesV2.Provider[] memory providers = new RouteTypesV2.Provider[](1);
|
||||
providers[0] = RouteTypesV2.Provider.Dodo;
|
||||
router.setRoutingConfig(0, providers);
|
||||
router.setRoutingConfig(1, providers);
|
||||
router.setRoutingConfig(2, providers);
|
||||
}
|
||||
|
||||
function _disableNonDodoProviders(EnhancedSwapRouterV2 router) internal {
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.UniswapV3, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Balancer, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Curve, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.OneInch, false);
|
||||
router.setProviderEnabled(RouteTypesV2.Provider.Partner, false);
|
||||
}
|
||||
|
||||
function _setDodoPair(EnhancedSwapRouterV2 router, address tokenA, address tokenB, address target, address pool)
|
||||
internal
|
||||
{
|
||||
bytes memory providerData = abi.encode(pool);
|
||||
router.setProviderRoute(tokenA, tokenB, RouteTypesV2.Provider.Dodo, target, providerData, true);
|
||||
router.setProviderRoute(tokenB, tokenA, RouteTypesV2.Provider.Dodo, target, providerData, true);
|
||||
@@ -179,13 +192,9 @@ contract DeployEnhancedSwapRouterV2 is Script {
|
||||
router.setProviderRoute(tokenB, tokenA, RouteTypesV2.Provider.UniswapV3, target, providerData, true);
|
||||
}
|
||||
|
||||
function _setDodoV3Pair(
|
||||
EnhancedSwapRouterV2 router,
|
||||
address tokenA,
|
||||
address tokenB,
|
||||
address target,
|
||||
address pool
|
||||
) internal {
|
||||
function _setDodoV3Pair(EnhancedSwapRouterV2 router, address tokenA, address tokenB, address target, address pool)
|
||||
internal
|
||||
{
|
||||
bytes memory providerData = abi.encode(pool);
|
||||
router.setProviderRoute(tokenA, tokenB, RouteTypesV2.Provider.DodoV3, target, providerData, true);
|
||||
router.setProviderRoute(tokenB, tokenA, RouteTypesV2.Provider.DodoV3, target, providerData, true);
|
||||
|
||||
Reference in New Issue
Block a user