const hre = require("hardhat");

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

  const CCIPRouter = process.env.CCIP_ETH_ROUTER || "0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D";
  const WETH10 = process.env.WETH10_ADDRESS || "0xf4BB2e28688e89fCcE3c0580D37d36A7672E8A9f";
  const Chain138Selector = process.env.CHAIN138_SELECTOR || "0x000000000000000000000000000000000000008A";

  const CCIPWETH10Bridge = await hre.ethers.getContractFactory("CCIPWETH10Bridge");
  const bridge = await CCIPWETH10Bridge.deploy(CCIPRouter, WETH10, Chain138Selector);
  
  await bridge.waitForDeployment();
  const address = await bridge.getAddress();
  console.log("CCIPWETH10Bridge 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, WETH10, Chain138Selector],
    });
  }
}

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