Files
smom-dbis-138/script/DeployCCIPLoggerChain138.s.sol
2026-06-02 05:59:06 -07:00

81 lines
2.6 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import {Script, console} from "forge-std/Script.sol";
/**
* @title DeployCCIPLoggerChain138 - Deploy CCIPLogger to ChainID 138
* @notice This script deploys CCIPLogger to ChainID 138
* @dev CCIPLogger logs CCIP messages for monitoring and debugging
*/
contract DeployCCIPLoggerChain138 is Script {
uint256 constant CHAIN138 = 138;
function run() external {
uint256 chainId = block.chainid;
require(chainId == CHAIN138, "This script is only for ChainID 138");
uint256 deployerPrivateKey = vm.envUint("PRIVATE_KEY");
address deployer = vm.addr(deployerPrivateKey);
// Load CCIP Router address
address ccipRouter = vm.envAddress("CCIP_ROUTER_ADDRESS");
require(ccipRouter != address(0), "CCIP_ROUTER_ADDRESS not set");
console.log("==========================================");
console.log("CCIPLogger Deployment - ChainID 138");
console.log("==========================================");
console.log("Chain ID:", chainId);
console.log("Deployer:", deployer);
console.log("Deployer Balance:", deployer.balance / 1e18, "ETH");
console.log("CCIP Router:", ccipRouter);
console.log("");
vm.startBroadcast(deployerPrivateKey);
// Note: CCIPLogger contract needs to be available
// If CCIPLogger.sol doesn't exist, this will fail at compilation
// For now, we'll create a simple logger contract inline
// Deploy a simple CCIP Logger contract
CCIPLogger logger = new CCIPLogger(ccipRouter);
console.log("CCIPLogger deployed at:", address(logger));
console.log("CCIP Router:", ccipRouter);
vm.stopBroadcast();
console.log("\n=== Deployment Summary ===");
console.log("CCIPLogger:", address(logger));
console.log("CCIP Router:", ccipRouter);
}
}
// Simple CCIP Logger contract
contract CCIPLogger {
address public immutable router;
event MessageLogged(
bytes32 indexed messageId,
uint64 indexed sourceChainSelector,
address sender,
bytes data,
uint256 timestamp
);
constructor(address _router) {
require(_router != address(0), "CCIPLogger: zero router");
router = _router;
}
function logMessage(
bytes32 messageId,
uint64 sourceChainSelector,
address sender,
bytes calldata data
) external {
emit MessageLogged(messageId, sourceChainSelector, sender, data, block.timestamp);
}
}