synapsecns/sanguine

View on GitHub
packages/contracts-core/script/DeployCREATE3Factory.sol

Summary

Maintainability
Test Coverage
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

import {console, stdJson} from "forge-std/Script.sol";
import {Strings} from "@openzeppelin/contracts/utils/Strings.sol";

// ═════════════════════════════ INTERNAL IMPORTS ══════════════════════════════
import {DeployerUtils} from "./utils/DeployerUtils.sol";

import {CREATE3Factory} from "create3/CREATE3Factory.sol";

// TODO: move this to a common deployer-utils package, as this is not specific to SIN
contract DeployCREATE3Factory is DeployerUtils {
    using stdJson for string;
    using Strings for uint256;

    constructor() {
        setupPK("MESSAGING_DEPLOYER_PRIVATE_KEY");
        setupDevnetIfEnabled();
    }

    function run() external {
        startBroadcast(true);
        CREATE3Factory NewFactory = new CREATE3Factory();
        saveDeployment("CREATE3", "CREATE3", address(NewFactory), "0x");
        stopBroadcast();
    }
}