Files
smom-dbis-138/script/deploy/DeployTwoHopDodoToUniswapV3MultiHopExternalUnwinder.s.sol
2026-04-13 21:37:33 -07:00

37 lines
1.5 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {Script, console} from "forge-std/Script.sol";
import {TwoHopDodoToUniswapV3MultiHopExternalUnwinder} from "../../contracts/flash/TwoHopDodoToUniswapV3MultiHopExternalUnwinder.sol";
/**
* @title DeployTwoHopDodoToUniswapV3MultiHopExternalUnwinder
* @notice Deploy three-hop DODO -> DODO -> Uniswap V3 unwinder for quote-push workflows.
*
* Env:
* PRIVATE_KEY required
* DODO_PMM_INTEGRATION_MAINNET required
* UNISWAP_V3_SWAP_ROUTER_MAINNET optional; defaults to legacy SwapRouter `0xE592...`
*/
contract DeployTwoHopDodoToUniswapV3MultiHopExternalUnwinder is Script {
address internal constant DEFAULT_UNISWAP_V3_ROUTER_MAINNET = 0xE592427A0AEce92De3Edee1F18E0157C05861564;
function run() external {
uint256 pk = vm.envUint("PRIVATE_KEY");
address integration = vm.envAddress("DODO_PMM_INTEGRATION_MAINNET");
address router = vm.envOr("UNISWAP_V3_SWAP_ROUTER_MAINNET", DEFAULT_UNISWAP_V3_ROUTER_MAINNET);
address deployer = vm.addr(pk);
console.log("Deployer:", deployer);
console.log("DODO PMM integration:", integration);
console.log("Uniswap V3 router:", router);
vm.startBroadcast(pk);
TwoHopDodoToUniswapV3MultiHopExternalUnwinder unwinder =
new TwoHopDodoToUniswapV3MultiHopExternalUnwinder(integration, router);
vm.stopBroadcast();
console.log("TwoHopDodoToUniswapV3MultiHopExternalUnwinder:", address(unwinder));
}
}