36 lines
1.4 KiB
Solidity
36 lines
1.4 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.19;
|
|
|
|
import {Script, console} from "forge-std/Script.sol";
|
|
import "../../../contracts/bridge/trustless/SwapBridgeSwapCoordinator.sol";
|
|
|
|
/**
|
|
* @title DeploySwapBridgeSwapCoordinator
|
|
* @notice Deploys SwapBridgeSwapCoordinator for atomic swap-then-bridge flow
|
|
* @dev Requires ENHANCED_SWAP_ROUTER and UNIVERSAL_CCIP_BRIDGE (or BRIDGE_ORCHESTRATOR) in env
|
|
*/
|
|
contract DeploySwapBridgeSwapCoordinator is Script {
|
|
function run() external {
|
|
uint256 deployerPrivateKey = vm.envOr("PRIVATE_KEY", uint256(0));
|
|
require(deployerPrivateKey != 0, "PRIVATE_KEY not set");
|
|
address deployer = vm.addr(deployerPrivateKey);
|
|
|
|
address swapRouter = vm.envAddress("ENHANCED_SWAP_ROUTER");
|
|
address bridge = vm.envOr("UNIVERSAL_CCIP_BRIDGE", address(0));
|
|
if (bridge == address(0)) {
|
|
bridge = vm.envOr("BRIDGE_ORCHESTRATOR", address(0));
|
|
}
|
|
require(swapRouter != address(0), "ENHANCED_SWAP_ROUTER not set");
|
|
require(bridge != address(0), "UNIVERSAL_CCIP_BRIDGE or BRIDGE_ORCHESTRATOR not set");
|
|
|
|
vm.startBroadcast(deployerPrivateKey);
|
|
|
|
SwapBridgeSwapCoordinator coordinator = new SwapBridgeSwapCoordinator(swapRouter, bridge);
|
|
|
|
vm.stopBroadcast();
|
|
|
|
console.log("SwapBridgeSwapCoordinator deployed at:", address(coordinator));
|
|
console.log("Export: SWAP_BRIDGE_SWAP_COORDINATOR=%s", vm.toString(address(coordinator)));
|
|
}
|
|
}
|