34 lines
1.3 KiB
Solidity
34 lines
1.3 KiB
Solidity
|
|
// SPDX-License-Identifier: MIT
|
||
|
|
pragma solidity ^0.8.19;
|
||
|
|
|
||
|
|
import {Script, console} from "forge-std/Script.sol";
|
||
|
|
import {CCIPRouter} from "../contracts/ccip/CCIPRouter.sol";
|
||
|
|
import {CCIPWETH9Bridge} from "../contracts/ccip/CCIPWETH9Bridge.sol";
|
||
|
|
|
||
|
|
/// @notice Event-only send router + WMON bridge on Monad for Monad→138 relay lane.
|
||
|
|
contract DeployMonad138OutboundLane is Script {
|
||
|
|
function run() external {
|
||
|
|
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
|
||
|
|
address deployer = vm.addr(deployerPrivateKey);
|
||
|
|
address wmon = vm.envAddress("WETH9_MONAD");
|
||
|
|
address feeToken = vm.envOr("CCIP_FEE_TOKEN", address(0));
|
||
|
|
uint64 chain138Selector = uint64(vm.envUint("CHAIN138_SELECTOR"));
|
||
|
|
|
||
|
|
console.log("Deployer:", deployer);
|
||
|
|
console.log("WMON:", wmon);
|
||
|
|
console.log("Fee token (0=native MON):", feeToken);
|
||
|
|
|
||
|
|
vm.startBroadcast(deployerPrivateKey);
|
||
|
|
|
||
|
|
CCIPRouter router = new CCIPRouter(feeToken, 0, 0);
|
||
|
|
console.log("Monad event-only CCIPRouter:", address(router));
|
||
|
|
|
||
|
|
router.addSupportedChain(chain138Selector);
|
||
|
|
|
||
|
|
CCIPWETH9Bridge bridge = new CCIPWETH9Bridge(address(router), wmon, feeToken);
|
||
|
|
console.log("Monad outbound CCIPWETH9Bridge:", address(bridge));
|
||
|
|
|
||
|
|
vm.stopBroadcast();
|
||
|
|
}
|
||
|
|
}
|