const hre = require("hardhat");

async function main() {
  const [deployer] = await hre.ethers.getSigners();
  console.log("Deploying CCIPWETH9Bridge to Mainnet with account:", deployer.address);

  const CCIPRouter = process.env.CCIP_ETH_ROUTER || "0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D";
  const WETH9 = process.env.WETH9_ADDRESS || "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
  const Chain138Selector = process.env.CHAIN138_SELECTOR || "0x000000000000000000000000000000000000008A";

  const CCIPWETH9Bridge = await hre.ethers.getContractFactory("CCIPWETH9Bridge");
  const bridge = await CCIPWETH9Bridge.deploy(CCIPRouter, WETH9, Chain138Selector);
  
  await bridge.waitForDeployment();
  const address = await bridge.getAddress();
  console.log("CCIPWETH9Bridge deployed to:", address);

  // Verify on Etherscan
  if (process.env.ETHERSCAN_API_KEY) {
    console.log("Verifying on Etherscan...");
    await hre.run("verify:verify", {
      address: address,
      constructorArguments: [CCIPRouter, WETH9, Chain138Selector],
    });
  }
}

main().catch((error) => {
  console.error(error);
  process.exitCode = 1;
});
